// IIfcIndexedPolygonalFace indexFace;
 public XbimFaceBoundSet(IIfcIndexedPolygonalFace face, IIfcCartesianPointList3D coordinates, IItemSet <IfcPositiveInteger> pnIndex)
 {
     // indexFace = face;
     if (face is IIfcIndexedPolygonalFaceWithVoids)
     {
         var faceWithVoids = (IIfcIndexedPolygonalFaceWithVoids)face;
         faceBounds    = new XbimPolygonalFaceBound[faceWithVoids.InnerCoordIndices.Count + 1];
         faceBounds[0] = new XbimPolygonalFaceBound(faceWithVoids.CoordIndex, coordinates, pnIndex);
         for (int i = 0; i < faceWithVoids.InnerCoordIndices.Count; i++)
         {
             faceBounds[i + 1] = new XbimPolygonalFaceBound(faceWithVoids.InnerCoordIndices[i], coordinates, pnIndex);
         }
     }
     else //there will just be one
     {
         faceBounds = new[] { new XbimPolygonalFaceBound(face.CoordIndex, coordinates, pnIndex) };
     }
 }
 public XbimCartesianPoint3dList(IItemSet <IfcPositiveInteger> coordIndex, IIfcCartesianPointList3D coordinates, IItemSet <IfcPositiveInteger> pnIndex)
 {
     points = new List <IIfcCartesianPoint>(coordIndex.Count);
     if (pnIndex != null && pnIndex.Count > 0) //we do a lookup
     {
         foreach (int idx in coordIndex)
         {
             var pnt = coordinates.CoordList[(int)(pnIndex[idx - 1] - 1)];
             points.Add(new XbimCartesianPoint3D(pnt[0], pnt[1], pnt[2]));
         }
     }
     else
     {
         foreach (int idx in coordIndex)
         {
             var pnt = coordinates.CoordList[(int)(idx - 1)];
             points.Add(new XbimCartesianPoint3D(pnt[0], pnt[1], pnt[2]));
         }
     }
 }
 public XbimPolygonalFace(IIfcIndexedPolygonalFace polygonalFace, IIfcCartesianPointList3D coordinates, IItemSet <IfcPositiveInteger> pnIndex)
 {
     this.polygonalFace = polygonalFace;
     this.coordinates   = coordinates;
     this.pnIndex       = pnIndex;
 }
 public XbimPolyLoop(IItemSet <IfcPositiveInteger> coordIndex, IIfcCartesianPointList3D coordinates, IItemSet <IfcPositiveInteger> pnIndex)
 {
     this.coordIndex  = coordIndex;
     this.coordinates = coordinates;
     this.pnIndex     = pnIndex;
 }