0029570: Visualization, Graphic3d_Aspect - merge Graphic3d_Group aspects
[occt.git] / src / StdPrs / StdPrs_WFShape.hxx
index de35127..f2ff76d 100755 (executable)
@@ -24,6 +24,8 @@
 #include <TopoDS_Shape.hxx>
 #include <TopTools_ListOfShape.hxx>
 
+class Graphic3d_ArrayOfPoints;
+
 //! Tool for computing wireframe presentation of a TopoDS_Shape.
 class StdPrs_WFShape : public Prs3d_Root
 {
@@ -53,24 +55,44 @@ public:
                                                        const TopoDS_Shape&    theShape,
                                                        const Standard_Boolean theToExcludeGeometric = Standard_True);
 
+  //! Compute all edges (wire, free, unfree) and put them into single primitive array.
+  //! @param theShape [in] the shape
+  //! @param theDrawer [in] the drawer settings (deviation angle and maximal parameter value)
+  Standard_EXPORT static Handle(Graphic3d_ArrayOfPrimitives) AddAllEdges (const TopoDS_Shape& theShape,
+                                                                          const Handle(Prs3d_Drawer)& theDrawer);
+
+  //! Compute vertex presentation for a shape.
+  //! @param theShape [in] the shape
+  //! @param theVertexMode [in] vertex filter
+  Standard_EXPORT static Handle(Graphic3d_ArrayOfPoints) AddVertexes (const TopoDS_Shape& theShape,
+                                                                      Prs3d_VertexDrawMode theVertexMode);
+
 private:
 
   //! Compute edge presentations for a shape.
-  //! @param theEdges [in] the list of edges.
-  //! @param theDrawer [in] the drawer settings.
-  //! @param theShapeDeflection [in] the deflection for the wireframe shape.
+  //! @param theShape [in] the shape
+  //! @param theDrawer [in] the drawer settings (deviation angle and maximal parameter value)
+  //! @param theShapeDeflection [in] the deflection for the wireframe shape
+  //! @param theWire [out] output polylines for lonely wires
+  //! @param theFree [out] output polylines for free edges
+  //! @param theUnFree [out] output polylines for non-free edges
+  Standard_EXPORT static void addEdges (const TopoDS_Shape& theShape,
+                                        const Handle(Prs3d_Drawer)& theDrawer,
+                                        Standard_Real theShapeDeflection,
+                                        Prs3d_NListOfSequenceOfPnt* theWire,
+                                        Prs3d_NListOfSequenceOfPnt* theFree,
+                                        Prs3d_NListOfSequenceOfPnt* theUnFree);
+
+  //! Compute edge presentations for a shape.
+  //! @param theEdges [in] the list of edges
+  //! @param theDrawer [in] the drawer settings (deviation angle and maximal parameter value)
+  //! @param theShapeDeflection [in] the deflection for the wireframe shape
+  //! @param thePolylines [out] output polylines
   static void addEdges (const TopTools_ListOfShape& theEdges,
                         const Handle(Prs3d_Drawer)& theDrawer,
                         const Standard_Real         theShapeDeflection,
                         Prs3d_NListOfSequenceOfPnt& thePolylines);
 
-  //! Compute vertex presentation for a shape.
-  //! @param thePresentation [in] the presentation.
-  //! @param theVertices [in] the list of points.
-  //! @param theAspect [in] the point drawing aspect.
-  static void addVertices (const Handle (Prs3d_Presentation)& thePresentation,
-                           const TColgp_SequenceOfPnt&        theVertices,
-                           const Handle (Prs3d_PointAspect)&  theAspect);
 };
 
 #endif // _StdPrs_WFShape_H__