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();
392 CORBA::Boolean IsSatisfy( CORBA::Long theElementId );
393 CORBA::Long NbSatisfying( SMESH::SMESH_IDSource_ptr obj );
475 void SetGroup( SMESH::SMESH_GroupBase_ptr theGroup );
476 void SetGroupID(
const char* theID );
477 SMESH::SMESH_GroupBase_ptr GetGroup();
479 std::string GetGroupID();
495 void SetGeom( GEOM::GEOM_Object_ptr theGeom );
499 void SetGeom(
const TopoDS_Shape& theShape );
501 void SetShapeName(
const char* theName );
502 void SetShape(
const char* theID,
const char* theName );
503 char* GetShapeName();
506 void SetTolerance( CORBA::Double );
507 CORBA::Double GetTolerance();
526 void SetSurface( GEOM::GEOM_Object_ptr theGeom,
ElementType theType );
528 void SetShapeName(
const char* theName,
ElementType theType );
529 void SetShape(
const char* theID,
const char* theName,
ElementType theType );
530 char* GetShapeName();
533 void SetTolerance( CORBA::Double );
534 CORBA::Double GetTolerance();
536 void SetUseBoundaries( CORBA::Boolean theUseBndRestrictions );
537 CORBA::Boolean GetUseBoundaries();
555 void SetPlane( GEOM::GEOM_Object_ptr theGeom,
ElementType theType );
568 void SetCylinder( GEOM::GEOM_Object_ptr theGeom,
ElementType theType );
596 void SetGeom( GEOM::GEOM_Object_ptr theGeom );
600 void SetGeom(
const TopoDS_Shape& theShape );
602 void SetShapeName(
const char* theName );
603 void SetShape(
const char* theID,
const char* theName );
604 char* GetShapeName();
607 void SetTolerance( CORBA::Double );
608 CORBA::Double GetTolerance();
682 void SetTolerance(
double );
683 double GetTolerance();
733 CORBA::Boolean SetRangeStr(
const char* theRange );
771 void SetColorStr(
const char* theColor );
809 void SetEntityType(
EntityType theEntityType );
827 void SetFace ( CORBA::Long theFaceID );
828 void SetTolerance( CORBA::Double theToler );
829 char* GetFaceAsString ()
const;
830 CORBA::Long GetFace ()
const;
831 CORBA::Double GetTolerance ()
const;
849 void SetPoint( CORBA::Double x, CORBA::Double y, CORBA::Double z );
850 void SetVertex( GEOM::GEOM_Object_ptr vertex );
851 void SetNode ( SMESH::smIdType nodeID );
852 void SetThreshold (
const char* threshold,
871 virtual void SetMargin( CORBA::Double );
872 virtual void SetNumFunctor( NumericalFunctor_ptr );
876 CORBA::Double GetMargin();
921 virtual void SetTolerance( CORBA::Double );
922 CORBA::Double GetTolerance();
941 virtual void SetPredicate( Predicate_ptr );
960 virtual void SetMesh( SMESH_Mesh_ptr theMesh );
961 virtual void SetPredicate1( Predicate_ptr );
962 virtual void SetPredicate2( Predicate_ptr );
1007 public virtual SALOME::GenericObj_i,
1016 SetPredicate( Predicate_ptr );
1020 SetMesh( SMESH_Mesh_ptr );
1035 GetElementsId( SMESH_Mesh_ptr );
1047 GetCriteria( SMESH::Filter::Criteria_out theCriteria );
1059 void FindBaseObjects();
1072 virtual SMESH::SMESH_Mesh_ptr GetMesh();
1074 virtual SALOMEDS::TMPFile* GetVtkUgStream();
1089 public virtual SALOME::GenericObj_i
1096 Filter_ptr Copy(
const char* theFilterName );
1098 CORBA::Boolean
Add (
const char* theFilterName, Filter_ptr theFilter );
1099 CORBA::Boolean AddEmpty(
const char* theFilterName,
ElementType theType );
1100 CORBA::Boolean Delete (
const char* theFilterName );
1101 CORBA::Boolean Replace (
const char* theFilterName,
1102 const char* theNewName,
1103 Filter_ptr theFilter );
1105 CORBA::Boolean Save();
1106 CORBA::Boolean SaveAs(
const char* aFileName );
1108 CORBA::Boolean IsPresent(
const char* aFilterName );
1112 void SetFileName(
const char* theFileName );
1113 char* GetFileName();
1127 public virtual SALOME::GenericObj_i
1133 MinimumAngle_ptr CreateMinimumAngle();
1134 AspectRatio_ptr CreateAspectRatio();
1135 AspectRatio3D_ptr CreateAspectRatio3D();
1136 Warping_ptr CreateWarping();
1137 Warping3D_ptr CreateWarping3D();
1138 Taper_ptr CreateTaper();
1139 Skew_ptr CreateSkew();
1140 Area_ptr CreateArea();
1141 Volume3D_ptr CreateVolume3D();
1142 ScaledJacobian_ptr CreateScaledJacobian();
1143 MaxElementLength2D_ptr CreateMaxElementLength2D();
1144 MaxElementLength3D_ptr CreateMaxElementLength3D();
1145 Length_ptr CreateLength();
1146 Length2D_ptr CreateLength2D();
1147 Length3D_ptr CreateLength3D();
1148 Deflection2D_ptr CreateDeflection2D();
1149 NodeConnectivityNumber_ptr CreateNodeConnectivityNumber();
1150 MultiConnection_ptr CreateMultiConnection();
1151 MultiConnection2D_ptr CreateMultiConnection2D();
1152 BallDiameter_ptr CreateBallDiameter();
1154 BelongToMeshGroup_ptr CreateBelongToMeshGroup();
1155 BelongToGeom_ptr CreateBelongToGeom();
1156 BelongToPlane_ptr CreateBelongToPlane();
1157 BelongToCylinder_ptr CreateBelongToCylinder();
1158 BelongToGenSurface_ptr CreateBelongToGenSurface();
1160 LyingOnGeom_ptr CreateLyingOnGeom();
1162 FreeBorders_ptr CreateFreeBorders();
1163 FreeEdges_ptr CreateFreeEdges();
1164 FreeNodes_ptr CreateFreeNodes();
1165 FreeFaces_ptr CreateFreeFaces();
1167 EqualNodes_ptr CreateEqualNodes();
1168 EqualEdges_ptr CreateEqualEdges();
1169 EqualFaces_ptr CreateEqualFaces();
1170 EqualVolumes_ptr CreateEqualVolumes();
1172 RangeOfIds_ptr CreateRangeOfIds();
1173 BadOrientedVolume_ptr CreateBadOrientedVolume();
1174 BareBorderFace_ptr CreateBareBorderFace();
1175 BareBorderVolume_ptr CreateBareBorderVolume();
1176 OverConstrainedFace_ptr CreateOverConstrainedFace();
1177 OverConstrainedVolume_ptr CreateOverConstrainedVolume();
1178 LinearOrQuadratic_ptr CreateLinearOrQuadratic();
1179 GroupColor_ptr CreateGroupColor();
1180 ElemGeomType_ptr CreateElemGeomType();
1181 ElemEntityType_ptr CreateElemEntityType();
1182 CoplanarFaces_ptr CreateCoplanarFaces();
1183 ConnectedElements_ptr CreateConnectedElements();
1185 LessThan_ptr CreateLessThan();
1186 MoreThan_ptr CreateMoreThan();
1187 EqualTo_ptr CreateEqualTo();
1189 LogicalNOT_ptr CreateLogicalNOT();
1190 LogicalAND_ptr CreateLogicalAND();
1191 LogicalOR_ptr CreateLogicalOR();
1193 Filter_ptr CreateFilter();
1195 FilterLibrary_ptr LoadLibrary(
const char* aFileName );
1196 FilterLibrary_ptr CreateLibrary();
1197 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:214
Definition: SMESH_Filter_i.hxx:149
Definition: SMESH_Filter_i.hxx:136
Definition: SMESH_Filter_i.hxx:408
Definition: SMESH_Filter_i.hxx:350
Definition: SMESH_Filter_i.hxx:432
Definition: SMESH_Filter_i.hxx:420
Definition: SMESH_Filter_i.hxx:565
Definition: SMESH_Filter_i.hxx:578
FunctorType GetFunctorType()
Definition: SMESH_Filter_i.cxx:1192
void SetSurface(GEOM::GEOM_Object_ptr theGeom, ElementType theType)
Definition: SMESH_Filter_i.cxx:1180
BelongToGenSurface_i()
Definition: SMESH_Filter_i.cxx:1175
Definition: SMESH_Filter_i.hxx:490
char * myShapeID
Definition: SMESH_Filter_i.hxx:512
char * myShapeName
Definition: SMESH_Filter_i.hxx:511
Controls::BelongToGeomPtr myBelongToGeomPtr
Definition: SMESH_Filter_i.hxx:510
Definition: SMESH_Filter_i.hxx:468
SMESH::SMESH_GroupBase_var myGroup
Definition: SMESH_Filter_i.hxx:470
Controls::BelongToMeshGroupPtr myBelongToMeshGroup
Definition: SMESH_Filter_i.hxx:471
std::string myID
Definition: SMESH_Filter_i.hxx:469
Definition: SMESH_Filter_i.hxx:552
Definition: SMESH_Filter_i.hxx:521
Controls::ElementsOnSurfacePtr myElementsOnSurfacePtr
Definition: SMESH_Filter_i.hxx:540
char * myShapeName
Definition: SMESH_Filter_i.hxx:541
char * myShapeID
Definition: SMESH_Filter_i.hxx:542
Handle(Standard_Type) mySurfaceType
Definition: SMESH_Filter_i.hxx:867
Controls::ComparatorPtr myComparatorPtr
Definition: SMESH_Filter_i.hxx:881
NumericalFunctor_i * myNumericalFunctor
Definition: SMESH_Filter_i.hxx:882
Definition: SMESH_Filter_i.hxx:843
std::string myVertexID
Definition: SMESH_Filter_i.hxx:858
Controls::ConnectedElementsPtr myConnectedElementsPtr
Definition: SMESH_Filter_i.hxx:857
Definition: SMESH_ControlsDef.hxx:1235
std::vector< long > TIdSequence
Definition: SMESH_ControlsDef.hxx:1241
Definition: SMESH_Filter_i.hxx:822
Controls::CoplanarFacesPtr myCoplanarFacesPtr
Definition: SMESH_Filter_i.hxx:833
Definition: SMESH_Filter_i.hxx:310
Definition: SMESH_Filter_i.hxx:803
Controls::ElemEntityTypePtr myElemEntityTypePtr
Definition: SMESH_Filter_i.hxx:813
Definition: SMESH_Filter_i.hxx:784
Controls::ElemGeomTypePtr myElemGeomTypePtr
Definition: SMESH_Filter_i.hxx:794
Definition: SMESH_Filter_i.hxx:694
Definition: SMESH_Filter_i.hxx:705
Definition: SMESH_Filter_i.hxx:678
Controls::CoincidentNodesPtr myCoincidentNodesPtr
Definition: SMESH_Filter_i.hxx:686
Definition: SMESH_Filter_i.hxx:918
Controls::EqualToPtr myEqualToPtr
Definition: SMESH_Filter_i.hxx:926
Definition: SMESH_Filter_i.hxx:716
Definition: SMESH_Filter_i.hxx:1090
FilterManager_var myFilterMgr
Definition: SMESH_Filter_i.hxx:1118
LDOM_Document myDoc
Definition: SMESH_Filter_i.hxx:1117
char * myFileName
Definition: SMESH_Filter_i.hxx:1116
Definition: SMESH_Filter_i.hxx:1128
Definition: SMESH_Filter_i.hxx:1009
Controls::Filter myFilter
Definition: SMESH_Filter_i.hxx:1077
std::vector< SMESH_GroupBase_i * > myBaseGroups
Definition: SMESH_Filter_i.hxx:1081
Predicate_i * myPredicate
Definition: SMESH_Filter_i.hxx:1078
SMESH_Mesh_var myMesh
Definition: SMESH_Filter_i.hxx:1079
virtual bool IsMeshInfoCorrect()
Definition: SMESH_Filter_i.hxx:1073
Definition: SMESH_Filter_i.hxx:622
Definition: SMESH_Filter_i.hxx:635
Controls::FreeEdgesPtr myFreeEdgesPtr
Definition: SMESH_Filter_i.hxx:642
Definition: SMESH_Filter_i.hxx:652
Definition: SMESH_Filter_i.hxx:665
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:765
Controls::GroupColorPtr myGroupColorPtr
Definition: SMESH_Filter_i.hxx:775
Definition: SMESH_Filter_i.hxx:278
Controls::Length2DPtr myLength2DPtr
Definition: SMESH_Filter_i.hxx:285
Definition: SMESH_Filter_i.hxx:294
Controls::Length3DPtr myLength3DPtr
Definition: SMESH_Filter_i.hxx:301
Definition: SMESH_Filter_i.hxx:266
Definition: SMESH_Filter_i.hxx:892
Definition: SMESH_Filter_i.hxx:749
Controls::LinearOrQuadraticPtr myLinearOrQuadraticPtr
Definition: SMESH_Filter_i.hxx:756
Definition: SMESH_Filter_i.hxx:983
Definition: SMESH_Filter_i.hxx:957
Predicate_i * myPredicate2
Definition: SMESH_Filter_i.hxx:973
Controls::LogicalBinaryPtr myLogicalBinaryPtr
Definition: SMESH_Filter_i.hxx:971
Predicate_i * myPredicate1
Definition: SMESH_Filter_i.hxx:972
Definition: SMESH_Filter_i.hxx:936
Controls::LogicalNOTPtr myLogicalNOTPtr
Definition: SMESH_Filter_i.hxx:946
Predicate_i * myPredicate
Definition: SMESH_Filter_i.hxx:947
Definition: SMESH_Filter_i.hxx:996
Definition: SMESH_Filter_i.hxx:591
char * myShapeName
Definition: SMESH_Filter_i.hxx:612
char * myShapeID
Definition: SMESH_Filter_i.hxx:613
Controls::LyingOnGeomPtr myLyingOnGeomPtr
Definition: SMESH_Filter_i.hxx:611
Definition: SMESH_Filter_i.hxx:240
Definition: SMESH_Filter_i.hxx:253
Definition: SMESH_Filter_i.hxx:123
Definition: SMESH_Filter_i.hxx:905
Definition: SMESH_Filter_i.hxx:334
Controls::MultiConnection2DPtr myMulticonnection2DPtr
Definition: SMESH_Filter_i.hxx:341
Definition: SMESH_Filter_i.hxx:322
Definition: SMESH_Filter_i.hxx:362
Definition: SMESH_Filter_i.hxx:99
Controls::NumericalFunctorPtr myNumericalFunctorPtr
Definition: SMESH_Filter_i.hxx:113
Definition: SMESH_Filter_i.hxx:456
Definition: SMESH_Filter_i.hxx:444
Definition: SMESH_Filter_i.hxx:390
Controls::PredicatePtr myPredicatePtr
Definition: SMESH_Filter_i.hxx:397
Definition: SMESH_Filter_i.hxx:729
Controls::RangeOfIdsPtr myRangeOfIdsPtr
Definition: SMESH_Filter_i.hxx:740
Definition: SMESH_Filter_i.hxx:374
Definition: SMESH_Filter_i.hxx:201
Definition: SMESH_Filter_i.hxx:188
Definition: SMESH_Filter_i.hxx:227
Definition: SMESH_Filter_i.hxx:174
Definition: SMESH_Filter_i.hxx:162
Definition: SMESH_Group_i.hxx:53
ThresholdType
Definition: SMESH_Filter.idl:478
sequence< Criterion > Criteria
Definition: SMESH_Filter.idl:528
sequence< Border > Borders
Definition: SMESH_Filter.idl:360
sequence< Value > Values
Definition: SMESH_Filter.idl:157
sequence< Value > Values
Definition: SMESH_Filter.idl:171
ENUM Add(ENUM v, int delta)
Return incremented enum value.
Definition: SMESH_TypeDefs.hxx:140
boost::shared_ptr< FreeEdges > FreeEdgesPtr
Definition: SMESH_ControlsDef.hxx:649
boost::shared_ptr< ElementsOnSurface > ElementsOnSurfacePtr
Definition: SMESH_ControlsDef.hxx:961
boost::shared_ptr< ElemGeomType > ElemGeomTypePtr
Definition: SMESH_ControlsDef.hxx:1170
boost::shared_ptr< Length3D > Length3DPtr
Definition: SMESH_ControlsDef.hxx:362
boost::shared_ptr< EqualTo > EqualToPtr
Definition: SMESH_ControlsDef.hxx:763
boost::shared_ptr< LogicalBinary > LogicalBinaryPtr
Definition: SMESH_ControlsDef.hxx:803
boost::shared_ptr< Length2D > Length2DPtr
Definition: SMESH_ControlsDef.hxx:352
boost::shared_ptr< NumericalFunctor > NumericalFunctorPtr
Definition: SMESH_Controls.hxx:64
boost::shared_ptr< CoplanarFaces > CoplanarFacesPtr
Definition: SMESH_ControlsDef.hxx:1196
boost::shared_ptr< LinearOrQuadratic > LinearOrQuadraticPtr
Definition: SMESH_ControlsDef.hxx:1124
boost::shared_ptr< CoincidentNodes > CoincidentNodesPtr
Definition: SMESH_ControlsDef.hxx:471
boost::shared_ptr< Comparator > ComparatorPtr
Definition: SMESH_ControlsDef.hxx:723
boost::shared_ptr< MultiConnection2D > MultiConnection2DPtr
Definition: SMESH_ControlsDef.hxx:411
boost::shared_ptr< ConnectedElements > ConnectedElementsPtr
Definition: SMESH_ControlsDef.hxx:1230
boost::shared_ptr< LogicalNOT > LogicalNOTPtr
Definition: SMESH_ControlsDef.hxx:783
boost::shared_ptr< Functor > FunctorPtr
Definition: SMESH_Controls.hxx:60
boost::shared_ptr< BelongToGeom > BelongToGeomPtr
Definition: SMESH_ControlsDef.hxx:1051
boost::shared_ptr< BelongToMeshGroup > BelongToMeshGroupPtr
Definition: SMESH_ControlsDef.hxx:923
boost::shared_ptr< ElemEntityType > ElemEntityTypePtr
Definition: SMESH_ControlsDef.hxx:556
boost::shared_ptr< Predicate > PredicatePtr
Definition: SMESH_Controls.hxx:76
boost::shared_ptr< GroupColor > GroupColorPtr
Definition: SMESH_ControlsDef.hxx:1148
boost::shared_ptr< LyingOnGeom > LyingOnGeomPtr
Definition: SMESH_ControlsDef.hxx:1089
boost::shared_ptr< RangeOfIds > RangeOfIdsPtr
Definition: SMESH_ControlsDef.hxx:701
Definition: SMESH_ControlsClassifier.cxx:39
Handle(VTKViewer_Filter) GetFilter(int theId
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:107
FunctorType StringToFunctorType(const char *str)
Converts a string to FunctorType.
Definition: SMESH_Filter_i.cxx:4270
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:4257
sequence< SMESH_IDSource > ListOfIDSources
Definition: SMESH_Mesh.idl:41
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
Predicate_i * GetPredicate(Predicate_ptr thePredicate)
Definition: SMESH_Filter_i.cxx:70
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:4309
void Modified(bool removed=false, NotifyerAndWaiter *who=0)
calls OnBaseObjModified(), if who != this, and myWaiters[i]->Modified(who)
Definition: SMESH_Filter_i.cxx:4290
void RemoveModifWaiter(NotifyerAndWaiter *waiter)
Removes an object to be notified on change of predicate.
Definition: SMESH_Filter_i.cxx:4321
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:4332
virtual void OnBaseObjModified(NotifyerAndWaiter *, bool)
Definition: SMESH_Filter_i.hxx:58