// 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 _HLRBRep_Data_HeaderFile #define _HLRBRep_Data_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_DefineHandle_HeaderFile #include #endif #ifndef _Handle_HLRBRep_Data_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _TopTools_IndexedMapOfShape_HeaderFile #include #endif #ifndef _HLRBRep_Array1OfEData_HeaderFile #include #endif #ifndef _HLRBRep_Array1OfFData_HeaderFile #include #endif #ifndef _TColStd_Array1OfInteger_HeaderFile #include #endif #ifndef _Standard_ShortReal_HeaderFile #include #endif #ifndef _HLRAlgo_Projector_HeaderFile #include #endif #ifndef _HLRBRep_CLProps_HeaderFile #include #endif #ifndef _HLRBRep_SLProps_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _HLRBRep_FaceIterator_HeaderFile #include #endif #ifndef _Standard_Address_HeaderFile #include #endif #ifndef _GeomAbs_SurfaceType_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _GeomAbs_CurveType_HeaderFile #include #endif #ifndef _TopAbs_Orientation_HeaderFile #include #endif #ifndef _HLRBRep_Intersector_HeaderFile #include #endif #ifndef _Handle_BRepTopAdaptor_TopolTool_HeaderFile #include #endif #ifndef _HLRAlgo_Interference_HeaderFile #include #endif #ifndef _MMgt_TShared_HeaderFile #include #endif #ifndef _TopAbs_State_HeaderFile #include #endif class BRepTopAdaptor_TopolTool; class StdFail_UndefinedDerivative; class HLRBRep_Array1OfEData; class HLRBRep_Array1OfFData; class HLRAlgo_Projector; class TopTools_IndexedMapOfShape; class BRepTopAdaptor_MapOfShapeTool; class HLRAlgo_Interference; class gp_Dir2d; class HLRBRep_EdgeData; class HLRAlgo_InterferenceList; class HLRBRep_FaceData; class IntRes2d_IntersectionPoint; class HLRBRep_Data : public MMgt_TShared { public: //! Create an empty data structure of vertices,
//! edges and faces.
Standard_EXPORT HLRBRep_Data(const Standard_Integer NV,const Standard_Integer NE,const Standard_Integer NF); //! Write in me with a translation of
//! ,,.
Standard_EXPORT void Write(const Handle(HLRBRep_Data)& DS,const Standard_Integer dv,const Standard_Integer de,const Standard_Integer df) ; HLRBRep_Array1OfEData& EDataArray() ; HLRBRep_Array1OfFData& FDataArray() ; //! Set the tolerance for the rejections during the
//! exploration
void Tolerance(const Standard_ShortReal tol) ; //! returns the tolerance for the rejections during
//! the exploration
Standard_ShortReal Tolerance() const; //! end of building of the Data and updating
//! all the informations linked to the projection.
Standard_EXPORT void Update(const HLRAlgo_Projector& P) ; HLRAlgo_Projector& Projector() ; Standard_Integer NbVertices() const; Standard_Integer NbEdges() const; Standard_Integer NbFaces() const; TopTools_IndexedMapOfShape& EdgeMap() ; TopTools_IndexedMapOfShape& FaceMap() ; //! to compare with only non rejected edges.
Standard_EXPORT void InitBoundSort(const Standard_Address MinMaxTot,const Standard_Integer e1,const Standard_Integer e2) ; //! Begin an iteration only on visible Edges
//! crossing the face number .
Standard_EXPORT void InitEdge(const Standard_Integer FI,BRepTopAdaptor_MapOfShapeTool& MST) ; Standard_EXPORT Standard_Boolean MoreEdge() ; Standard_EXPORT void NextEdge(const Standard_Boolean skip = Standard_True) ; //! Returns the current Edge
Standard_EXPORT Standard_Integer Edge() const; //! Returns true if the current edge to be hidden
//! belongs to the hiding face.
Standard_Boolean HidingTheFace() const; //! Returns true if the current hiding face is not an
//! auto-intersected one.
Standard_Boolean SimpleHidingFace() const; //! Intersect the current Edge with the boundary of
//! the hiding face. The interferences are given by
//! the More, Next, and Value methods.
Standard_EXPORT void InitInterference() ; Standard_Boolean MoreInterference() const; Standard_EXPORT void NextInterference() ; //! Returns True if the interference is rejected.
Standard_EXPORT Standard_Boolean RejectedInterference() ; //! Returns True if the rejected interference is above
//! the face.
Standard_EXPORT Standard_Boolean AboveInterference() ; HLRAlgo_Interference& Interference() ; //! Returns the local description of the projection of
//! the current LEdge at parameter .
Standard_EXPORT void LocalLEGeometry2D(const Standard_Real Param,gp_Dir2d& Tg,gp_Dir2d& Nm,Standard_Real& Cu) ; //! Returns the local description of the projection of
//! the current FEdge at parameter .
Standard_EXPORT void LocalFEGeometry2D(const Standard_Integer FE,const Standard_Real Param,gp_Dir2d& Tg,gp_Dir2d& Nm,Standard_Real& Cu) ; //! Returns the local 3D state of the intersection
//! between the current edge and the current face at the
//! and parameters.
Standard_EXPORT void EdgeState(const Standard_Real p1,const Standard_Real p2,TopAbs_State& stbef,TopAbs_State& staf) ; //! Returns the true if the Edge belongs to the
//! Hiding Face.
Standard_Boolean EdgeOfTheHidingFace(const Standard_Integer E,const HLRBRep_EdgeData& EData) const; //! Returns the number of levels of hiding face above
//! the first point of the edge . The
//! InterferenceList is given to compute far away of
//! the Interferences and then come back.
Standard_EXPORT Standard_Integer HidingStartLevel(const Standard_Integer E,const HLRBRep_EdgeData& EData,const HLRAlgo_InterferenceList& IL) ; //! Returns the state of the Edge after
//! classification.
Standard_EXPORT TopAbs_State Compare(const Standard_Integer E,const HLRBRep_EdgeData& EData) ; //! Simple classification of part of edge [p1, p2]
//! returns OUT if at least 1 of Nbp points of edge is out
//! othewise returns IN
//! It is used to check "suspision" hided part of edge.
Standard_EXPORT TopAbs_State SimplClassify(const Standard_Integer E,const HLRBRep_EdgeData& EData,const Standard_Integer Nbp,const Standard_Real p1,const Standard_Real p2) ; Standard_EXPORT void Destroy() ; ~HLRBRep_Data() { Destroy(); } DEFINE_STANDARD_RTTI(HLRBRep_Data) protected: private: //! Orient the OutLines ( left must be inside in
//! projection ). Returns True if the face of a closed
//! shell has been inverted;
Standard_EXPORT Standard_Boolean OrientOutLine(const Standard_Integer I,HLRBRep_FaceData& FD) ; //! Orient the Edges which are not Internal OutLine,
//! not Double and not IsoLine.
Standard_EXPORT void OrientOthEdge(const Standard_Integer I,HLRBRep_FaceData& FD) ; //! Classification of an edge.
Standard_EXPORT TopAbs_State Classify(const Standard_Integer E,const HLRBRep_EdgeData& EData,const Standard_Boolean LevelFlag,Standard_Integer& Level,const Standard_Real param) ; //! Returns True if the intersection is rejected.
Standard_EXPORT Standard_Boolean RejectedPoint(const IntRes2d_IntersectionPoint& PInter,const TopAbs_Orientation BoundOri,const Standard_Integer NumSeg) ; //! returns True if there is a common vertex between
//! myLE and myFE dependig on and .
Standard_EXPORT Standard_Boolean SameVertex(const Standard_Boolean head1,const Standard_Boolean head2) ; Standard_Integer myNbVertices; Standard_Integer myNbEdges; Standard_Integer myNbFaces; TopTools_IndexedMapOfShape myEMap; TopTools_IndexedMapOfShape myFMap; HLRBRep_Array1OfEData myEData; HLRBRep_Array1OfFData myFData; TColStd_Array1OfInteger myEdgeIndices; Standard_ShortReal myToler; HLRAlgo_Projector myProj; HLRBRep_CLProps myLLProps; HLRBRep_CLProps myFLProps; HLRBRep_SLProps mySLProps; Standard_Real myBigSize; HLRBRep_FaceIterator myFaceItr1; HLRBRep_FaceIterator myFaceItr2; Standard_Integer iFace; Standard_Address iFaceData; Standard_Address iFaceGeom; Standard_Address iFaceMinMax; GeomAbs_SurfaceType iFaceType; Standard_Boolean iFaceBack; Standard_Boolean iFaceSimp; Standard_Boolean iFaceSmpl; Standard_Boolean iFaceTest; Standard_Integer myHideCount; Standard_Real myDeca[16]; Standard_Real mySurD[16]; Standard_Integer myCurSortEd; Standard_Integer myNbrSortEd; Standard_Integer myLE; Standard_Boolean myLEOutLine; Standard_Boolean myLEInternal; Standard_Boolean myLEDouble; Standard_Boolean myLEIsoLine; Standard_Address myLEData; Standard_Address myLEGeom; Standard_Address myLEMinMax; GeomAbs_CurveType myLEType; Standard_ShortReal myLETol; Standard_Integer myFE; TopAbs_Orientation myFEOri; Standard_Boolean myFEOutLine; Standard_Boolean myFEInternal; Standard_Boolean myFEDouble; Standard_Address myFEData; Standard_Address myFEGeom; GeomAbs_CurveType myFEType; Standard_ShortReal myFETol; HLRBRep_Intersector myIntersector; Handle_BRepTopAdaptor_TopolTool myClassifier; Standard_Boolean mySameVertex; Standard_Boolean myIntersected; Standard_Integer myNbPoints; Standard_Integer myNbSegments; Standard_Integer iInterf; HLRAlgo_Interference myIntf; Standard_Boolean myAboveIntf; Standard_Address myReject; }; #include // other Inline functions and methods (like "C++: function call" methods) #endif