IFC 4.3.2.20251031 (IFC4X3_ADD2) under development

8.9.6.19 IfcSameCartesianPoint(相同笛卡尔点)

8.9.6.19.1 语义定义(Semantic definition)

该函数比较两个 IfcCartesianPoint 并确保它们相同(具有 epsilon 精度因子)。

8.9.6.19.2 形式化表示(Formal representation)

FUNCTION IfcSameCartesianPoint
 (cp1, cp2 : IfcCartesianPoint; Epsilon : REAL)
 : LOGICAL;
  
  LOCAL
    cp1x : REAL := cp1.Coordinates[1];
    cp1y : REAL := cp1.Coordinates[2];
    cp1z : REAL := 0;
    cp2x : REAL := cp2.Coordinates[1];
    cp2y : REAL := cp2.Coordinates[2];
    cp2z : REAL := 0;
  END_LOCAL;

  IF (SIZEOF(cp1.Coordinates) > 2) THEN
    cp1z := cp1.Coordinates[3];
  END_IF;

  IF (SIZEOF(cp2.Coordinates) > 2) THEN
    cp2z := cp2.Coordinates[3];
  END_IF;

  RETURN (IfcSameValue(cp1x,cp2x,Epsilon) AND
          IfcSameValue(cp1y,cp2y,Epsilon) AND
          IfcSameValue(cp1z,cp2z,Epsilon));

END_FUNCTION;

8.9.6.19.3 参考文献