其他分享
首页 > 其他分享> > IfcDotProduct

IfcDotProduct

作者:互联网

函数定义

注:定义符合ISO/CD 10303-42:1992
此函数返回两个方向的标量(或点)积。输入参数可以是二维或三维空间中的方向。如果输入方向具有不同的维数,或者其中一个未定义,则返回的标量未定义。
注:功能改编自ISO 10303-42
IFC1.5中增加的新函数

 

EXPRESS Specification

FUNCTION IfcDotProduct
  (Arg1, Arg2 : IfcDirection) 
    : REAL;
LOCAL
  Scalar : REAL;
  Vec1, Vec2 : IfcDirection;
  Ndim   : INTEGER;
END_LOCAL;

  IF NOT EXISTS (Arg1) OR NOT EXISTS (Arg2) THEN
    Scalar := ?;
  ELSE
    IF (Arg1.Dim <> Arg2.Dim) THEN
      Scalar := ?;
    ELSE
      BEGIN
        Vec1 := IfcNormalise(Arg1);
        Vec2 := IfcNormalise(Arg2);
        Ndim := Arg1.Dim;
        Scalar := 0.0;
        REPEAT i := 1 TO Ndim;
          Scalar := Scalar + Vec1.DirectionRatios[i]*Vec2.DirectionRatios[i];
        END_REPEAT;
      END;
    END_IF;
  END_IF;
  RETURN (Scalar); 
END_FUNCTION;

 

标签:Dim,IfcDotProduct,END,Arg1,Arg2,Scalar,Vec1
来源: https://www.cnblogs.com/herd/p/14426759.html