// This file is generated by WOK (CPPExt). // Please do not edit this file; modify original file instead. // The copyright and license terms as defined for the original file apply to // this header file considered to be the "object code" form of the original source. #ifndef _ShapeAnalysis_FreeBounds_HeaderFile #define _ShapeAnalysis_FreeBounds_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _TopoDS_Compound_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _Handle_TopTools_HSequenceOfShape_HeaderFile #include #endif class TopoDS_Shape; class TopoDS_Compound; class TopTools_HSequenceOfShape; class TopTools_DataMapOfShapeShape; //! This class is intended to output free bounds of the shape
//! (free bounds are the wires consisting of edges referenced by the
//! only face).
//! This class works on two distinct types of shapes when analyzing
//! their free bounds:
//! 1. compound of faces.
//! Analyzer of sewing algorithm (BRepAlgo_Sewing) is used for
//! for forecasting free bounds that would be obtained after
//! performing sewing
//! 2. compound of shells.
//! Actual free bounds (edges shared by the only face in the shell)
//! are output in this case. ShapeAnalysis_Shell is used for that.
class ShapeAnalysis_FreeBounds { public: void* operator new(size_t,void* anAddress) { return anAddress; } void* operator new(size_t size) { return Standard::Allocate(size); } void operator delete(void *anAddress) { if (anAddress) Standard::Free((Standard_Address&)anAddress); } //! Empty constructor
Standard_EXPORT ShapeAnalysis_FreeBounds(); //! Builds forecasting free bounds of the .
//! should be a compound of faces.
//! This constructor is to be used for forecasting free edges
//! with help of sewing analyzer BRepAlgo_Sewing which is called
//! with tolerance .
//! Free edges are connected into wires only when their ends are
//! at distance less than .
//! If is True extracts closed sub-wires out of
//! built closed wires.
//! If is True extracts closed sub-wires out of
//! built open wires.
Standard_EXPORT ShapeAnalysis_FreeBounds(const TopoDS_Shape& shape,const Standard_Real toler,const Standard_Boolean splitclosed = Standard_False,const Standard_Boolean splitopen = Standard_True); //! Builds actual free bounds of the .
//! should be a compound of shells.
//! This constructor is to be used for getting free edges (ones
//! referenced by the only face) with help of analyzer
//! ShapeAnalysis_Shell.
//! Free edges are connected into wires only when they share the
//! same vertex.
//! If is True extracts closed sub-wires out of
//! built closed wires.
//! If is True extracts closed sub-wires out of
//! built open wires.
Standard_EXPORT ShapeAnalysis_FreeBounds(const TopoDS_Shape& shape,const Standard_Boolean splitclosed = Standard_False,const Standard_Boolean splitopen = Standard_True,const Standard_Boolean checkinternaledges = Standard_False); //! Returns compound of closed wires out of free edges.
const TopoDS_Compound& GetClosedWires() const; //! Returns compound of open wires out of free edges.
const TopoDS_Compound& GetOpenWires() const; //! Builds sequnce of out of sequence of not sorted
//! .
//! Tries to build wires of maximum length. Building a wire is
//! stopped when no edges can be connected to it at its head or
//! at its tail.
Standard_EXPORT static void ConnectEdgesToWires(Handle(TopTools_HSequenceOfShape)& edges,const Standard_Real toler,const Standard_Boolean shared,Handle(TopTools_HSequenceOfShape)& wires) ; Standard_EXPORT static void ConnectWiresToWires(Handle(TopTools_HSequenceOfShape)& iwires,const Standard_Real toler,const Standard_Boolean shared,Handle(TopTools_HSequenceOfShape)& owires) ; //! Builds sequnce of out of sequence of not sorted
//! .
//! Tries to build wires of maximum length. Building a wire is
//! stopped when no wires can be connected to it at its head or
//! at its tail.
Standard_EXPORT static void ConnectWiresToWires(Handle(TopTools_HSequenceOfShape)& iwires,const Standard_Real toler,const Standard_Boolean shared,Handle(TopTools_HSequenceOfShape)& owires,TopTools_DataMapOfShapeShape& vertices) ; //! Extracts closed sub-wires out of and adds them
//! to , open wires remained after extraction are put
//! into .
//! If is True extraction is performed only when
//! edges share the same vertex.
//! If is False connection is performed only when
//! ends of the edges are at distance less than .
Standard_EXPORT static void SplitWires(const Handle(TopTools_HSequenceOfShape)& wires,const Standard_Real toler,const Standard_Boolean shared,Handle(TopTools_HSequenceOfShape)& closed,Handle(TopTools_HSequenceOfShape)& open) ; //! Dispatches sequence of into two compounds
//! for closed wires and for open wires.
//! If a compound is not empty wires are added into it.
Standard_EXPORT static void DispatchWires(const Handle(TopTools_HSequenceOfShape)& wires,TopoDS_Compound& closed,TopoDS_Compound& open) ; protected: private: Standard_EXPORT void SplitWires() ; TopoDS_Compound myWires; TopoDS_Compound myEdges; Standard_Real myTolerance; Standard_Boolean myShared; Standard_Boolean mySplitClosed; Standard_Boolean mySplitOpen; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif