首页 > 其他 > 详细

IfcScalarTimesVector

时间:2021-03-13 09:00:05      阅读:21      评论:0      收藏:0      [点我收藏+]

注:定义符合ISO/CD 10303-42:1992

此函数返回输入向量的标量倍数。它接受一个标量和一个向量作为输入,这个向量可以是一个方向,也可以是一个向量。输出是与输入向量相同单位的向量,如果输入方向,则为无单位向量。如果任一输入参数未定义,则返回的向量也未定义。

注:函数改编自ISO 10303-42中定义的标量乘向量。

IFC1.5中的新函数

 

EXPRESS Specification

FUNCTION IfcScalarTimesVector
  (Scalar : REAL; Vec : IfcVectorOrDirection)
    : IfcVector;
LOCAL
  V : IfcDirection;
  Mag : REAL;
  Result : IfcVector;
END_LOCAL;

  IF NOT EXISTS (Scalar) OR NOT EXISTS (Vec) THEN
    RETURN (?) ;
  ELSE
    IF ‘IFCGEOMETRYRESOURCE.IFCVECTOR‘ IN TYPEOF (Vec) THEN
      V := Vec\IfcVector.Orientation;
      Mag := Scalar * Vec\IfcVector.Magnitude;
    ELSE
      V := Vec;
      Mag := Scalar;
    END_IF;
    IF (Mag < 0.0 ) THEN
      REPEAT i := 1 TO SIZEOF(V.DirectionRatios);
        V.DirectionRatios[i] := -V.DirectionRatios[i];
      END_REPEAT;
      Mag := -Mag;
    END_IF;
    Result := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(IfcNormalise(V), Mag);
  END_IF;
  RETURN (Result);
END_FUNCTION;

 

IfcScalarTimesVector

原文:https://www.cnblogs.com/herd/p/14459862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!