22 #ifndef _SMESH_CONTROLSDEF_HXX_
23 #define _SMESH_CONTROLSDEF_HXX_
29 #include <boost/shared_ptr.hpp>
32 #include <GeomAPI_ProjectPointOnSurf.hxx>
33 #include <GeomAPI_ProjectPointOnCurve.hxx>
34 #include <TColStd_SequenceOfInteger.hxx>
35 #include <TColStd_MapOfInteger.hxx>
36 #include <TCollection_AsciiString.hxx>
38 #include <TopoDS_Face.hxx>
39 #include <TopTools_MapOfShape.hxx>
40 #include <BRepClass3d_SolidClassifier.hxx>
41 #include <Quantity_Color.hxx>
49 #if defined SMESHCONTROLS_EXPORTS || defined SMESHControls_EXPORTS
50 #define SMESHCONTROLS_EXPORT __declspec( dllexport )
52 #define SMESHCONTROLS_EXPORT __declspec( dllimport )
55 #define SMESHCONTROLS_EXPORT
84 template <
class InputIterator>
130 virtual double GetBadRate(
double Value,
int nbNodes )
const = 0;
153 virtual double GetBadRate(
double Value,
int nbNodes )
const;
165 virtual double GetBadRate(
double Value,
int nbNodes )
const;
177 virtual double GetBadRate(
double Value,
int nbNodes )
const;
189 virtual double GetBadRate(
double Value,
int nbNodes )
const;
201 virtual double GetBadRate(
double Value,
int nbNodes )
const;
205 double ComputeA(
const gp_XYZ&,
const gp_XYZ&,
const gp_XYZ&,
const gp_XYZ& )
const;
216 virtual double GetBadRate(
double Value,
int nbNodes )
const;
228 virtual double GetBadRate(
double Value,
int nbNodes )
const;
240 virtual double GetBadRate(
double Value,
int nbNodes )
const;
252 virtual double GetBadRate(
double Value,
int nbNodes )
const;
268 Value(
double theLength,
long thePntId1,
long thePntId2);
284 virtual double GetBadRate(
double Value,
int nbNodes )
const;
300 Value(
long thePntId1,
long thePntId2);
369 Border(
long theElemId,
long thePntId1,
long thePntId2);
597 TColStd_MapOfInteger& theResFaces );
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
#define SMESHCONTROLS_EXPORT
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual double GetBadRate(double Value, int nbNodes) const
virtual SMDSAbs_ElementType GetType() const
virtual double GetBadRate(double Value, int nbNodes) const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual SMDSAbs_ElementType GetType() const
virtual double GetBadRate(double Value, int nbNodes) const
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual bool IsSatisfy(long theElementId)
virtual SMDSAbs_ElementType GetType() const
virtual bool IsSatisfy(long theElementId)=0
NumericalFunctorPtr myFunctor
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual void SetNumFunctor(NumericalFunctorPtr theFunct)
virtual void SetMargin(double theValue)
virtual SMDSAbs_ElementType GetType() const
void SetType(SMDSAbs_ElementType theType)
void SetGeomType(SMDSAbs_GeometryType theType)
virtual SMDSAbs_ElementType GetType() const
SMDSAbs_GeometryType myGeomType
virtual bool IsSatisfy(long theElementId)
SMDSAbs_ElementType myType
virtual SMDSAbs_GeometryType GetGeomType() const
virtual void SetMesh(const SMDS_Mesh *theMesh)
GeomAPI_ProjectPointOnCurve myCurProjEdge
void SetTolerance(const double theToler)
void addShape(const TopoDS_Shape &theShape)
virtual bool IsSatisfy(long theElementId)
TColStd_MapOfInteger myIds
double GetTolerance() const
GeomAPI_ProjectPointOnSurf myCurProjFace
SMDSAbs_ElementType myType
virtual SMDSAbs_ElementType GetType() const
void process(const SMDS_MeshElement *theElem)
TopTools_MapOfShape myShapesMap
virtual void SetMesh(const SMDS_Mesh *theMesh)
void SetAllNodes(bool theAllNodes)
TopAbs_ShapeEnum myCurShapeType
void SetShape(const TopoDS_Shape &theShape, const SMDSAbs_ElementType theType)
BRepClass3d_SolidClassifier myCurSC
double GetTolerance() const
bool GetUseBoundaries() const
void SetTolerance(const double theToler)
bool isOnSurface(const SMDS_MeshNode *theNode)
virtual SMDSAbs_ElementType GetType() const
void process(const SMDS_MeshElement *theElem)
TColStd_MapOfInteger myIds
SMDSAbs_ElementType myType
void SetUseBoundaries(bool theUse)
void SetSurface(const TopoDS_Shape &theShape, const SMDSAbs_ElementType theType)
GeomAPI_ProjectPointOnSurf myProjector
virtual bool IsSatisfy(long theElementId)
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual void SetTolerance(double theTol)
virtual double GetTolerance()
virtual bool IsSatisfy(long theElementId)
virtual void SetPredicate(PredicatePtr thePred)
virtual void GetElementsId(const SMDS_Mesh *theMesh, TIdSequence &theSequence)
static void GetElementsId(const SMDS_Mesh *theMesh, PredicatePtr thePredicate, TIdSequence &theSequence)
std::vector< long > TIdSequence
virtual bool IsSatisfy(long theElementId)
virtual SMDSAbs_ElementType GetType() const
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual void SetMesh(const SMDS_Mesh *theMesh)
std::set< Border > TBorders
virtual bool IsSatisfy(long theElementId)
void GetBoreders(TBorders &theBorders)
static bool IsFreeEdge(const SMDS_MeshNode **theNodes, const int theFaceId)
virtual SMDSAbs_ElementType GetType() const
virtual SMDSAbs_ElementType GetType() const
virtual bool IsSatisfy(long theElementId)
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual bool IsSatisfy(long theNodeId)
virtual SMDSAbs_ElementType GetType() const
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual SMDSAbs_ElementType GetType() const =0
virtual void SetMesh(const SMDS_Mesh *theMesh)=0
virtual bool IsSatisfy(long theElementId)
virtual void SetMesh(const SMDS_Mesh *theMesh)
void SetColorStr(const TCollection_AsciiString &)
void SetType(SMDSAbs_ElementType theType)
virtual SMDSAbs_ElementType GetType() const
SMDSAbs_ElementType myType
void GetColorStr(TCollection_AsciiString &) const
std::set< Value > TValues
virtual double GetValue(long theElementId)
void GetValues(TValues &theValues)
virtual double GetBadRate(double Value, int nbNodes) const
virtual SMDSAbs_ElementType GetType() const
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual double GetBadRate(double Value, int nbNodes) const
virtual bool IsSatisfy(long theElementId)
void SetType(SMDSAbs_ElementType theType)
virtual bool IsSatisfy(long theElementId)
virtual SMDSAbs_ElementType GetType() const
virtual void SetMesh(const SMDS_Mesh *theMesh)
SMDSAbs_ElementType myType
virtual bool IsSatisfy(long theElementId)
PredicatePtr myPredicate2
virtual SMDSAbs_ElementType GetType() const
virtual void SetPredicate2(PredicatePtr thePred)
PredicatePtr myPredicate1
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual void SetPredicate1(PredicatePtr thePred)
virtual void SetPredicate(PredicatePtr thePred)
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual SMDSAbs_ElementType GetType() const
virtual bool IsSatisfy(long theElementId)
virtual bool IsSatisfy(long theElementId)
bool IsEqual(const ManifoldPart::Link &theLink) const
bool operator<(const ManifoldPart::Link &x) const
Link(SMDS_MeshNode *theNode1, SMDS_MeshNode *theNode2)
bool IsEqual(const ManifoldPart::Link &theLink1, const ManifoldPart::Link &theLink2)
double GetAngleTolerance() const
TDataMapFacePtrInt myAllFacePtrIntDMap
virtual void SetMesh(const SMDS_Mesh *theMesh)
void getFacesByLink(const Link &theLink, TVectorOfFacePtr &theFaces) const
bool findConnected(const TDataMapFacePtrInt &theAllFacePtrInt, SMDS_MeshFace *theStartFace, TMapOfLink &theNonManifold, TColStd_MapOfInteger &theResFaces)
TVectorOfFacePtr myAllFacePtr
void SetAngleTolerance(const double theAngToler)
void SetIsOnlyManifold(const bool theIsOnly)
TColStd_MapOfInteger myMapBadGeomIds
void SetStartElem(const long theStartElemId)
void expandBoundary(TMapOfLink &theMapOfBoundary, TVectorOfLink &theSeqOfBoundary, TDataMapOfLinkFacePtr &theDMapLinkFacePtr, TMapOfLink &theNonManifold, SMDS_MeshFace *theNextFace) const
std::vector< SMDS_MeshFace * > TVectorOfFacePtr
std::map< SMDS_MeshFace *, int > TDataMapFacePtrInt
virtual SMDSAbs_ElementType GetType() const
std::set< ManifoldPart::Link > TMapOfLink
bool isInPlane(const SMDS_MeshFace *theFace1, const SMDS_MeshFace *theFace2)
std::map< ManifoldPart::Link, SMDS_MeshFace * > TDataMapOfLinkFacePtr
TColStd_MapOfInteger myMapIds
std::vector< ManifoldPart::Link > TVectorOfLink
virtual bool IsSatisfy(long theElementId)
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual double GetBadRate(double Value, int nbNodes) const
virtual bool IsSatisfy(long theElementId)
std::map< Value, int > MValues
virtual double GetValue(long theElementId)
void GetValues(MValues &theValues)
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual SMDSAbs_ElementType GetType() const
virtual double GetBadRate(double Value, int nbNodes) const
virtual double GetBadRate(double Value, int nbNodes) const
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(long theElementId)
virtual double GetValue(const TSequenceOfXYZ &thePoints)
const SMDS_MeshElement * myCurrElement
long GetPrecision() const
static bool GetPoints(const SMDS_MeshElement *theElem, TSequenceOfXYZ &theRes)
virtual double GetBadRate(double Value, int nbNodes) const =0
bool GetPoints(const int theId, TSequenceOfXYZ &theRes) const
virtual void SetMesh(const SMDS_Mesh *theMesh)
virtual SMDSAbs_ElementType GetType() const =0
virtual double GetValue(const TSequenceOfXYZ &thePoints)
void SetPrecision(const long thePrecision)
virtual double GetValue(long theElementId)
virtual bool IsSatisfy(long theElementId)=0
virtual SMDSAbs_ElementType GetType() const =0
bool AddToRange(long theEntityId)
virtual void SetType(SMDSAbs_ElementType theType)
virtual void SetMesh(const SMDS_Mesh *theMesh)
TColStd_SequenceOfInteger myMin
SMDSAbs_ElementType myType
TColStd_SequenceOfInteger myMax
virtual bool IsSatisfy(long theNodeId)
virtual SMDSAbs_ElementType GetType() const
bool SetRangeStr(const TCollection_AsciiString &)
void GetRangeStr(TCollection_AsciiString &)
TColStd_MapOfInteger myIds
virtual double GetBadRate(double Value, int nbNodes) const
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
TSequenceOfXYZ(size_type n, const gp_XYZ &t)
TSequenceOfXYZ(size_type n)
TSequenceOfXYZ & operator=(const TSequenceOfXYZ &theSequenceOfXYZ)
TSequenceOfXYZ(const TSequenceOfXYZ &theSequenceOfXYZ)
TSequenceOfXYZ(InputIterator theBegin, InputIterator theEnd)
void reserve(size_type n)
std::vector< gp_XYZ > myArray
void push_back(const gp_XYZ &v)
gp_XYZ & operator()(size_type n)
std::vector< gp_XYZ >::size_type size_type
const gp_XYZ & operator()(size_type n) const
virtual double GetBadRate(double Value, int nbNodes) const
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
virtual SMDSAbs_ElementType GetType() const
virtual double GetValue(long theElementId)
virtual double GetBadRate(double Value, int nbNodes) const
double ComputeA(const gp_XYZ &, const gp_XYZ &, const gp_XYZ &, const gp_XYZ &) const
virtual SMDSAbs_ElementType GetType() const
virtual double GetBadRate(double Value, int nbNodes) const
virtual double GetValue(const TSequenceOfXYZ &thePoints)
boost::shared_ptr< FreeEdges > FreeEdgesPtr
boost::shared_ptr< ElementsOnSurface > ElementsOnSurfacePtr
boost::shared_ptr< ElemGeomType > ElemGeomTypePtr
boost::shared_ptr< EqualTo > EqualToPtr
boost::shared_ptr< LogicalBinary > LogicalBinaryPtr
boost::shared_ptr< Length2D > Length2DPtr
boost::shared_ptr< NumericalFunctor > NumericalFunctorPtr
boost::shared_ptr< LinearOrQuadratic > LinearOrQuadraticPtr
boost::shared_ptr< Comparator > ComparatorPtr
boost::shared_ptr< MultiConnection2D > MultiConnection2DPtr
boost::shared_ptr< LogicalNOT > LogicalNOTPtr
boost::shared_ptr< ManifoldPart > ManifoldPartPtr
boost::shared_ptr< Predicate > PredicatePtr
boost::shared_ptr< GroupColor > GroupColorPtr
boost::shared_ptr< ElementsOnShape > ElementsOnShapePtr
boost::shared_ptr< RangeOfIds > RangeOfIdsPtr
bool operator<(const Border &x) const
Border(long theElemId, long thePntId1, long thePntId2)
Value(double theLength, long thePntId1, long thePntId2)
bool operator<(const Value &x) const
Value(long thePntId1, long thePntId2)
bool operator<(const Value &x) const