- interface LogicalOR: LogicalBinary{};\r
- interface Filter: SALOME::GenericObj{\r
- void SetPredicate( in Predicate thePredicate );\r
- long_array GetElementsId( in SMESH_Mesh theMesh );\r
- };\r
-\r
- interface FilterManager: SALOME::GenericObj{\r
- MinimumAngle CreateMinimumAngle();\r
- AspectRatio CreateAspectRatio();\r
- Warping CreateWarping();\r
- Taper CreateTaper();\r
- Skew CreateSkew();\r
- Area CreateArea();\r
- Length CreateLength();\r
- MultiConnection CreateMultiConnection();\r
-\r
- FreeBorders CreateFreeBorders();\r
-\r
- LessThan CreateLessThan();\r
- MoreThan CreateMoreThan();\r
- EqualTo CreateEqualTo();\r
- \r
- LogicalNOT CreateLogicalNOT();\r
- LogicalAND CreateLogicalAND();\r
- LogicalOR CreateLogicalOR();\r
- Filter CreateFilter();\r
- };\r
- \r
+ interface LogicalOR : LogicalBinary{};\r
+\r
+ /*!\r
+ * Filter\r
+ */\r
+ interface Filter: SALOME::GenericObj\r
+ {\r
+ /*!\r
+ * Structure containing information about one criterion\r
+ * Type - FT_Taper, FT_Skew ...\r
+ * Compare - FT_LessThan, FT_MoreThan, FT_EqualTo\r
+ * Threshold - threshold value\r
+ * UnaryOp - unary logical operation: FT_LogicalNOT or FT_Undefined\r
+ * BinaryOp - binary logical operation FT_LogicalAND, FT_LogicalOR or\r
+ * (FT_Undefined must be for the last criterion)\r
+ * ThresholdStr - Threshold value defined as string. Used for:\r
+ * 1. Diaposon of identifiers. Example: "1,2,3,5-10,12,27-29"\r
+ * 2. BelongToGeom predicate for storing name of shape\r
+ * Tolerance - Tolerance is used for comparators (EqualTo comparision) and for\r
+ * "Belong to plane" and "Belong to cylinder" predicates\r
+ * TypeOfElement - type of element SMESH::NODE, SMESH::FACE (used by BelongToGeom predicate only)\r
+ * Precision - Precision of numerical functors\r
+ */\r
+ struct Criterion\r
+ {\r
+ long Type;\r
+ long Compare;\r
+ double Threshold;\r
+ string ThresholdStr;\r
+ long UnaryOp;\r
+ long BinaryOp;\r
+ double Tolerance;\r
+ ElementType TypeOfElement;\r
+ long Precision;\r
+ };\r
+\r
+ typedef sequence<Criterion> Criteria;\r
+\r
+ void SetPredicate( in Predicate thePredicate );\r
+ long_array GetElementsId( in SMESH_Mesh theMesh );\r
+ ElementType GetElementType();\r
+ Predicate GetPredicate();\r
+\r
+ boolean GetCriteria( out Criteria theCriteria );\r
+ boolean SetCriteria( in Criteria theCriteria );\r
+ };\r
+\r
+\r
+ /*!\r
+ * Interface for working with library of filters\r
+ */\r
+ interface FilterLibrary : SALOME::GenericObj\r
+ {\r
+ /*!\r
+ * Copy filter from library by name (new filter is created)\r
+ */\r
+ Filter Copy( in string theFilterName );\r
+\r
+ /*!\r
+ * Methods for editing library\r
+ */\r
+ boolean Add ( in string theFilterName, in Filter theFilter );\r
+ boolean AddEmpty( in string theFilterName, in ElementType theType ); // add empty filter\r
+ boolean Delete ( in string theFilterName );\r
+ boolean Replace ( in string theFilterName, in string theNewName, in Filter theFilter );\r
+\r
+ /*!\r
+ * Save library on disk\r
+ */\r
+ boolean Save();\r
+ boolean SaveAs( in string aFileName );\r
+\r
+ /*!\r
+ * Query methods\r
+ */\r
+ boolean IsPresent( in string aFilterName );\r
+ long NbFilters( in ElementType aType );\r
+ string_array GetNames( in ElementType aType );\r
+ string_array GetAllNames();\r
+ void SetFileName( in string aFilterName );\r
+ string GetFileName();\r
+ };\r
+\r
+\r
+ /*!\r
+ * Interface of Filter manager\r
+ */\r
+ interface FilterManager: SALOME::GenericObj\r
+ {\r
+ /*!\r
+ * Create numerical functors\r
+ */\r
+ MinimumAngle CreateMinimumAngle();\r
+ AspectRatio CreateAspectRatio();\r
+ Warping CreateWarping();\r
+ Taper CreateTaper();\r
+ Skew CreateSkew();\r
+ Area CreateArea();\r
+ Length CreateLength();\r
+ MultiConnection CreateMultiConnection();\r
+\r
+ /*!\r
+ * Create logical functors ( predicates )\r
+ */\r
+ BelongToGeom CreateBelongToGeom();\r
+ BelongToPlane CreateBelongToPlane();\r
+ BelongToCylinder CreateBelongToCylinder();\r
+\r
+ FreeBorders CreateFreeBorders();\r
+ FreeEdges CreateFreeEdges();\r
+\r
+ RangeOfIds CreateRangeOfIds();\r
+\r
+ /*!\r
+ * Create comparators ( predicates )\r
+ */\r
+ LessThan CreateLessThan();\r
+ MoreThan CreateMoreThan();\r
+ EqualTo CreateEqualTo();\r
+\r
+ /*!\r
+ * Create boolean operations ( predicates )\r
+ */\r
+ LogicalNOT CreateLogicalNOT();\r
+ LogicalAND CreateLogicalAND();\r
+ LogicalOR CreateLogicalOR();\r
+\r
+ /*!\r
+ * Create filter\r
+ */\r
+ Filter CreateFilter();\r
+\r
+ /*!\r
+ * Load filter library. If libary does not exist it is created\r
+ */\r
+ FilterLibrary LoadLibrary( in string aFileName );\r
+\r
+ /*!\r
+ * Create new library\r
+ */\r
+ FilterLibrary CreateLibrary();\r
+\r
+ /*!\r
+ * Delete library\r
+ */\r
+ boolean DeleteLibrary( in string aFileName );\r
+ };\r