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
82 template <
class InputIterator>
87 reference operator()(size_type n);
89 const_reference operator()(size_type n)
const;
92 reference operator[](size_type n);
94 const_reference operator[](size_type n)
const;
105 virtual void SetMesh(
const SMDS_Mesh* theMesh ) = 0;
116 virtual void SetMesh(
const SMDS_Mesh* theMesh );
117 virtual double GetValue(
long theElementId );
120 virtual double GetBadRate(
double Value,
int nbNodes )
const = 0;
121 long GetPrecision()
const;
122 void SetPrecision(
const long thePrecision );
124 bool GetPoints(
const int theId,
141 virtual double GetValue(
long theElementId );
143 virtual double GetBadRate(
double Value,
int nbNodes )
const;
155 virtual double GetBadRate(
double Value,
int nbNodes )
const;
167 virtual double GetBadRate(
double Value,
int nbNodes )
const;
179 virtual double GetBadRate(
double Value,
int nbNodes )
const;
191 virtual double GetBadRate(
double Value,
int nbNodes )
const;
206 virtual double GetBadRate(
double Value,
int nbNodes )
const;
218 virtual double GetBadRate(
double Value,
int nbNodes )
const;
230 virtual double GetBadRate(
double Value,
int nbNodes )
const;
242 virtual double GetBadRate(
double Value,
int nbNodes )
const;
252 virtual double GetValue(
long theElementId );
253 virtual double GetBadRate(
double Value,
int nbNodes )
const;
258 Value(
double theLength,
long thePntId1,
long thePntId2);
259 bool operator<(
const Value& x)
const;
262 void GetValues(
TValues& theValues);
272 virtual double GetValue(
long theElementId );
274 virtual double GetBadRate(
double Value,
int nbNodes )
const;
284 virtual double GetValue(
long theElementId );
286 virtual double GetBadRate(
double Value,
int nbNodes )
const;
290 Value(
long thePntId1,
long thePntId2);
291 bool operator<(
const Value& x)
const;
295 void GetValues(
MValues& theValues);
307 virtual bool IsSatisfy(
long theElementId ) = 0;
319 virtual void SetMesh(
const SMDS_Mesh* theMesh );
320 virtual bool IsSatisfy(
long theElementId );
335 virtual void SetMesh(
const SMDS_Mesh* theMesh );
336 virtual bool IsSatisfy(
long theElementId );
351 virtual void SetMesh(
const SMDS_Mesh* theMesh );
352 virtual bool IsSatisfy(
long theElementId );
354 static bool IsFreeEdge(
const SMDS_MeshNode** theNodes,
const int theFaceId );
359 Border(
long theElemId,
long thePntId1,
long thePntId2);
360 bool operator<(
const Border& x)
const;
363 void GetBoreders(
TBorders& theBorders);
378 virtual void SetMesh(
const SMDS_Mesh* theMesh );
379 virtual bool IsSatisfy(
long theNodeId );
399 virtual void SetMesh(
const SMDS_Mesh* theMesh );
400 virtual bool IsSatisfy(
long theNodeId );
404 bool AddToRange(
long theEntityId );
405 void GetRangeStr( TCollection_AsciiString& );
406 bool SetRangeStr(
const TCollection_AsciiString& );
429 virtual void SetMesh(
const SMDS_Mesh* theMesh );
430 virtual void SetMargin(
double theValue);
432 virtual bool IsSatisfy(
long theElementId ) = 0;
449 virtual bool IsSatisfy(
long theElementId );
459 virtual bool IsSatisfy(
long theElementId );
470 virtual bool IsSatisfy(
long theElementId );
471 virtual void SetTolerance(
double theTol );
472 virtual double GetTolerance();
488 virtual bool IsSatisfy(
long theElementId );
489 virtual void SetMesh(
const SMDS_Mesh* theMesh );
507 virtual void SetMesh(
const SMDS_Mesh* theMesh );
525 virtual bool IsSatisfy(
long theElementId );
535 virtual bool IsSatisfy(
long theElementId );
572 virtual void SetMesh(
const SMDS_Mesh* theMesh );
574 virtual bool IsSatisfy(
long theElementId );
577 void SetAngleTolerance(
const double theAngToler );
578 double GetAngleTolerance()
const;
579 void SetIsOnlyManifold(
const bool theIsOnly );
580 void SetStartElem(
const long theStartElemId );
587 TColStd_MapOfInteger& theResFaces );
590 void expandBoundary(
TMapOfLink& theMapOfBoundary,
596 void getFacesByLink(
const Link& theLink,
622 virtual void SetMesh(
const SMDS_Mesh* theMesh );
623 virtual bool IsSatisfy(
long theElementId );
626 void SetTolerance(
const double theToler );
627 double GetTolerance()
const;
630 void SetUseBoundaries(
bool theUse );
663 virtual void SetMesh (
const SMDS_Mesh* theMesh);
664 virtual bool IsSatisfy (
long theElementId);
667 void SetTolerance (
const double theToler);
668 double GetTolerance()
const;
669 void SetAllNodes (
bool theAllNodes);
706 virtual void SetMesh(
const SMDS_Mesh* theMesh );
707 virtual bool IsSatisfy(
long theElementId );
721 virtual void SetMesh(
const SMDS_Mesh* theMesh );
722 virtual bool IsSatisfy(
long theElementId );
739 virtual void SetMesh(
const SMDS_Mesh* theMesh );
740 virtual bool IsSatisfy(
long theElementId );
743 void SetColorStr(
const TCollection_AsciiString& );
744 void GetColorStr( TCollection_AsciiString& )
const;
762 virtual void SetMesh(
const SMDS_Mesh* theMesh );
763 virtual bool IsSatisfy(
long theElementId );
TColStd_SequenceOfInteger myMin
PredicatePtr myPredicate2
TColStd_MapOfInteger myMapBadGeomIds
std::vector< SMDS_MeshFace * > TVectorOfFacePtr
virtual double GetValue(const TSequenceOfXYZ &thePoints)
std::vector< ManifoldPart::Link > TVectorOfLink
SMDSAbs_ElementType myType
boost::shared_ptr< EqualTo > EqualToPtr
SMDSAbs_ElementType myType
const SMDS_MeshElement * myCurrElement
boost::shared_ptr< ManifoldPart > ManifoldPartPtr
std::set< ManifoldPart::Link > TMapOfLink
boost::shared_ptr< NumericalFunctor > NumericalFunctorPtr
TColStd_MapOfInteger myMapIds
boost::shared_ptr< Comparator > ComparatorPtr
GeomAPI_ProjectPointOnCurve myCurProjEdge
PredicatePtr myPredicate1
SMDSAbs_ElementType myType
boost::shared_ptr< MultiConnection2D > MultiConnection2DPtr
BRepClass3d_SolidClassifier myCurSC
std::map< SMDS_MeshFace *, int > TDataMapFacePtrInt
GeomAPI_ProjectPointOnSurf myProjector
SMDSAbs_ElementType myType
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
std::vector< long > TIdSequence
std::map< Value, int > MValues
std::map< ManifoldPart::Link, SMDS_MeshFace * > TDataMapOfLinkFacePtr
std::set< Border > TBorders
TColStd_SequenceOfInteger myMax
boost::shared_ptr< ElemGeomType > ElemGeomTypePtr
boost::shared_ptr< LinearOrQuadratic > LinearOrQuadraticPtr
SMDSAbs_ElementType myType
TopTools_MapOfShape myShapesMap
boost::shared_ptr< FreeEdges > FreeEdgesPtr
boost::shared_ptr< LogicalBinary > LogicalBinaryPtr
TColStd_MapOfInteger myIds
bool GetUseBoundaries() const
boost::shared_ptr< Length2D > Length2DPtr
Standard_Boolean IsEqual(SMDS_MeshElementPtr theOne, SMDS_MeshElementPtr theTwo)
boost::shared_ptr< RangeOfIds > RangeOfIdsPtr
boost::shared_ptr< Predicate > PredicatePtr
boost::shared_ptr< LogicalNOT > LogicalNOTPtr
SMDSAbs_ElementType myType
TColStd_MapOfInteger myIds
TVectorOfFacePtr myAllFacePtr
SMDSAbs_GeometryType myGeomType
NumericalFunctorPtr myFunctor
TColStd_MapOfInteger myIds
TopAbs_ShapeEnum myCurShapeType
GeomAPI_ProjectPointOnSurf myCurProjFace
boost::shared_ptr< ElementsOnShape > ElementsOnShapePtr
std::set< Value > TValues
TDataMapFacePtrInt myAllFacePtrIntDMap
#define SMESHCONTROLS_EXPORT
boost::shared_ptr< GroupColor > GroupColorPtr
boost::shared_ptr< ElementsOnSurface > ElementsOnSurfacePtr