// 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_HeaderFile #define _ShapeAnalysis_HeaderFile #ifndef _Standard_HeaderFile #include #endif #ifndef _Standard_Macro_HeaderFile #include #endif #ifndef _Standard_Real_HeaderFile #include #endif #ifndef _Handle_ShapeExtend_WireData_HeaderFile #include #endif #ifndef _Standard_Boolean_HeaderFile #include #endif class TopoDS_Wire; class TopoDS_Face; class ShapeExtend_WireData; class TopoDS_Shape; class TopoDS_Vertex; class ShapeAnalysis_Geom; class ShapeAnalysis_Curve; class ShapeAnalysis_Surface; class ShapeAnalysis_Edge; class ShapeAnalysis_Wire; class ShapeAnalysis_WireOrder; class ShapeAnalysis_WireVertex; class ShapeAnalysis_CheckSmallFace; class ShapeAnalysis_Shell; class ShapeAnalysis_ShapeTolerance; class ShapeAnalysis_ShapeContents; class ShapeAnalysis_FreeBounds; class ShapeAnalysis_FreeBoundData; class ShapeAnalysis_FreeBoundsProperties; class ShapeAnalysis_TransferParameters; class ShapeAnalysis_TransferParametersProj; class ShapeAnalysis_SequenceOfFreeBounds; class ShapeAnalysis_HSequenceOfFreeBounds; class ShapeAnalysis_DataMapOfShapeListOfReal; class ShapeAnalysis_SequenceNodeOfSequenceOfFreeBounds; class ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal; class ShapeAnalysis_DataMapIteratorOfDataMapOfShapeListOfReal; //! This package is intended to analyze geometrical objects
//! and topological shapes. Analysis domain includes both
//! exploring geometrical and topological properties of
//! shapes and checking their conformance to Open CASCADE requirements.
//! The directions of analysis provided by tools of this package are:
//! computing quantities of subshapes,
//! computing parameters of points on curve and surface,
//! computing surface singularities,
//! checking edge and wire consistency,
//! checking edges order in the wire,
//! checking face bounds orientation,
//! checking small faces,
//! analyzing shape tolerances,
//! analyzing of free bounds of the shape.
class ShapeAnalysis { 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); } //! Returns the outer wire on the face .
//! This is replacement of the method BRepTools::OuterWire
//! until it works badly.
//! Returns the first wire oriented as outer according to
//! FClass2d_Classifier. If none, last wire is returned.
Standard_EXPORT static TopoDS_Wire OuterWire(const TopoDS_Face& face) ; //! Returns a total area of 2d wire
Standard_EXPORT static Standard_Real TotCross2D(const Handle(ShapeExtend_WireData)& sewd,const TopoDS_Face& aFace) ; //! Returns a total area of 3d wire
Standard_EXPORT static Standard_Real ContourArea(const TopoDS_Wire& theWire) ; //! Returns True if has outer bound.
Standard_EXPORT static Standard_Boolean IsOuterBound(const TopoDS_Face& face) ; //! Returns a shift required to move point
//! to the range [ToVal-Period/2,ToVal+Period/2].
//! This shift will be the divisible by Period.
//! Intended for adjusting parameters on periodic surfaces.
Standard_EXPORT static Standard_Real AdjustByPeriod(const Standard_Real Val,const Standard_Real ToVal,const Standard_Real Period) ; //! Returns a shift required to move point
//! to the range [ValMin,ValMax].
//! This shift will be the divisible by Period
//! with Period = ValMax - ValMin.
//! Intended for adjusting parameters on periodic surfaces.
Standard_EXPORT static Standard_Real AdjustToPeriod(const Standard_Real Val,const Standard_Real ValMin,const Standard_Real ValMax) ; //! Finds the start and end vertices of the shape
//! Shape can be of the following type:
//! vertex: V1 and V2 are the same and equal to ,
//! edge : V1 is start and V2 is end vertex (see ShapeAnalysis_Edge
//! methods FirstVertex and LastVertex),
//! wire : V1 is start vertex of the first edge, V2 is end vertex
//! of the last edge (also see ShapeAnalysis_Edge).
//! If wire contains no edges V1 and V2 are nullified
//! If none of the above V1 and V2 are nullified
Standard_EXPORT static void FindBounds(const TopoDS_Shape& shape,TopoDS_Vertex& V1,TopoDS_Vertex& V2) ; //! Computes exact UV bounds of all wires on the face
Standard_EXPORT static void GetFaceUVBounds(const TopoDS_Face& F,Standard_Real& Umin,Standard_Real& Umax,Standard_Real& Vmin,Standard_Real& Vmax) ; protected: private: friend class ShapeAnalysis_Geom; friend class ShapeAnalysis_Curve; friend class ShapeAnalysis_Surface; friend class ShapeAnalysis_Edge; friend class ShapeAnalysis_Wire; friend class ShapeAnalysis_WireOrder; friend class ShapeAnalysis_WireVertex; friend class ShapeAnalysis_CheckSmallFace; friend class ShapeAnalysis_Shell; friend class ShapeAnalysis_ShapeTolerance; friend class ShapeAnalysis_ShapeContents; friend class ShapeAnalysis_FreeBounds; friend class ShapeAnalysis_FreeBoundData; friend class ShapeAnalysis_FreeBoundsProperties; friend class ShapeAnalysis_TransferParameters; friend class ShapeAnalysis_TransferParametersProj; friend class ShapeAnalysis_SequenceOfFreeBounds; friend class ShapeAnalysis_HSequenceOfFreeBounds; friend class ShapeAnalysis_DataMapOfShapeListOfReal; friend class ShapeAnalysis_SequenceNodeOfSequenceOfFreeBounds; friend class ShapeAnalysis_DataMapNodeOfDataMapOfShapeListOfReal; friend class ShapeAnalysis_DataMapIteratorOfDataMapOfShapeListOfReal; }; // other Inline functions and methods (like "C++: function call" methods) #endif