def compute(self): # get faces explorer = TopExp_Explorer() explorer.Init(self._shape, TopAbs_FACE) if self._map_faces_to_mesh: # one mesh per face faces = [] while explorer.More(): current_face = explorer.Current() faces.append(current_face) explorer.Next() # loop over faces for face in faces: face_tesselator = Tesselator(face) self._indexed_face_sets.append(face_tesselator.ExportShapeToX3DIndexedFaceSet()) else: # only one mesh for the whole shape shape_tesselator = Tesselator(self._shape) self._indexed_face_sets.append(shape_tesselator.ExportShapeToX3DIndexedFaceSet())
def test_export_to_x3d_TriangleSet(self): """ 3rd test : export a sphere to an X3D TriangleSet triangle mesh """ a_sphere = BRepPrimAPI_MakeBox(10., 10., 10.).Shape() tess = Tesselator(a_sphere) tess.Compute() ifs = tess.ExportShapeToX3DIndexedFaceSet() self.assert_(ifs.startswith("<TriangleSet")) self.assert_("0 10 0" in ifs) # a vertex self.assert_("0 0 1" in ifs) # a normal
def compute(self): shape_tesselator = Tesselator(self._shape) shape_tesselator.Compute(compute_edges=self._export_edges, mesh_quality=self._mesh_quality) self._triangle_sets.append(shape_tesselator.ExportShapeToX3DIndexedFaceSet()) # then process edges if self._export_edges: # get number of edges nbr_edges = shape_tesselator.ObjGetEdgeCount() for i_edge in range(nbr_edges): edge_point_set = [] nbr_vertices = shape_tesselator.ObjEdgeGetVertexCount(i_edge) for i_vert in range(nbr_vertices): edge_point_set.append(shape_tesselator.GetEdgeVertex(i_edge, i_vert)) ils = ExportEdgeToILS(edge_point_set) self._line_sets.append(ils)