public void IfcTriangulatedFaceSetWithColoursTest() { using (var store = IfcStore.Open("tessellation-with-individual-colors.ifc")) { var triangulatedFaceSet = store.Instances.OfType <IfcTriangulatedFaceSet>().FirstOrDefault(); var tessellator = new XbimTessellator(store, XbimGeometryType.PolyhedronBinary); Assert.IsNotNull(triangulatedFaceSet); Assert.IsTrue(tessellator.CanMesh(triangulatedFaceSet)); var geom = tessellator.Mesh(triangulatedFaceSet); Assert.IsTrue((int)(geom.BoundingBox.Volume) == 2000000000); } }
public void IfcTriangulatedFaceSetTest() { using (var store = IfcStore.Open("BasinTessellation.ifc")) { var basinTess = store.Instances[501] as IIfcTriangulatedFaceSet; var tessellator = new XbimTessellator(store, XbimGeometryType.PolyhedronBinary); Assert.IsNotNull(basinTess); Assert.IsTrue(tessellator.CanMesh(basinTess)); var geom = tessellator.Mesh(basinTess); Assert.IsTrue((int)(geom.BoundingBox.Volume) == 23913892); } }
public void IfcTriangulatedFaceSetWithNormalsTest() { using (var store = IfcStore.Open("column-straight-rectangle-tessellation.ifc")) { var columnTess = store.Instances[288] as IIfcTriangulatedFaceSet; var tessellator = new XbimTessellator(store, XbimGeometryType.PolyhedronBinary); Assert.IsNotNull(columnTess); Assert.IsTrue(tessellator.CanMesh(columnTess)); var geom = tessellator.Mesh(columnTess); Assert.IsTrue((int)(geom.BoundingBox.Volume) == 7680); } }
public void IfcTriangulatedFaceSetComplexBinaryTest() { using (var store = IfcStore.Open("IFC4TessellationComplex.ifc")) { var triangulatedFaceSet = store.Instances[4373] as IIfcTriangulatedFaceSet; var tessellator = new XbimTessellator(store, XbimGeometryType.PolyhedronBinary); Assert.IsNotNull(triangulatedFaceSet); Assert.IsTrue(tessellator.CanMesh(triangulatedFaceSet)); var geom = tessellator.Mesh(triangulatedFaceSet); using (var ms = new MemoryStream(((IXbimShapeGeometryData)geom).ShapeData)) { using (var br = new BinaryReader(ms)) { XbimShapeTriangulation myShapeTriangulation = br.ReadShapeTriangulation(); Assert.IsTrue(myShapeTriangulation.Faces.Sum(t => t.TriangleCount) == triangulatedFaceSet.NumberOfTriangles); } } } }