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>
91 gp_XYZ& operator()(size_type n);
93 const gp_XYZ& operator()(size_type n)
const;
97 void reserve(size_type n);
99 void push_back(
const gp_XYZ& v);
101 size_type size()
const;
115 virtual void SetMesh(
const SMDS_Mesh* theMesh ) = 0;
126 virtual void SetMesh(
const SMDS_Mesh* theMesh );
127 virtual double GetValue(
long theElementId );
130 virtual double GetBadRate(
double Value,
int nbNodes )
const = 0;
131 long GetPrecision()
const;
132 void SetPrecision(
const long thePrecision );
134 bool GetPoints(
const int theId,
151 virtual double GetValue(
long theElementId );
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;
262 virtual double GetValue(
long theElementId );
263 virtual double GetBadRate(
double Value,
int nbNodes )
const;
268 Value(
double theLength,
long thePntId1,
long thePntId2);
269 bool operator<(
const Value& x)
const;
272 void GetValues(TValues& theValues);
282 virtual double GetValue(
long theElementId );
284 virtual double GetBadRate(
double Value,
int nbNodes )
const;
294 virtual double GetValue(
long theElementId );
296 virtual double GetBadRate(
double Value,
int nbNodes )
const;
300 Value(
long thePntId1,
long thePntId2);
301 bool operator<(
const Value& x)
const;
305 void GetValues(MValues& theValues);
317 virtual bool IsSatisfy(
long theElementId ) = 0;
329 virtual void SetMesh(
const SMDS_Mesh* theMesh );
330 virtual bool IsSatisfy(
long theElementId );
345 virtual void SetMesh(
const SMDS_Mesh* theMesh );
346 virtual bool IsSatisfy(
long theElementId );
361 virtual void SetMesh(
const SMDS_Mesh* theMesh );
362 virtual bool IsSatisfy(
long theElementId );
364 static bool IsFreeEdge(
const SMDS_MeshNode** theNodes,
const int theFaceId );
369 Border(
long theElemId,
long thePntId1,
long thePntId2);
370 bool operator<(
const Border& x)
const;
373 void GetBoreders(TBorders& theBorders);
388 virtual void SetMesh(
const SMDS_Mesh* theMesh );
389 virtual bool IsSatisfy(
long theNodeId );
409 virtual void SetMesh(
const SMDS_Mesh* theMesh );
410 virtual bool IsSatisfy(
long theNodeId );
414 bool AddToRange(
long theEntityId );
415 void GetRangeStr( TCollection_AsciiString& );
416 bool SetRangeStr(
const TCollection_AsciiString& );
439 virtual void SetMesh(
const SMDS_Mesh* theMesh );
440 virtual void SetMargin(
double theValue);
442 virtual bool IsSatisfy(
long theElementId ) = 0;
459 virtual bool IsSatisfy(
long theElementId );
469 virtual bool IsSatisfy(
long theElementId );
480 virtual bool IsSatisfy(
long theElementId );
481 virtual void SetTolerance(
double theTol );
482 virtual double GetTolerance();
498 virtual bool IsSatisfy(
long theElementId );
499 virtual void SetMesh(
const SMDS_Mesh* theMesh );
517 virtual void SetMesh(
const SMDS_Mesh* theMesh );
535 virtual bool IsSatisfy(
long theElementId );
545 virtual bool IsSatisfy(
long theElementId );
582 virtual void SetMesh(
const SMDS_Mesh* theMesh );
584 virtual bool IsSatisfy(
long theElementId );
587 void SetAngleTolerance(
const double theAngToler );
588 double GetAngleTolerance()
const;
589 void SetIsOnlyManifold(
const bool theIsOnly );
590 void SetStartElem(
const long theStartElemId );
594 bool findConnected(
const TDataMapFacePtrInt& theAllFacePtrInt,
596 TMapOfLink& theNonManifold,
597 TColStd_MapOfInteger& theResFaces );
600 void expandBoundary( TMapOfLink& theMapOfBoundary,
601 TVectorOfLink& theSeqOfBoundary,
602 TDataMapOfLinkFacePtr& theDMapLinkFacePtr,
603 TMapOfLink& theNonManifold,
606 void getFacesByLink(
const Link& theLink,
607 TVectorOfFacePtr& theFaces )
const;
632 virtual void SetMesh(
const SMDS_Mesh* theMesh );
633 virtual bool IsSatisfy(
long theElementId );
636 void SetTolerance(
const double theToler );
637 double GetTolerance()
const;
638 void SetSurface(
const TopoDS_Shape& theShape,
640 void SetUseBoundaries(
bool theUse );
673 virtual void SetMesh (
const SMDS_Mesh* theMesh);
674 virtual bool IsSatisfy (
long theElementId);
677 void SetTolerance (
const double theToler);
678 double GetTolerance()
const;
679 void SetAllNodes (
bool theAllNodes);
681 void SetShape (
const TopoDS_Shape& theShape,
685 void addShape (
const TopoDS_Shape& theShape);
716 virtual void SetMesh(
const SMDS_Mesh* theMesh );
717 virtual bool IsSatisfy(
long theElementId );
731 virtual void SetMesh(
const SMDS_Mesh* theMesh );
732 virtual bool IsSatisfy(
long theElementId );
749 virtual void SetMesh(
const SMDS_Mesh* theMesh );
750 virtual bool IsSatisfy(
long theElementId );
753 void SetColorStr(
const TCollection_AsciiString& );
754 void GetColorStr( TCollection_AsciiString& )
const;
772 virtual void SetMesh(
const SMDS_Mesh* theMesh );
773 virtual bool IsSatisfy(
long theElementId );
800 TIdSequence& theSequence );
806 TIdSequence& theSequence );
TColStd_SequenceOfInteger myMin
PredicatePtr myPredicate2
TColStd_MapOfInteger myMapBadGeomIds
std::vector< SMDS_MeshFace * > TVectorOfFacePtr
bool GetUseBoundaries() const
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
std::vector< gp_XYZ > myArray
TColStd_SequenceOfInteger myMax
boost::shared_ptr< ElemGeomType > ElemGeomTypePtr
boost::shared_ptr< LinearOrQuadratic > LinearOrQuadraticPtr
SMDSAbs_ElementType myType
TopTools_MapOfShape myShapesMap
std::vector< gp_XYZ >::size_type size_type
boost::shared_ptr< FreeEdges > FreeEdgesPtr
boost::shared_ptr< LogicalBinary > LogicalBinaryPtr
TColStd_MapOfInteger myIds
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