Salome HOME
bos #20256: [CEA 18523] Porting SMESH to int 64 bits
[modules/smesh.git] / src / SMESH_I / SMESH_Hypothesis_i.cxx
index 1f0517f3ab13a40b4db646a438489a74f8e3435f..00b60b226d75d341afb3cfbb4bd458545fa3f16a 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  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_Hypothesis_i.cxx
 //  Author : Paul RASCLE, EDF
 //  Module : SMESH
@@ -34,6 +34,8 @@
 #include <iostream>
 #include <sstream>
 
+#include <TopExp_Explorer.hxx>
+
 using namespace std;
 
 //=============================================================================
@@ -48,7 +50,7 @@ SMESH_Hypothesis_i::SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA )
   : SALOME::GenericObj_i( thePOA )
 {
   myBaseImpl = 0;
-};
+}
 
 //=============================================================================
 /*!
@@ -60,10 +62,10 @@ SMESH_Hypothesis_i::SMESH_Hypothesis_i( PortableServer::POA_ptr thePOA )
 
 SMESH_Hypothesis_i::~SMESH_Hypothesis_i()
 {
-  MESSAGE( "SMESH_Hypothesis_i::~SMESH_Hypothesis_i" );
+  //MESSAGE( "SMESH_Hypothesis_i::~SMESH_Hypothesis_i" );
   if ( myBaseImpl )
     delete myBaseImpl;
-};
+}
 
 //=============================================================================
 /*!
@@ -76,7 +78,7 @@ SMESH_Hypothesis_i::~SMESH_Hypothesis_i()
 char* SMESH_Hypothesis_i::GetName()
 {
   return CORBA::string_dup( myBaseImpl->GetName() );
-};
+}
 
 //=============================================================================
 /*!
@@ -89,7 +91,7 @@ char* SMESH_Hypothesis_i::GetName()
 char* SMESH_Hypothesis_i::GetLibName()
 {
   return CORBA::string_dup( myBaseImpl->GetLibName() );
-};
+}
 
 //=============================================================================
 /*!
@@ -102,7 +104,7 @@ char* SMESH_Hypothesis_i::GetLibName()
 void SMESH_Hypothesis_i::SetLibName(const char* theLibName)
 {
   myBaseImpl->SetLibName( theLibName );
-};
+}
 
 //=============================================================================
 /*!
@@ -112,7 +114,7 @@ void SMESH_Hypothesis_i::SetLibName(const char* theLibName)
  */
 //=============================================================================
 
-CORBA::Long SMESH_Hypothesis_i::GetId()
+CORBA::Short SMESH_Hypothesis_i::GetId()
 {
   return myBaseImpl->GetID();
 }
@@ -126,10 +128,9 @@ CORBA::Long SMESH_Hypothesis_i::GetId()
 bool SMESH_Hypothesis_i::IsPublished()
 {
   bool res = false;
-  if ( SMESH_Gen_i *gen = SMESH_Gen_i::GetSMESHGen())
+  if ( SMESH_Gen_i::GetSMESHGen() )
   {
-    SALOMEDS::Study_var study = gen->GetCurrentStudy();
-    SALOMEDS::SObject_wrap SO = SMESH_Gen_i::ObjectToSObject( study, _this());
+    SALOMEDS::SObject_wrap SO = SMESH_Gen_i::GetSMESHGen()->ObjectToSObject( _this());
     res = !SO->_is_nil();
   }
   return res;
@@ -327,3 +328,24 @@ void SMESH_Hypothesis_i::UpdateAsMeshesRestored()
 {
   // for hyps needing full data restored
 }
+
+//================================================================================
+/*!
+ * \brief Check if a shape includes sub-shapes of a given dimension
+ */
+//================================================================================
+
+bool GenericHypothesisCreator_i::IsShapeOfDim( const TopoDS_Shape & S,
+                                               int                  dim )
+{
+  TopAbs_ShapeEnum shapeType;
+  switch ( dim )
+  {
+  case 0: shapeType = TopAbs_VERTEX; break;
+  case 1: shapeType = TopAbs_EDGE; break;
+  case 2: shapeType = TopAbs_FACE; break;
+  case 3: shapeType = TopAbs_SOLID; break;
+  default: return true;
+  }
+  return TopExp_Explorer( S, shapeType ).More();
+}