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>
93 const gp_XYZ& operator()(
size_type n)
const;
99 void push_back(
const gp_XYZ& v);
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 );
597 TColStd_MapOfInteger& theResFaces );
600 void expandBoundary(
TMapOfLink& theMapOfBoundary,
606 void getFacesByLink(
const Link& theLink,
632 virtual void SetMesh(
const SMDS_Mesh* theMesh );
633 virtual bool IsSatisfy(
long theElementId );
636 void SetTolerance(
const double theToler );
637 double GetTolerance()
const;
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);
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 );