fmeobjects.FMEMultiSurface.isInPlane

FMEMultiSurface.isInPlane(tolerance, normalVector, valD, recalculateD)

Works similarly to isPlanar(), but checks planarity with respect to given normal or given plane (if plane equation D is specified - see below). If given normal is the zero vector, the normal used to check the planarity is computed using Newell’s method as in isPlanar(). valD is a reference to a value of D in the plane equation AX + BY + CZ = D. It can be used to make sure that multiple pieces lie in the same plane. If ‘recalculateD’ is set to False, the passed in value of D will be used in the calculation. If ‘recalcualteD’ is set to True, the passed in value is ignored and is instead automatically calculated (and returned in the second position of the returned tuple). A useful calling pattern for ensuring co-planarity is to get valD computed on the first call to the function setting ‘recalculateD’ to True, and then use this value for future calls with ‘recalculateD’ to False.

Parameters:
  • tolerance (float) – The tolerance to check against.

  • normalVector (tuple[float, float, float]) – The normal used to check the planarity.

  • valD (float) – The value D from ‘AX + BY + CZ = D’.

  • recalculateD (bool) – Whether to recalculate ‘D’ or not.

Return type:

tuple[bool, tuple, float]

Returns:

A tuple containing a boolean, tuple, and float representing: 1) Whether or not the multisurface is in plane; 2) The normal vector returned; and 3) The value ‘D’. Note: If ‘recalculateD’ is False, the tuple returned will only contain the boolean and vector tuple (i.e. ‘valD’ is not returned).