IfcTriangulatedFaceSet

IfcTriangulatedFaceSet是一个镶嵌细分的面集,所有面都由三角形绑定。面由三个笛卡尔点定义的隐式多段线构造。每个点的坐标由一个基于1的索引提供到二维列表CoordIndex提供的笛卡尔点的有序列表中,其中


①二维列表的第一个维度处理三角形面的列表;

②二维列表的第二个维度正好为IfcCartesianPointList提供了三个索引,这些索引由在超类型IfcTessellatedFaceSet中定义的坐标引用。每个索引指向一个笛卡尔点作为三角形的顶点。


可选每个顶点处的法线可以由二维列表NormalIndex提供,其中


①二维列表的第一维处理相应的三角形面列表;

②二维列表的第二个维度为在超类型IfcTessellatedFaceSet中定义的二维列表法线提供了三个索引。与顶点索引相对应的每个索引都指向三角形顶点处的法线方向。


如果对应的点和法线列表中的点的顺序与法线中的法线的顺序相同,则应使用单个索引列表。坐标索引列表将同时应用于点和法线,法线索引列表应为空。换言之,如果not empty中的法线列表和NormalIndex列表为空,则CoordIndex列表将用于指向CoordList和Normals列表中的相应位置。


注意:使用相应的点和法线列表可以只使用一个索引列表,而这会牺牲点和顶点的非唯一集合。


图显示了不带注释的IfcTriangulatedFaceSet的使用。IfcTriangulatedFaceSet的图表示索引和索引指向的有序列表。索引从1开始(索引为1到N),如果CoordIndex中的最大索引为N,则IfcCartesianPointList应具有3:3坐标的N个列表。

图-三角面集

 

实例化IfcTriangulatedFaceSet有三种可能,除了通过Coordinates和CoordIndex强制属性CoordList之外,可选属性有以下组合:

①Normals和NormalIndex都提供了,然后NormalIndex指向法线

②提供法线而不提供NormalIndex,则CoordIndex也指向法线

③法线和法线索引都未提供,则必须重新计算法线。

 

 

 

 

 图-三角形面集几何图形

CoordIndex: ((1,6,5), (1,2,6), (6,2,7), (7,2,3), (7,8,6), (6,8,5), (5,8,1), (1,8,4), (4,2,1), (2,4,3), (4,8,7), (7,3,4))
IfcCartesianPointList3D: ((0.,0.,0.), (1.,0.,0.), (1.,1.,0.), (0.,1.,0.), (0.,0.,2.), (1.,0.,2.), (1.,1.,2.), (0.,1.,2.))

 

 

注:IfcTriangulatedFaceSet的定义基于ISO/IEC 19775-1中定义的indexedFaceSet和indexedTriangleSet


IFC4中增加的新实体。

#AttributeTypeCardinalityDescriptionC
IfcRepresentationItem
  LayerAssignment IfcPresentationLayerAssignment
@AssignedItems
S[0:1] Assignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items. X
  StyledByItem IfcStyledItem
@Item
S[0:1] Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve. X
IfcGeometricRepresentationItem
IfcTessellatedItem
IfcTessellatedFaceSet
1 Coordinates IfcCartesianPointList3D [1:1] An ordered list of Cartesian points used by the coordinate index defined at the subtypes of IfcTessellatedFaceSet. X
2 Normals IfcParameterValue L[1:?]L[3:3] An ordered list of directions used by the normal index defined at the subtypes of IfcTessellatedFaceSet. It is a two-dimensional list of directions provided by three parameter values. X
3 Closed IfcBoolean [0:1] Indication whether the IfcTessellatedFaceSet is a closed shell or not. If omited no such information can be provided. X
  HasColours IfcIndexedColourMap
@MappedTo
S[0:1] Reference to the indexed colour map providing the corresponding colour RGB values to the faces of the subtypes of IfcTessellatedFaceSet. X
  HasTextures IfcIndexedTextureMap
@MappedTo
S[0:?] Reference to the indexed texture map providing the corresponding texture coordinates to the vertices bounding the faces of the subtypes of IfcTessellatedFaceSet. X
IfcTriangulatedFaceSet
4 CoordIndex IfcPositiveInteger L[1:?]L[3:3] Two-dimensional list, where the first dimension represents the triangles (from 1 to N) and the second dimension the indices to three points defining the vertices (from 1 to 3).
NOTE  The coordinates of the vertices are provided by the indexed list of SELF\IfcTessellatedFaceSet.Coordinates.CoordList.
X
5 NormalIndex IfcPositiveInteger L[1:?]L[3:3] Two-dimensional list, where the first dimension represents the triangle (from 1 to N) and the second dimension the indices to three normals (from 1 to 3) corresponding to the vertices.
The directions of the normals are provided by the indexed list of SELF\IfcTessellatedFaceSet.Normals.
X
  NumberOfTriangles
:=SIZEOF(CoordIndex)
IfcInteger [1:1] Derived number of triangles used for this triangulation. X
 

EXPRESS Specification

ENTITY IfcTriangulatedFaceSet
 SUBTYPE OF (IfcTessellatedFaceSet);
  CoordIndex : LIST [1:?] OF LIST [3:3] OF IfcPositiveInteger;
  NormalIndex : OPTIONAL LIST [1:?] OF LIST [3:3] OF IfcPositiveInteger;
 DERIVE
  NumberOfTriangles : IfcInteger := SIZEOF(CoordIndex);
END_ENTITY;

 

posted @ 2020-11-12 12:38  西北逍遥  阅读(325)  评论(0编辑  收藏  举报