// 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 _IntTools_Context_HeaderFile #define _IntTools_Context_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _TopTools_IndexedDataMapOfShapeAddress_HeaderFile #include #endif #ifndef _IntTools_IndexedDataMapOfTransientAddress_HeaderFile #include #endif #ifndef _Handle_Geom_Curve_HeaderFile #include #endif #ifndef _Standard_Integer_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif #ifndef _TopAbs_State_HeaderFile #include #endif class IntTools_FClass2d; class TopoDS_Face; class GeomAPI_ProjectPointOnSurf; class GeomAPI_ProjectPointOnCurve; class TopoDS_Edge; class Geom_Curve; class IntTools_SurfaceRangeLocalizeData; class BRepClass3d_SolidClassifier; class TopoDS_Solid; class TopoDS_Vertex; class gp_Pnt2d; class gp_Pnt; class IntTools_Curve; //! The class is to provide direct access
//! to the frequently using objects like
//! IntTools_FClass2d,
//! GeomAPI_ProjectPointOnSurf, etc.
//! The instance of the class allows to avoid repeated
//! computations by mapping internal objects in the
//! instance.
class IntTools_Context { 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 IntTools_Context(); Standard_EXPORT virtual ~IntTools_Context(); //! Returns a reference to point classifier
//! for given face
Standard_EXPORT IntTools_FClass2d& FClass2d(const TopoDS_Face& aF) ; //! Returns a reference to point projector
//! for given face
Standard_EXPORT GeomAPI_ProjectPointOnSurf& ProjPS(const TopoDS_Face& aF) ; //! Returns a reference to point projector
//! for given edge
Standard_EXPORT GeomAPI_ProjectPointOnCurve& ProjPC(const TopoDS_Edge& aE) ; //! Returns a reference to point projector
//! for given curve
Standard_EXPORT GeomAPI_ProjectPointOnCurve& ProjPT(const Handle(Geom_Curve)& aC) ; //! Returns a reference to surface localization data
//! for given face
Standard_EXPORT IntTools_SurfaceRangeLocalizeData& SurfaceData(const TopoDS_Face& aF) ; //! Returns a reference to solid classifier
//! for given solid
Standard_EXPORT BRepClass3d_SolidClassifier& SolidClassifier(const TopoDS_Solid& aSolid) ; //! Computes parameter of the vertex aV on
//! the edge aE.
//! Returns zero if the distance between vertex
//! and edge is less than sum of tolerances,
//! otherwise and for following conditions returns
//! negative value
//! 1. the edge is degenerated (-1)
//! 2. the edge does not contain 3d curve and pcurves (-2)
//! 3. projection algorithm failed (-3)
Standard_EXPORT Standard_Integer ComputeVE(const TopoDS_Vertex& aV,const TopoDS_Edge& aE,Standard_Real& aT) ; //! Computes parameter aT of the vertex aV on
//! the edge aE.
//! Returns zero if the distance between vertex
//! and edge is less than sum of tolerances,
//! otherwise and for following conditions returns
//! negative value
//! 1. the edge is degenerated (-1)
//! 2. the edge does not contain 3d curve and pcurves (-2)
//! 3. projection algorithm failed (-3)
//!
//! Output parameters
//!
//! bToUpdateVertex - the flag that indicates whether the
//! vertex tolerance should be modified or not
//! aDist - the value of the distance between the vertex
//! and the edge
Standard_EXPORT Standard_Integer ComputeVE(const TopoDS_Vertex& aV,const TopoDS_Edge& aE,Standard_Real& aT,Standard_Boolean& bToUpdateVertex,Standard_Real& aDist) ; //! Computes UV parameters of the vertex aV on face aF
//! Returns zero if the distance between vertex and face is
//! less than or equal the sum of tolerances and the projection
//! point lays inside boundaries of the face.
//! For following conditions returns negative value
//! 1. projection algorithm failed (-1)
//! 2. distance is more than sum of tolerances (-2)
//! 3. projection point out or on the boundaries of face (-3)
//!
Standard_EXPORT Standard_Integer ComputeVS(const TopoDS_Vertex& aV,const TopoDS_Face& aF,Standard_Real& U,Standard_Real& V) ; //! Returns the state of the point aP2D
//! relative to face aF
Standard_EXPORT TopAbs_State StatePointFace(const TopoDS_Face& aF,const gp_Pnt2d& aP2D) ; //! Returns true if the point aP2D is
//! inside the boundaries of the face aF,
//! otherwise returns false
Standard_EXPORT Standard_Boolean IsPointInFace(const TopoDS_Face& aF,const gp_Pnt2d& aP2D) ; //! Returns true if the point aP2D is
//! inside or on the boundaries of aF
Standard_EXPORT Standard_Boolean IsPointInOnFace(const TopoDS_Face& aF,const gp_Pnt2d& aP2D) ; //! Returns true if the distance between point aP3D
//! and face aF is less or equal to tolerance aTol
//! and projection point is inside or on the boundaries
//! of the face aF
Standard_EXPORT Standard_Boolean IsValidPointForFace(const gp_Pnt& aP3D,const TopoDS_Face& aF,const Standard_Real aTol) ; //! Returns true if IsValidPointForFace returns true
//! for both face aF1 and aF2
Standard_EXPORT Standard_Boolean IsValidPointForFaces(const gp_Pnt& aP3D,const TopoDS_Face& aF1,const TopoDS_Face& aF2,const Standard_Real aTol) ; //! Returns true if IsValidPointForFace returns true
//! for some 3d point that lay on the curve aIC bounded by
//! parameters aT1 and aT2
Standard_EXPORT Standard_Boolean IsValidBlockForFace(const Standard_Real aT1,const Standard_Real aT2,const IntTools_Curve& aIC,const TopoDS_Face& aF,const Standard_Real aTol) ; //! Returns true if IsValidBlockForFace returns true
//! for both faces aF1 and aF2
Standard_EXPORT Standard_Boolean IsValidBlockForFaces(const Standard_Real aT1,const Standard_Real aT2,const IntTools_Curve& aIC,const TopoDS_Face& aF1,const TopoDS_Face& aF2,const Standard_Real aTol) ; //! Computes parameter of the vertex aV on
//! the curve aIC.
//! Returns true if the distance between vertex and
//! curve is less than sum of tolerance of aV and aTolC,
//! otherwise or if projection algorithm failed
//! returns false (in this case aT isn't significant)
//!
Standard_EXPORT Standard_Boolean IsVertexOnLine(const TopoDS_Vertex& aV,const IntTools_Curve& aIC,const Standard_Real aTolC,Standard_Real& aT) ; //! Computes parameter of the vertex aV on
//! the curve aIC.
//! Returns true if the distance between vertex and
//! curve is less than sum of tolerance of aV and aTolC,
//! otherwise or if projection algorithm failed
//! returns false (in this case aT isn't significant)
//!
Standard_EXPORT Standard_Boolean IsVertexOnLine(const TopoDS_Vertex& aV,const Standard_Real aTolV,const IntTools_Curve& aIC,const Standard_Real aTolC,Standard_Real& aT) ; //! Computes parameter of the point aP on
//! the edge aE.
//! Returns false if projection algorithm failed
//! other wiese returns true.
Standard_EXPORT Standard_Boolean ProjectPointOnEdge(const gp_Pnt& aP,const TopoDS_Edge& aE,Standard_Real& aT) ; protected: private: TopTools_IndexedDataMapOfShapeAddress myFClass2dMap; TopTools_IndexedDataMapOfShapeAddress myProjPSMap; TopTools_IndexedDataMapOfShapeAddress myProjPCMap; IntTools_IndexedDataMapOfTransientAddress myProjPTMap; TopTools_IndexedDataMapOfShapeAddress mySClassMap; TopTools_IndexedDataMapOfShapeAddress myProjSDataMap; }; // other Inline functions and methods (like "C++: function call" methods) #endif