函数定义
注:定义符合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;