AECgeeks / infra-repo-issue-test-old

0 stars 0 forks source link

PolygonalFaceset texture #20

Open aothms opened 2 years ago

aothms commented 2 years ago

Work in progress still. Set will be changed back to LIST.

aothms commented 2 years ago
--- tmp/a/IFC.exp   2022-02-14 20:45:28.181948900 +0100
+++ tmp/b/IFC.exp   2022-02-16 14:02:34.734490700 +0100
@@ -7481,35 +7481,41 @@
  SUBTYPE OF (IfcBoundedCurve);
    Points : IfcCartesianPointList;
    Segments : OPTIONAL LIST [1:?] OF IfcSegmentIndexSelect;
    SelfIntersect : IfcLogical;
  WHERE
    Consecutive : NOT(EXISTS(Segments)) OR IfcConsecutiveSegments(Segments);
 END_ENTITY;

 ENTITY IfcIndexedPolygonalFace
  SUPERTYPE OF (ONEOF
-   (IfcIndexedPolygonalFaceWithVoids))
- SUBTYPE OF (IfcTessellatedItem);
+   (IfcIndexedPolygonalFaceWithVoids));
    CoordIndex : LIST [3:?] OF IfcPositiveInteger;
  INVERSE
    ToFaceSet : SET [1:?] OF IfcPolygonalFaceSet FOR Faces;
+   HasTexCoords : IfcTextureCoordinateIndices FOR TexCoordsOf;
 END_ENTITY;

 ENTITY IfcIndexedPolygonalFaceWithVoids
  SUBTYPE OF (IfcIndexedPolygonalFace);
    InnerCoordIndices : LIST [1:?] OF LIST [3:?] OF UNIQUE IfcPositiveInteger;
 END_ENTITY;

+ENTITY IfcIndexedPolygonalTextureMap
+ SUBTYPE OF (IfcIndexedTextureMap);
+   TexCoords : SET [1:?] OF IfcTextureCoordinateIndices;
+END_ENTITY;
+
 ENTITY IfcIndexedTextureMap
  ABSTRACT SUPERTYPE OF (ONEOF
-   (IfcIndexedTriangleTextureMap))
+   (IfcIndexedPolygonalTextureMap
+   ,IfcIndexedTriangleTextureMap))
  SUBTYPE OF (IfcTextureCoordinate);
    MappedTo : IfcTessellatedFaceSet;
    TexCoords : IfcTextureVertexList;
 END_ENTITY;

 ENTITY IfcIndexedTriangleTextureMap
  SUBTYPE OF (IfcIndexedTextureMap);
    TexCoordIndex : OPTIONAL LIST [1:?] OF LIST [3:3] OF IfcPositiveInteger;
 END_ENTITY;

@@ -8725,22 +8731,21 @@
  WHERE
    BoundaryDim : PolygonalBoundary.Dim = 2;
    BoundaryType : SIZEOF(TYPEOF(PolygonalBoundary) * [
   'IFC4X3_DEV.IFCPOLYLINE', 
   'IFC4X3_DEV.IFCCOMPOSITECURVE']
 ) = 1;
 END_ENTITY;

 ENTITY IfcPolygonalFaceSet
  SUBTYPE OF (IfcTessellatedFaceSet);
-   Closed : OPTIONAL IfcBoolean;
-   Faces : LIST [1:?] OF IfcIndexedPolygonalFace;
+   Faces : SET [1:?] OF IfcIndexedPolygonalFace;
    PnIndex : OPTIONAL LIST [1:?] OF IfcPositiveInteger;
 END_ENTITY;

 ENTITY IfcPolyline
  SUBTYPE OF (IfcBoundedCurve);
    Points : LIST [2:?] OF IfcCartesianPoint;
  WHERE
    SameDim : SIZEOF(QUERY(Temp <* Points | Temp.Dim <> Points[1].Dim)) = 0;
 END_ENTITY;

@@ -11652,22 +11657,21 @@
    Coordinates : IfcCartesianPointList3D;
  DERIVE
     Dim : IfcDimensionCount := 3;
  INVERSE
    HasColours : SET [0:1] OF IfcIndexedColourMap FOR MappedTo;
    HasTextures : SET [0:?] OF IfcIndexedTextureMap FOR MappedTo;
 END_ENTITY;

 ENTITY IfcTessellatedItem
  ABSTRACT SUPERTYPE OF (ONEOF
-   (IfcIndexedPolygonalFace
-   ,IfcTessellatedFaceSet))
+   (IfcTessellatedFaceSet))
  SUBTYPE OF (IfcGeometricRepresentationItem);
 END_ENTITY;

 ENTITY IfcTextLiteral
  SUPERTYPE OF (ONEOF
    (IfcTextLiteralWithExtent))
  SUBTYPE OF (IfcGeometricRepresentationItem);
    Literal : IfcPresentableText;
    Placement : IfcAxis2Placement;
    Path : IfcTextPath;
@@ -11726,20 +11730,34 @@
  SUBTYPE OF (IfcPresentationItem);
    Maps : LIST [1:?] OF IfcSurfaceTexture;
 END_ENTITY;

 ENTITY IfcTextureCoordinateGenerator
  SUBTYPE OF (IfcTextureCoordinate);
    Mode : IfcLabel;
    Parameter : OPTIONAL LIST [1:?] OF IfcReal;
 END_ENTITY;

+ENTITY IfcTextureCoordinateIndices
+ SUPERTYPE OF (ONEOF
+   (IfcTextureCoordinateIndicesWithVoids));
+   TexCoordIndex : LIST [3:?] OF IfcPositiveInteger;
+   TexCoordsOf : IfcIndexedPolygonalFace;
+ INVERSE
+   ToTexMap : IfcIndexedPolygonalTextureMap FOR TexCoords;
+END_ENTITY;
+
+ENTITY IfcTextureCoordinateIndicesWithVoids
+ SUBTYPE OF (IfcTextureCoordinateIndices);
+   InnerTexCoordIndices : LIST [1:?] OF LIST [3:?] OF UNIQUE IfcPositiveInteger;
+END_ENTITY;
+
 ENTITY IfcTextureMap
  SUBTYPE OF (IfcTextureCoordinate);
    Vertices : LIST [3:?] OF IfcTextureVertex;
    MappedTo : IfcFace;
 END_ENTITY;

 ENTITY IfcTextureVertex
  SUBTYPE OF (IfcPresentationItem);
    Coordinates : LIST [2:2] OF IfcParameterValue;
 END_ENTITY;