8.9.6.20 IfcSameDirection
8.9.6.20.1 Semantic definition
The function compares two IfcDirection's and ensures that they are the same (with an epsilon precision factor).
8.9.6.20.2 Formal representation
FUNCTION IfcSameDirection (dir1, dir2 : IfcDirection; Epsilon : REAL) : LOGICAL; LOCAL dir1x : REAL := dir1.DirectionRatios[1]; dir1y : REAL := dir1.DirectionRatios[2]; dir1z : REAL := 0; dir2x : REAL := dir2.DirectionRatios[1]; dir2y : REAL := dir2.DirectionRatios[2]; dir2z : REAL := 0; END_LOCAL; IF (SIZEOF(dir1.DirectionRatios) > 2) THEN dir1z := dir1.DirectionRatios[3]; END_IF; IF (SIZEOF(dir2.DirectionRatios) > 2) THEN dir2z := dir2.DirectionRatios[3]; END_IF; RETURN (IfcSameValue(dir1x,dir2x,Epsilon) AND IfcSameValue(dir1y,dir2y,Epsilon) AND IfcSameValue(dir1z,dir2z,Epsilon)); END_FUNCTION;