Salome HOME
bos #20256: [CEA 18523] Porting SMESH to int 64 bits
[modules/smesh.git] / src / SMESH_I / SMESH_Filter_i.hxx
index 5555a69b55e35f8a288f777964814fe6ba8d4132..29d221259f4d53b8f1f87b6f54403ecb7cb6b744 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2016  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2021  CEA/DEN, EDF R&D, OPEN CASCADE
 //
 // Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
 // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
@@ -20,7 +20,7 @@
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
 
-//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses
+//  SMESH SMESH_I : idl implementation based on 'SMESH' unit's classes
 //  File   : SMESH_Filter_i.hxx
 //  Author : Alexey Petrov, OCC
 //  Module : SMESH
@@ -55,7 +55,7 @@ namespace SMESH
    */
   struct NotifyerAndWaiter
   {
-    virtual void OnBaseObjModified(NotifyerAndWaiter* obj, bool removed) {};
+    virtual void OnBaseObjModified(NotifyerAndWaiter* /*obj*/, bool /*removed*/) {};
     // specific reaction on modification of a base object
 
     void Modified( bool removed=false, NotifyerAndWaiter* who = 0);
@@ -73,7 +73,7 @@ namespace SMESH
   
   /*
     Class       : Functor_i
-    Description : An abstact class for all functors 
+    Description : An abstract class for all functors 
   */
   class SMESH_I_EXPORT Functor_i: public virtual POA_SMESH::Functor,
                                   public virtual SALOME::GenericObj_i
@@ -98,7 +98,8 @@ namespace SMESH
                                            public virtual Functor_i
   {
   public:
-    CORBA::Double                   GetValue( CORBA::Long theElementId );
+    CORBA::Double                   GetValue( SMESH::smIdType theElementId );
+    CORBA::Boolean                  IsApplicable( SMESH::smIdType theElementId );
     SMESH::Histogram*               GetHistogram(CORBA::Short   nbIntervals,
                                                  CORBA::Boolean isLogarithmic);
     SMESH::Histogram*               GetLocalHistogram(CORBA::Short               nbIntervals,
@@ -271,6 +272,22 @@ namespace SMESH
     Controls::Length2DPtr          myLength2DPtr;
   };
 
+  /*
+    Class       : Length3D_i
+    Description : Functor for calculating length of edge
+  */
+  class SMESH_I_EXPORT Length3D_i: public virtual POA_SMESH::Length3D,
+                                   public virtual NumericalFunctor_i
+  {
+  public:
+    Length3D_i();
+    //SMESH::Length2D::Values*        GetValues();
+    FunctorType                     GetFunctorType();
+
+  protected:
+    Controls::Length3DPtr          myLength3DPtr;
+  };
+
   /*
     Class       : Deflection2D_i
     Description : Functor for calculating distance between a face and geometry
@@ -687,7 +704,7 @@ namespace SMESH
   {
   public:
     RangeOfIds_i();
-    void                            SetRange( const SMESH::long_array& theIds );
+    void                            SetRange( const SMESH::smIdType_array& theIds );
     CORBA::Boolean                  SetRangeStr( const char* theRange );
     char*                           GetRangeStr();
     
@@ -805,13 +822,10 @@ namespace SMESH
 
     void                    SetElementType( ElementType theType );
     void                    SetPoint( CORBA::Double x, CORBA::Double y, CORBA::Double z );
-    void                    SetVertex( GEOM::GEOM_Object_ptr vertex )
-      throw (SALOME::SALOME_Exception);
-    void                    SetNode ( CORBA::Long nodeID )
-      throw (SALOME::SALOME_Exception);
+    void                    SetVertex( GEOM::GEOM_Object_ptr vertex );
+    void                    SetNode ( SMESH::smIdType nodeID );
     void                    SetThreshold ( const char* threshold,
-                                           SMESH::ConnectedElements::ThresholdType type )
-      throw (SALOME::SALOME_Exception);
+                                           SMESH::ConnectedElements::ThresholdType type );
     char*                   GetThreshold ( SMESH::ConnectedElements::ThresholdType& type );
 
   private:
@@ -992,11 +1006,15 @@ namespace SMESH
                    Controls::Filter::TIdSequence& );
     
     virtual
-    long_array*      
+    smIdType_array*      
     GetElementsId( SMESH_Mesh_ptr );
 
     virtual
-    ElementType      
+    smIdType_array*
+    GetElementsIdFromParts( const ListOfIDSources& theParts );
+
+    virtual
+    ElementType
     GetElementType();
     
     virtual
@@ -1022,9 +1040,9 @@ namespace SMESH
     // =========================
     // SMESH_IDSource interface
     // =========================
-    virtual SMESH::long_array*           GetIDs();
-    virtual SMESH::long_array*           GetMeshInfo();
-    virtual SMESH::long_array*           GetNbElementsByType();
+    virtual SMESH::smIdType_array*       GetIDs();
+    virtual SMESH::smIdType_array*       GetMeshInfo();
+    virtual SMESH::smIdType_array*       GetNbElementsByType();
     virtual SMESH::array_of_ElementType* GetTypes();
     virtual SMESH::SMESH_Mesh_ptr        GetMesh();
     virtual bool                         IsMeshInfoCorrect() { return true; }
@@ -1099,6 +1117,7 @@ namespace SMESH
     MaxElementLength3D_ptr    CreateMaxElementLength3D();
     Length_ptr                CreateLength();
     Length2D_ptr              CreateLength2D();
+    Length3D_ptr              CreateLength3D();
     Deflection2D_ptr          CreateDeflection2D();
     NodeConnectivityNumber_ptr CreateNodeConnectivityNumber();
     MultiConnection_ptr       CreateMultiConnection();