Salome HOME
refs #1331: automatic test for profiles points in GUI
[modules/hydro.git] / src / HYDROPy / HYDROData_Document.sip
index 9c4779fff7f9a0a7a0b30540b8b180ac75ed450a..882fe167ab7cd1444c472ad7bcc15896a8810877 100644 (file)
@@ -1,12 +1,8 @@
-// Copyright (C) 2007-2013  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
-//
+// Copyright (C) 2014-2015  EDF-R&D
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
 // License as published by the Free Software Foundation; either
-// version 2.1 of the License.
+// version 2.1 of the License, or (at your option) any later version.
 //
 // This library is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -25,9 +21,9 @@
 %End
 
 %ModuleHeaderCode
-HYDROData_Object* copyObject( HYDROData_Object* theObject );
-Handle(HYDROData_Object) createHandle( HYDROData_Object* theObject );
-HYDROData_Object* createPointer( const Handle(HYDROData_Object)& theObject );
+HYDROData_Entity* copyObject( HYDROData_Entity* theObject );
+Handle(HYDROData_Entity) createHandle( HYDROData_Entity* theObject );
+HYDROData_Entity* createPointer( const Handle(HYDROData_Entity)& theObject );
 %End
 
 enum Data_DocError {
@@ -39,14 +35,15 @@ enum Data_DocError {
   DocError_UnknownProblem ///< problem has unknown nature
 };
 
-class HYDROData_Document
+class HYDROData_Document 
 {
 %TypeHeaderCode
 #include <HYDROData_Document.h>
 %End
 
 %ConvertToSubClassCode
-    if ( !Handle(HYDROData_Document)::DownCast( sipCpp ).IsNull() )
+    HYDROData_Document* aDoc = dynamic_cast< HYDROData_Document*>( sipCpp );
+    if ( aDoc )
       sipClass = sipClass_HYDROData_Document;
     else
       sipClass = NULL;
@@ -54,22 +51,127 @@ class HYDROData_Document
 
 %TypeCode
 
-  HYDROData_Object* copyObject( HYDROData_Object* theObject )
+  HYDROData_Entity* copyObject( HYDROData_Entity* theObject )
   {
-    HYDROData_Object* aRes = NULL;
+    HYDROData_Entity* aRes = NULL;
     if ( theObject == NULL )
       return aRes;
 
     switch( theObject->GetKind() )
     {
+      case KIND_IMAGE:
+      {
+        aRes = new HYDROData_Image( *dynamic_cast<HYDROData_Image*>( theObject ) );
+        break;
+      }
+      case KIND_POLYLINE:
+      {
+        aRes = new HYDROData_Polyline3D( *dynamic_cast<HYDROData_Polyline3D*>( theObject ) );
+        break;
+      }
       case KIND_BATHYMETRY:
       {
         aRes = new HYDROData_Bathymetry( *dynamic_cast<HYDROData_Bathymetry*>( theObject ) );
         break;
       }
-      case KIND_IMAGE:
+      case KIND_ALTITUDE:
       {
-        aRes = new HYDROData_Image( *dynamic_cast<HYDROData_Image*>( theObject ) );
+        aRes = new HYDROData_AltitudeObject( *dynamic_cast<HYDROData_AltitudeObject*>( theObject ) );
+        break;
+      }
+      case KIND_IMMERSIBLE_ZONE:
+      {
+        aRes = new HYDROData_ImmersibleZone( *dynamic_cast<HYDROData_ImmersibleZone*>( theObject ) );
+        break;
+      }
+      case KIND_RIVER:
+      {
+        aRes = new HYDROData_River( *dynamic_cast<HYDROData_River*>( theObject ) );
+        break;
+      }
+      case KIND_STREAM:
+      {
+        aRes = new HYDROData_Stream( *dynamic_cast<HYDROData_Stream*>( theObject ) );
+        break;
+      }
+      case KIND_CONFLUENCE:
+      {
+        aRes = new HYDROData_Confluence( *dynamic_cast<HYDROData_Confluence*>( theObject ) );
+        break;
+      }
+      case KIND_CHANNEL:
+      {
+        aRes = new HYDROData_Channel( *dynamic_cast<HYDROData_Channel*>( theObject ) );
+        break;
+      }
+      case KIND_OBSTACLE:
+      {
+        aRes = new HYDROData_Obstacle( *dynamic_cast<HYDROData_Obstacle*>( theObject ) );
+        break;
+      }
+      case KIND_DIGUE:
+      {
+        aRes = new HYDROData_Digue( *dynamic_cast<HYDROData_Digue*>( theObject ) );
+        break;
+      }
+      case KIND_PROFILE:
+      {
+        aRes = new HYDROData_Profile( *dynamic_cast<HYDROData_Profile*>( theObject ) );
+        break;
+      }
+      case KIND_PROFILEUZ:
+      {
+        aRes = new HYDROData_ProfileUZ( *dynamic_cast<HYDROData_ProfileUZ*>( theObject ) );
+        break;
+      }
+      case KIND_POLYLINEXY:
+      {
+        aRes = new HYDROData_PolylineXY( *dynamic_cast<HYDROData_PolylineXY*>( theObject ) );
+        break;
+      }
+      case KIND_CALCULATION:
+      {
+        aRes = new HYDROData_CalculationCase( *dynamic_cast<HYDROData_CalculationCase*>( theObject ) );
+        break;
+      }
+      case KIND_REGION:
+      {
+        aRes = new HYDROData_Region( *dynamic_cast<HYDROData_Region*>( theObject ) );
+        break;
+      }
+      case KIND_ZONE:
+      {
+        aRes = new HYDROData_Zone( *dynamic_cast<HYDROData_Zone*>( theObject ) );
+        break;
+      }
+      case KIND_SHAPES_GROUP:
+      {
+        aRes = new HYDROData_ShapesGroup( *dynamic_cast<HYDROData_ShapesGroup*>( theObject ) );
+        break;
+      }
+      case KIND_SPLIT_GROUP:
+      {
+        aRes = new HYDROData_SplitShapesGroup( *dynamic_cast<HYDROData_SplitShapesGroup*>( theObject ) );
+        break;
+      }
+      case KIND_OBSTACLE_ALTITUDE:
+      {
+        aRes = new HYDROData_ObstacleAltitude( *dynamic_cast<HYDROData_ObstacleAltitude*>( theObject ) );
+        break;
+      }
+      case KIND_STREAM_ALTITUDE:
+      {
+        aRes = new HYDROData_StreamAltitude( *dynamic_cast<HYDROData_StreamAltitude*>( theObject ) );
+        break;
+      }
+      case KIND_STRICKLER_TABLE:
+      {
+        aRes = new HYDROData_StricklerTable( *dynamic_cast<HYDROData_StricklerTable*>( theObject ) );
+        break;
+      }
+      case KIND_LAND_COVER_MAP:
+      {
+        aRes = new HYDROData_LandCoverMap( *dynamic_cast<HYDROData_LandCoverMap*>( theObject ) );
         break;
       }
     }
@@ -77,15 +179,15 @@ class HYDROData_Document
     return aRes;
   }
   
-  Handle(HYDROData_Object) createHandle( HYDROData_Object* theObject )
+  Handle(HYDROData_Entity) createHandle( HYDROData_Entity* theObject )
   {
-    Handle(HYDROData_Object) aRes = copyObject( theObject );
+    Handle(HYDROData_Entity) aRes = copyObject( theObject );
     return aRes;
   }
   
-  HYDROData_Object* createPointer( const Handle(HYDROData_Object)& theObject )
+  HYDROData_Entity* createPointer( const Handle(HYDROData_Entity)& theObject )
   {
-    HYDROData_Object* aRes = NULL;
+    HYDROData_Entity* aRes = NULL;
     
     if ( !theObject.IsNull() )
       aRes = copyObject( theObject.operator->() );
@@ -98,7 +200,7 @@ class HYDROData_Document
 public:
 
   //! Returns the existing document or creates new if it is not exist
-  static HYDROData_Document Document( const int theStudyID ) [Handle_HYDROData_Document (const int)] ;
+  static HYDROData_Document Document( const int theStudyID ) [opencascade::handle<HYDROData_Document> (const int)] ;
   %MethodCode
 
     Handle(HYDROData_Document) aDocument;
@@ -172,10 +274,10 @@ public:
   //! Creates and locates in the document a new object
   //! \param theKind kind of the created object, can not be UNKNOWN
   //! \returns the created object
-  HYDROData_Object CreateObject( const ObjectKind theKind ) [Handle_HYDROData_Object (const ObjectKind)] ;
+  HYDROData_Entity CreateObject( const ObjectKind theKind ) [opencascade::handle<HYDROData_Entity> (const ObjectKind)] ;
   %MethodCode
 
-    Handle(HYDROData_Object) anObject;
+    Handle(HYDROData_Entity) anObject;
     Py_BEGIN_ALLOW_THREADS
     anObject =  sipSelfWasArg ? sipCpp->HYDROData_Document::CreateObject( a0 ) :
                                 sipCpp->CreateObject( a0 );
@@ -185,6 +287,32 @@ public:
     
   %End
 
+  HYDROData_Entity FindObjectByName( const QString&   theName,
+                                     const ObjectKind theKind = KIND_UNKNOWN ) 
+  [opencascade::handle<HYDROData_Entity> (const QString&, const ObjectKind)] ;
+  %MethodCode
+
+    Handle(HYDROData_Entity) anObject;
+    Py_BEGIN_ALLOW_THREADS
+    anObject =  sipSelfWasArg ? sipCpp->HYDROData_Document::FindObjectByName( *a0, a1 ) :
+                                sipCpp->FindObjectByName( *a0, a1 );
+    Py_END_ALLOW_THREADS
+
+    sipRes = createPointer( anObject );
+    
+  %End
+
+  HYDROData_SequenceOfObjects FindObjectsByNames( const QStringList& theNames,
+                                                  const ObjectKind   theKind = KIND_UNKNOWN );
+
+  void SetLocalCS( double, double );
+
+  //! Get the appropriate interpolator by the name.
+  HYDROData_IProfilesInterpolator* GetInterpolator( const TCollection_AsciiString& theName ) const;
+
+  //! Get list of registered interpolator names.
+  NCollection_Sequence<TCollection_AsciiString> GetInterpolatorNames() const;
+
 protected:
 
   //! Creates new document: private because "Document" method must be used instead of direct creation.