#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
{
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__