IfcMakeArrayOfArray

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

这个函数make array of array从一个列表中构建一个数组。函数首先检查指定的数组维度是否与列表的大小兼容,特别是验证所有子列表是否包含相同数量的元素。如果输入数据与维度不兼容,则返回空结果。此函数用于构造B样条曲面的控制点和权重数组。

注:此函数改编自ISO 10303-42中定义的_数组的make_array。

IFC4中的新函数

EXPRESS Specification

FUNCTION IfcMakeArrayOfArray
(Lis : LIST[1:?] OF LIST [1:?] OF GENERIC : T;
Low1, U1, Low2, U2 : INTEGER):
ARRAY [Low1:U1] OF ARRAY [Low2:U2] OF GENERIC : T;

  LOCAL
    Res : ARRAY[Low1:U1] OF ARRAY [Low2:U2] OF GENERIC : T;
  END_LOCAL;

  (* Check input dimensions for consistency *)
  IF (U1-Low1+1) <> SIZEOF(Lis) THEN
    RETURN (?);
  END_IF;
  IF (U2 - Low2 + 1 ) <> SIZEOF(Lis[1]) THEN
    RETURN (?) ;
  END_IF;

  (* Initialise Res with values from Lis[1] *)
  Res := [IfcListToArray(Lis[1], Low2, U2) : (U1-Low1 + 1)];
  REPEAT i := 2 TO HIINDEX(Lis);
    IF (U2-Low2+1) <> SIZEOF(Lis[i]) THEN
      RETURN (?);
    END_IF;
    Res[Low1+i-1] := IfcListToArray(Lis[i], Low2, U2);
  END_REPEAT;
  RETURN (Res);
END_FUNCTION;
QQ 3087438119
原文地址:https://www.cnblogs.com/herd/p/14459818.html