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