// 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 _BRepMesh_Delaun_HeaderFile #define _BRepMesh_Delaun_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Handle_BRepMesh_DataStructureOfDelaun_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _BRepMesh_CircleTool_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _BRepMesh_Triangle_HeaderFile #include #endif #ifndef _BRepMesh_MapOfInteger_HeaderFile #include #endif #ifndef _BRepMesh_MapOfIntegerInteger_HeaderFile #include #endif class BRepMesh_DataStructureOfDelaun; class BRepMesh_Array1OfVertexOfDelaun; class TColStd_Array1OfInteger; class BRepMesh_Vertex; class BRepMesh_Edge; class BRepMesh_Triangle; class Bnd_Box2d; class TColStd_SequenceOfInteger; //! Compute the Delaunay's triangulation with the
//! algorithm of Watson.
class BRepMesh_Delaun { 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); } //! Creates the triangulation with an empty Mesh
//! data structure.
Standard_EXPORT BRepMesh_Delaun(BRepMesh_Array1OfVertexOfDelaun& Vertices,const Standard_Boolean ZPositive = Standard_True); //! Creates the triangulation with and existant
//! Mesh data structure.
Standard_EXPORT BRepMesh_Delaun(const Handle(BRepMesh_DataStructureOfDelaun)& OldMesh,BRepMesh_Array1OfVertexOfDelaun& Vertices,const Standard_Boolean ZPositive = Standard_True); //! Creates the triangulation with and existant
//! Mesh data structure.
Standard_EXPORT BRepMesh_Delaun(const Handle(BRepMesh_DataStructureOfDelaun)& OldMesh,TColStd_Array1OfInteger& VertexIndices,const Standard_Boolean ZPositive = Standard_True); //! Removes a vertex in the triangulation.
Standard_EXPORT void RemoveVertex(const BRepMesh_Vertex& theVertex) ; //! Adds some vertices in the triangulation.
Standard_EXPORT void AddVertices(BRepMesh_Array1OfVertexOfDelaun& Vertices) ; //! Modify mesh to use the edge. Return True if done.
Standard_EXPORT Standard_Boolean UseEdge(const Standard_Integer theEdge) ; //! Gives the Mesh data structure.
Standard_EXPORT const Handle_BRepMesh_DataStructureOfDelaun& Result() const; //! Gives the list of frontier edges
Standard_EXPORT const BRepMesh_MapOfInteger& Frontier() ; //! Gives the list of internal edges
Standard_EXPORT const BRepMesh_MapOfInteger& InternalEdges() ; //! Gives the list of free edges used only one time
Standard_EXPORT const BRepMesh_MapOfInteger& FreeEdges() ; const BRepMesh_Vertex& GetVertex(const Standard_Integer vIndex) const; const BRepMesh_Edge& GetEdge(const Standard_Integer eIndex) const; const BRepMesh_Triangle& GetTriangle(const Standard_Integer tIndex) const; //! Initializes the triangulation with an Array of
//! Vertex.
Standard_EXPORT void Init(BRepMesh_Array1OfVertexOfDelaun& Vertices) ; //! Computes the triangulation and add the vertices
//! edges and triangles to the Mesh data structure.
Standard_EXPORT void Compute(TColStd_Array1OfInteger& VertexIndices) ; //! Build the super mesh .
Standard_EXPORT void SuperMesh(const Bnd_Box2d& theBox) ; //! Test if triangle of index
//! contains geometricaly . If
//! is != 0 then theVertex is on Edge of index
//! .
Standard_EXPORT Standard_Boolean Contains(const Standard_Integer TrianIndex,const BRepMesh_Vertex& theVertex,Standard_Integer& edgeOn) const; protected: private: //! Adjust the mesh on the frontier.
Standard_EXPORT void FrontierAdjust() ; //! Find left polygon of the edge and call MeshPolygon.
Standard_EXPORT void MeshLeftPolygonOf(const Standard_Integer EdgeIndex,const Standard_Boolean EdgeSens) ; //! Mesh closed polygon.
Standard_EXPORT void MeshPolygon(TColStd_SequenceOfInteger& Polygon) ; //! Creates the triangles beetween the node
//! and the polyline .
Standard_EXPORT void CreateTriangles(const Standard_Integer vertexIndex,BRepMesh_MapOfIntegerInteger& freeEdges) ; //! Deletes the triangle of index and
//! add the free edges to the map.
//! When an edge is suppressed more than one time
//! it is destroyed.
Standard_EXPORT void DeleteTriangle(const Standard_Integer TrianIndex,BRepMesh_MapOfIntegerInteger& freeEdges) ; Standard_EXPORT void Perform(Bnd_Box2d& theBndBox,TColStd_Array1OfInteger& theVertexIndices) ; //! Creates the triangles on new nodes
Standard_EXPORT void CreateTrianglesOnNewVertices(TColStd_Array1OfInteger& theVertexIndices) ; Handle_BRepMesh_DataStructureOfDelaun MeshData; Standard_Boolean PositiveOrientation; BRepMesh_CircleTool tCircles; Standard_Integer supVert1; Standard_Integer supVert2; Standard_Integer supVert3; BRepMesh_Triangle supTrian; BRepMesh_MapOfInteger mapEdges; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif