示例#1
0
 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())
示例#2
0
 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
示例#3
0
 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)