Navigation

IfcSameValidPrecision

Definition from IAI: The function compares the epsilon values ( given as Precision at IfcGeometricRepresentationContext and ensures that they are the same (with a derivation tollerance) and within reasonable min and max values.

HISTORY: New function in Release IFC2x Edition 2

EXPRESS specification:

FUNCTION IfcSameValidPrecision
  (Epsilon1, Epsilon2 : REAL) : LOGICAL ;
LOCAL
  ValidEps1, ValidEps2 : REAL;
  DefaultEps           : REAL := 0.00000001;
  DerivationOfEps      : REAL := 1.001;
  UpperEps             : REAL := 1.0;
END_LOCAL;

-- In the above function the following three questionable ad-hoc values are used:
--                     0.00000001    for the default precision (1E-8)
--                     1.001         for the allowable deviation of the precision values and
--                     1.0           for setting the upper limit of the accepted precision values to about 100.

  ValidEps1 := NVL(Epsilon1, DefaultEps);
  ValidEps2 := NVL(Epsilon2, DefaultEps);
  RETURN ((0.0 < ValidEps1) AND (ValidEps1 <= DerivationOfEps * ValidEps2) AND (ValidEps2 <= DerivationOfEps * ValidEps1) AND (ValidEps2 < UpperEps));
END_FUNCTION;