28 #ifndef _SMESH_FILTER_I_HXX_
29 #define _SMESH_FILTER_I_HXX_
33 #include <SALOMEconfig.h>
34 #include CORBA_SERVER_HEADER(SMESH_Filter)
36 #include <LDOM_Document.hxx>
37 #include <TopoDS_Shape.hxx>
39 #include "SALOME_GenericObj_i.hh"
79 public virtual SALOME::GenericObj_i
82 virtual void SetMesh( SMESH_Mesh_ptr theMesh );
101 CORBA::Double GetValue( SMESH::smIdType theElementId );
102 CORBA::Boolean
IsApplicable( SMESH::smIdType theElementId );
104 CORBA::Boolean isLogarithmic);
106 CORBA::Boolean isLogarithmic,
107 SMESH::SMESH_IDSource_ptr
object);
108 void SetPrecision( CORBA::Long thePrecision );
109 CORBA::Long GetPrecision();
379 CORBA::Boolean IsSatisfy( CORBA::Long theElementId );
380 CORBA::Long NbSatisfying( SMESH::SMESH_IDSource_ptr obj );
462 void SetGroup( SMESH::SMESH_GroupBase_ptr theGroup );
463 void SetGroupID(
const char* theID );
464 SMESH::SMESH_GroupBase_ptr GetGroup();
466 std::string GetGroupID();
482 void SetGeom( GEOM::GEOM_Object_ptr theGeom );
486 void SetGeom(
const TopoDS_Shape& theShape );
488 void SetShapeName(
const char* theName );
489 void SetShape(
const char* theID,
const char* theName );
490 char* GetShapeName();
493 void SetTolerance( CORBA::Double );
494 CORBA::Double GetTolerance();
513 void SetSurface( GEOM::GEOM_Object_ptr theGeom,
ElementType theType );
515 void SetShapeName(
const char* theName,
ElementType theType );
516 void SetShape(
const char* theID,
const char* theName,
ElementType theType );
517 char* GetShapeName();
520 void SetTolerance( CORBA::Double );
521 CORBA::Double GetTolerance();
523 void SetUseBoundaries( CORBA::Boolean theUseBndRestrictions );
524 CORBA::Boolean GetUseBoundaries();
542 void SetPlane( GEOM::GEOM_Object_ptr theGeom,
ElementType theType );
555 void SetCylinder( GEOM::GEOM_Object_ptr theGeom,
ElementType theType );
583 void SetGeom( GEOM::GEOM_Object_ptr theGeom );
587 void SetGeom(
const TopoDS_Shape& theShape );
589 void SetShapeName(
const char* theName );
590 void SetShape(
const char* theID,
const char* theName );
591 char* GetShapeName();
594 void SetTolerance( CORBA::Double );
595 CORBA::Double GetTolerance();
669 void SetTolerance(
double );
670 double GetTolerance();
720 CORBA::Boolean SetRangeStr(
const char* theRange );
758 void SetColorStr(
const char* theColor );
796 void SetEntityType(
EntityType theEntityType );
814 void SetFace ( CORBA::Long theFaceID );
815 void SetTolerance( CORBA::Double theToler );
816 char* GetFaceAsString ()
const;
817 CORBA::Long GetFace ()
const;
818 CORBA::Double GetTolerance ()
const;
836 void SetPoint( CORBA::Double x, CORBA::Double y, CORBA::Double z );
837 void SetVertex( GEOM::GEOM_Object_ptr vertex );
838 void SetNode ( SMESH::smIdType nodeID );
839 void SetThreshold (
const char* threshold,
858 virtual void SetMargin( CORBA::Double );
859 virtual void SetNumFunctor( NumericalFunctor_ptr );
863 CORBA::Double GetMargin();
908 virtual void SetTolerance( CORBA::Double );
909 CORBA::Double GetTolerance();
928 virtual void SetPredicate( Predicate_ptr );
947 virtual void SetMesh( SMESH_Mesh_ptr theMesh );
948 virtual void SetPredicate1( Predicate_ptr );
949 virtual void SetPredicate2( Predicate_ptr );
994 public virtual SALOME::GenericObj_i,
1003 SetPredicate( Predicate_ptr );
1007 SetMesh( SMESH_Mesh_ptr );
1022 GetElementsId( SMESH_Mesh_ptr );
1034 GetCriteria( SMESH::Filter::Criteria_out theCriteria );
1046 void FindBaseObjects();
1059 virtual SMESH::SMESH_Mesh_ptr GetMesh();
1061 virtual SALOMEDS::TMPFile* GetVtkUgStream();
1076 public virtual SALOME::GenericObj_i
1083 Filter_ptr Copy(
const char* theFilterName );
1085 CORBA::Boolean
Add (
const char* theFilterName, Filter_ptr theFilter );
1086 CORBA::Boolean AddEmpty(
const char* theFilterName,
ElementType theType );
1087 CORBA::Boolean Delete (
const char* theFilterName );
1088 CORBA::Boolean Replace (
const char* theFilterName,
1089 const char* theNewName,
1090 Filter_ptr theFilter );
1092 CORBA::Boolean Save();
1093 CORBA::Boolean SaveAs(
const char* aFileName );
1095 CORBA::Boolean IsPresent(
const char* aFilterName );
1099 void SetFileName(
const char* theFileName );
1100 char* GetFileName();
1114 public virtual SALOME::GenericObj_i
1120 MinimumAngle_ptr CreateMinimumAngle();
1121 AspectRatio_ptr CreateAspectRatio();
1122 AspectRatio3D_ptr CreateAspectRatio3D();
1123 Warping_ptr CreateWarping();
1124 Taper_ptr CreateTaper();
1125 Skew_ptr CreateSkew();
1126 Area_ptr CreateArea();
1127 Volume3D_ptr CreateVolume3D();
1128 ScaledJacobian_ptr CreateScaledJacobian();
1129 MaxElementLength2D_ptr CreateMaxElementLength2D();
1130 MaxElementLength3D_ptr CreateMaxElementLength3D();
1131 Length_ptr CreateLength();
1132 Length2D_ptr CreateLength2D();
1133 Length3D_ptr CreateLength3D();
1134 Deflection2D_ptr CreateDeflection2D();
1135 NodeConnectivityNumber_ptr CreateNodeConnectivityNumber();
1136 MultiConnection_ptr CreateMultiConnection();
1137 MultiConnection2D_ptr CreateMultiConnection2D();
1138 BallDiameter_ptr CreateBallDiameter();
1140 BelongToMeshGroup_ptr CreateBelongToMeshGroup();
1141 BelongToGeom_ptr CreateBelongToGeom();
1142 BelongToPlane_ptr CreateBelongToPlane();
1143 BelongToCylinder_ptr CreateBelongToCylinder();
1144 BelongToGenSurface_ptr CreateBelongToGenSurface();
1146 LyingOnGeom_ptr CreateLyingOnGeom();
1148 FreeBorders_ptr CreateFreeBorders();
1149 FreeEdges_ptr CreateFreeEdges();
1150 FreeNodes_ptr CreateFreeNodes();
1151 FreeFaces_ptr CreateFreeFaces();
1153 EqualNodes_ptr CreateEqualNodes();
1154 EqualEdges_ptr CreateEqualEdges();
1155 EqualFaces_ptr CreateEqualFaces();
1156 EqualVolumes_ptr CreateEqualVolumes();
1158 RangeOfIds_ptr CreateRangeOfIds();
1159 BadOrientedVolume_ptr CreateBadOrientedVolume();
1160 BareBorderFace_ptr CreateBareBorderFace();
1161 BareBorderVolume_ptr CreateBareBorderVolume();
1162 OverConstrainedFace_ptr CreateOverConstrainedFace();
1163 OverConstrainedVolume_ptr CreateOverConstrainedVolume();
1164 LinearOrQuadratic_ptr CreateLinearOrQuadratic();
1165 GroupColor_ptr CreateGroupColor();
1166 ElemGeomType_ptr CreateElemGeomType();
1167 ElemEntityType_ptr CreateElemEntityType();
1168 CoplanarFaces_ptr CreateCoplanarFaces();
1169 ConnectedElements_ptr CreateConnectedElements();
1171 LessThan_ptr CreateLessThan();
1172 MoreThan_ptr CreateMoreThan();
1173 EqualTo_ptr CreateEqualTo();
1175 LogicalNOT_ptr CreateLogicalNOT();
1176 LogicalAND_ptr CreateLogicalAND();
1177 LogicalOR_ptr CreateLogicalOR();
1179 Filter_ptr CreateFilter();
1181 FilterLibrary_ptr LoadLibrary(
const char* aFileName );
1182 FilterLibrary_ptr CreateLibrary();
1183 CORBA::Boolean DeleteLibrary(
const char* aFileName );
#define SMESH_I_EXPORT
Definition: SMESH.hxx:39
static double Area(const gp_XY &xy0, const gp_XY &xy1, const gp_XY &xy2)
Compute triangle area.
Definition: SMESH_Triangulate.cxx:294
Definition: SMDS_Mesh.hxx:53
Definition: SMESH_Filter_i.hxx:201
Definition: SMESH_Filter_i.hxx:149
Definition: SMESH_Filter_i.hxx:136
Definition: SMESH_Filter_i.hxx:395
Definition: SMESH_Filter_i.hxx:337
Definition: SMESH_Filter_i.hxx:419
Definition: SMESH_Filter_i.hxx:407
Definition: SMESH_Filter_i.hxx:552
Definition: SMESH_Filter_i.hxx:565
FunctorType GetFunctorType()
Definition: SMESH_Filter_i.cxx:1178
void SetSurface(GEOM::GEOM_Object_ptr theGeom, ElementType theType)
Definition: SMESH_Filter_i.cxx:1166
BelongToGenSurface_i()
Definition: SMESH_Filter_i.cxx:1161
Definition: SMESH_Filter_i.hxx:477
char * myShapeID
Definition: SMESH_Filter_i.hxx:499
char * myShapeName
Definition: SMESH_Filter_i.hxx:498
Controls::BelongToGeomPtr myBelongToGeomPtr
Definition: SMESH_Filter_i.hxx:497
Definition: SMESH_Filter_i.hxx:455
SMESH::SMESH_GroupBase_var myGroup
Definition: SMESH_Filter_i.hxx:457
Controls::BelongToMeshGroupPtr myBelongToMeshGroup
Definition: SMESH_Filter_i.hxx:458
std::string myID
Definition: SMESH_Filter_i.hxx:456
Definition: SMESH_Filter_i.hxx:539
Definition: SMESH_Filter_i.hxx:508
Controls::ElementsOnSurfacePtr myElementsOnSurfacePtr
Definition: SMESH_Filter_i.hxx:527
char * myShapeName
Definition: SMESH_Filter_i.hxx:528
char * myShapeID
Definition: SMESH_Filter_i.hxx:529
Handle(Standard_Type) mySurfaceType
Definition: SMESH_Filter_i.hxx:854
Controls::ComparatorPtr myComparatorPtr
Definition: SMESH_Filter_i.hxx:868
NumericalFunctor_i * myNumericalFunctor
Definition: SMESH_Filter_i.hxx:869
Definition: SMESH_Filter_i.hxx:830
std::string myVertexID
Definition: SMESH_Filter_i.hxx:845
Controls::ConnectedElementsPtr myConnectedElementsPtr
Definition: SMESH_Filter_i.hxx:844
Definition: SMESH_ControlsDef.hxx:1209
std::vector< long > TIdSequence
Definition: SMESH_ControlsDef.hxx:1215
Definition: SMESH_Filter_i.hxx:809
Controls::CoplanarFacesPtr myCoplanarFacesPtr
Definition: SMESH_Filter_i.hxx:820
Definition: SMESH_Filter_i.hxx:297
Definition: SMESH_Filter_i.hxx:790
Controls::ElemEntityTypePtr myElemEntityTypePtr
Definition: SMESH_Filter_i.hxx:800
Definition: SMESH_Filter_i.hxx:771
Controls::ElemGeomTypePtr myElemGeomTypePtr
Definition: SMESH_Filter_i.hxx:781
Definition: SMESH_Filter_i.hxx:681
Definition: SMESH_Filter_i.hxx:692
Definition: SMESH_Filter_i.hxx:665
Controls::CoincidentNodesPtr myCoincidentNodesPtr
Definition: SMESH_Filter_i.hxx:673
Definition: SMESH_Filter_i.hxx:905
Controls::EqualToPtr myEqualToPtr
Definition: SMESH_Filter_i.hxx:913
Definition: SMESH_Filter_i.hxx:703
Definition: SMESH_Filter_i.hxx:1077
FilterManager_var myFilterMgr
Definition: SMESH_Filter_i.hxx:1105
LDOM_Document myDoc
Definition: SMESH_Filter_i.hxx:1104
char * myFileName
Definition: SMESH_Filter_i.hxx:1103
Definition: SMESH_Filter_i.hxx:1115
Definition: SMESH_Filter_i.hxx:996
Controls::Filter myFilter
Definition: SMESH_Filter_i.hxx:1064
std::vector< SMESH_GroupBase_i * > myBaseGroups
Definition: SMESH_Filter_i.hxx:1068
Predicate_i * myPredicate
Definition: SMESH_Filter_i.hxx:1065
SMESH_Mesh_var myMesh
Definition: SMESH_Filter_i.hxx:1066
virtual bool IsMeshInfoCorrect()
Definition: SMESH_Filter_i.hxx:1060
Definition: SMESH_Filter_i.hxx:609
Definition: SMESH_Filter_i.hxx:622
Controls::FreeEdgesPtr myFreeEdgesPtr
Definition: SMESH_Filter_i.hxx:629
Definition: SMESH_Filter_i.hxx:639
Definition: SMESH_Filter_i.hxx:652
Definition: SMESH_Filter_i.hxx:80
Controls::FunctorPtr GetFunctor()
Definition: SMESH_Filter_i.hxx:83
Controls::FunctorPtr myFunctorPtr
Definition: SMESH_Filter_i.hxx:90
Definition: SMESH_Filter_i.hxx:752
Controls::GroupColorPtr myGroupColorPtr
Definition: SMESH_Filter_i.hxx:762
Definition: SMESH_Filter_i.hxx:265
Controls::Length2DPtr myLength2DPtr
Definition: SMESH_Filter_i.hxx:272
Definition: SMESH_Filter_i.hxx:281
Controls::Length3DPtr myLength3DPtr
Definition: SMESH_Filter_i.hxx:288
Definition: SMESH_Filter_i.hxx:253
Definition: SMESH_Filter_i.hxx:879
Definition: SMESH_Filter_i.hxx:736
Controls::LinearOrQuadraticPtr myLinearOrQuadraticPtr
Definition: SMESH_Filter_i.hxx:743
Definition: SMESH_Filter_i.hxx:970
Definition: SMESH_Filter_i.hxx:944
Predicate_i * myPredicate2
Definition: SMESH_Filter_i.hxx:960
Controls::LogicalBinaryPtr myLogicalBinaryPtr
Definition: SMESH_Filter_i.hxx:958
Predicate_i * myPredicate1
Definition: SMESH_Filter_i.hxx:959
Definition: SMESH_Filter_i.hxx:923
Controls::LogicalNOTPtr myLogicalNOTPtr
Definition: SMESH_Filter_i.hxx:933
Predicate_i * myPredicate
Definition: SMESH_Filter_i.hxx:934
Definition: SMESH_Filter_i.hxx:983
Definition: SMESH_Filter_i.hxx:578
char * myShapeName
Definition: SMESH_Filter_i.hxx:599
char * myShapeID
Definition: SMESH_Filter_i.hxx:600
Controls::LyingOnGeomPtr myLyingOnGeomPtr
Definition: SMESH_Filter_i.hxx:598
Definition: SMESH_Filter_i.hxx:227
Definition: SMESH_Filter_i.hxx:240
Definition: SMESH_Filter_i.hxx:123
Definition: SMESH_Filter_i.hxx:892
Definition: SMESH_Filter_i.hxx:321
Controls::MultiConnection2DPtr myMulticonnection2DPtr
Definition: SMESH_Filter_i.hxx:328
Definition: SMESH_Filter_i.hxx:309
Definition: SMESH_Filter_i.hxx:349
Definition: SMESH_Filter_i.hxx:99
Controls::NumericalFunctorPtr myNumericalFunctorPtr
Definition: SMESH_Filter_i.hxx:113
Definition: SMESH_Filter_i.hxx:443
Definition: SMESH_Filter_i.hxx:431
Definition: SMESH_Filter_i.hxx:377
Controls::PredicatePtr myPredicatePtr
Definition: SMESH_Filter_i.hxx:384
Definition: SMESH_Filter_i.hxx:716
Controls::RangeOfIdsPtr myRangeOfIdsPtr
Definition: SMESH_Filter_i.hxx:727
Definition: SMESH_Filter_i.hxx:361
Definition: SMESH_Filter_i.hxx:188
Definition: SMESH_Filter_i.hxx:175
Definition: SMESH_Filter_i.hxx:214
Definition: SMESH_Filter_i.hxx:162
Definition: SMESH_Group_i.hxx:53
ThresholdType
Definition: SMESH_Filter.idl:476
sequence< Criterion > Criteria
Definition: SMESH_Filter.idl:526
sequence< Border > Borders
Definition: SMESH_Filter.idl:358
sequence< Value > Values
Definition: SMESH_Filter.idl:155
sequence< Value > Values
Definition: SMESH_Filter.idl:169
ENUM Add(ENUM v, int delta)
Return incremented enum value.
Definition: SMESH_TypeDefs.hxx:137
boost::shared_ptr< FreeEdges > FreeEdgesPtr
Definition: SMESH_ControlsDef.hxx:622
boost::shared_ptr< ElementsOnSurface > ElementsOnSurfacePtr
Definition: SMESH_ControlsDef.hxx:934
boost::shared_ptr< ElemGeomType > ElemGeomTypePtr
Definition: SMESH_ControlsDef.hxx:1144
boost::shared_ptr< Length3D > Length3DPtr
Definition: SMESH_ControlsDef.hxx:335
boost::shared_ptr< EqualTo > EqualToPtr
Definition: SMESH_ControlsDef.hxx:736
boost::shared_ptr< LogicalBinary > LogicalBinaryPtr
Definition: SMESH_ControlsDef.hxx:776
boost::shared_ptr< Length2D > Length2DPtr
Definition: SMESH_ControlsDef.hxx:325
boost::shared_ptr< NumericalFunctor > NumericalFunctorPtr
Definition: SMESH_Controls.hxx:63
boost::shared_ptr< CoplanarFaces > CoplanarFacesPtr
Definition: SMESH_ControlsDef.hxx:1170
boost::shared_ptr< LinearOrQuadratic > LinearOrQuadraticPtr
Definition: SMESH_ControlsDef.hxx:1098
boost::shared_ptr< CoincidentNodes > CoincidentNodesPtr
Definition: SMESH_ControlsDef.hxx:444
boost::shared_ptr< Comparator > ComparatorPtr
Definition: SMESH_ControlsDef.hxx:696
boost::shared_ptr< MultiConnection2D > MultiConnection2DPtr
Definition: SMESH_ControlsDef.hxx:384
boost::shared_ptr< ConnectedElements > ConnectedElementsPtr
Definition: SMESH_ControlsDef.hxx:1204
boost::shared_ptr< LogicalNOT > LogicalNOTPtr
Definition: SMESH_ControlsDef.hxx:756
boost::shared_ptr< Functor > FunctorPtr
Definition: SMESH_Controls.hxx:60
boost::shared_ptr< BelongToGeom > BelongToGeomPtr
Definition: SMESH_ControlsDef.hxx:1025
boost::shared_ptr< BelongToMeshGroup > BelongToMeshGroupPtr
Definition: SMESH_ControlsDef.hxx:896
boost::shared_ptr< ElemEntityType > ElemEntityTypePtr
Definition: SMESH_ControlsDef.hxx:529
boost::shared_ptr< Predicate > PredicatePtr
Definition: SMESH_Controls.hxx:76
boost::shared_ptr< GroupColor > GroupColorPtr
Definition: SMESH_ControlsDef.hxx:1122
boost::shared_ptr< LyingOnGeom > LyingOnGeomPtr
Definition: SMESH_ControlsDef.hxx:1063
boost::shared_ptr< RangeOfIds > RangeOfIdsPtr
Definition: SMESH_ControlsDef.hxx:674
Definition: SMESH_ControlsDef.hxx:64
Handle(VTKViewer_Filter) GetFilter(int theId
Predicate_i * GetPredicate(Predicate_ptr thePredicate)
Definition: SMESH_Filter_i.cxx:70
bool IsApplicable(const QString &aHypType, GEOM::GEOM_Object_ptr theGeomObject, const bool toCheckAll)
Definition: SMESHGUI_HypothesesUtils.cxx:617
sequence< ElementType > array_of_ElementType
Definition: SMESH_Mesh.idl:138
sequence< HistogramRectangle > Histogram
Definition: SMESH_Filter.idl:106
FunctorType StringToFunctorType(const char *str)
Converts a string to FunctorType.
Definition: SMESH_Filter_i.cxx:4242
EntityType
Enumeration of entity type used in mesh info array, it should be synchronised with enum SMDSAbs_Entit...
Definition: SMESH_Mesh.idl:174
const char * FunctorTypeToString(FunctorType ft)
Return a string corresponding to an item of enum FunctorType.
Definition: SMESH_Filter_i.cxx:4229
sequence< SMESH_IDSource > ListOfIDSources
Definition: SMESH_Mesh.idl:40
FunctorType
Enumeration of functor types.
Definition: SMESH_Filter.idl:42
sequence< smIdType > smIdType_array
Definition: SMESH_Mesh.idl:45
GeometryType
Enumeration for element geometry type, like SMDSAbs_GeometryType in SMDSAbs_ElementType....
Definition: SMESH_Mesh.idl:144
ElementType
Enumeration for element type, like in SMDS.
Definition: SMESH_Mesh.idl:128
sequence< string > string_array
Definition: SMESH_Mesh.idl:46
Object notified on change of base objects and notifying dependent objects in its turn.
Definition: SMESH_Filter_i.hxx:57
void AddModifWaiter(NotifyerAndWaiter *waiter)
Stores an object to be notified on change of predicate.
Definition: SMESH_Filter_i.cxx:4281
void Modified(bool removed=false, NotifyerAndWaiter *who=0)
calls OnBaseObjModified(), if who != this, and myWaiters[i]->Modified(who)
Definition: SMESH_Filter_i.cxx:4262
void RemoveModifWaiter(NotifyerAndWaiter *waiter)
Removes an object to be notified on change of predicate.
Definition: SMESH_Filter_i.cxx:4293
std::list< NotifyerAndWaiter * > myWaiters
Definition: SMESH_Filter_i.hxx:67
bool ContainModifWaiter(NotifyerAndWaiter *waiter)
Checks if a waiter is among myWaiters, maybe nested.
Definition: SMESH_Filter_i.cxx:4304
virtual void OnBaseObjModified(NotifyerAndWaiter *, bool)
Definition: SMESH_Filter_i.hxx:58