Salome HOME
implementation of the strickler types (integer codes) for points
[modules/hydro.git] / src / HYDROPy / HYDROData_Entity.sip
index c07ecc35d01e3835395c90f382c58c7ebc1e960f..4eae394f4e86a03f2095e38d41481646ffb62c6a 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
@@ -44,6 +40,11 @@ const ObjectKind KIND_POLYLINEXY;
 const ObjectKind KIND_CALCULATION;
 const ObjectKind KIND_ZONE;
 const ObjectKind KIND_REGION;
+const ObjectKind KIND_SHAPES_GROUP;
+const ObjectKind KIND_SPLIT_GROUP;
+const ObjectKind KIND_OBSTACLE_ALTITUDE;
+const ObjectKind KIND_STRICKLER_TABLE;
+const ObjectKind KIND_LAND_COVER_MAP;
 
 class HYDROData_Entity
 {
@@ -59,65 +60,93 @@ class HYDROData_Entity
         sipClass = sipClass_HYDROData_Image;
         break;
 
-      case KIND_POLYLINEXY:
-        sipClass = sipClass_HYDROData_PolylineXY;
-        break;
-
-      case KIND_PROFILEUZ:
-        sipClass = sipClass_HYDROData_ProfileUZ;
+      case KIND_POLYLINE:
+        sipClass = sipClass_HYDROData_Polyline3D;
         break;
 
       case KIND_BATHYMETRY:
         sipClass = sipClass_HYDROData_Bathymetry;
         break;
 
-      case KIND_OBSTACLE_ALTITUDE:
-        sipClass = sipClass_HYDROData_ObstacleAltitude;
+      case KIND_ALTITUDE:
+        sipClass = sipClass_HYDROData_AltitudeObject;
         break;
 
       case KIND_IMMERSIBLE_ZONE:
         sipClass = sipClass_HYDROData_ImmersibleZone;
         break;
-        
-      case KIND_DIGUE:
-        sipClass = sipClass_HYDROData_Digue;
+
+      case KIND_RIVER:
+        sipClass = sipClass_HYDROData_River;
+        break;
+
+      case KIND_STREAM:
+        sipClass = sipClass_HYDROData_Stream;
+        break;
+
+      case KIND_CONFLUENCE:
+        sipClass = sipClass_HYDROData_Confluence;
         break;
 
       case KIND_CHANNEL:
         sipClass = sipClass_HYDROData_Channel;
         break;
-      
-      case KIND_CALCULATION:
-        sipClass = sipClass_HYDROData_CalculationCase;
-        break;
 
       case KIND_OBSTACLE:
         sipClass = sipClass_HYDROData_Obstacle;
         break;
 
-      case KIND_POLYLINE:
-        sipClass = sipClass_HYDROData_Polyline3D;
+      case KIND_DIGUE:
+        sipClass = sipClass_HYDROData_Digue;
         break;
 
       case KIND_PROFILE:
         sipClass = sipClass_HYDROData_Profile;
         break;
 
-      case KIND_REGION:
-        sipClass = sipClass_HYDROData_Region;
+      case KIND_PROFILEUZ:
+        sipClass = sipClass_HYDROData_ProfileUZ;
         break;
 
-      case KIND_STREAM:
-        sipClass = sipClass_HYDROData_Stream;
+      case KIND_POLYLINEXY:
+        sipClass = sipClass_HYDROData_PolylineXY;
+        break;
+
+      case KIND_CALCULATION:
+        sipClass = sipClass_HYDROData_CalculationCase;
         break;
 
       case KIND_ZONE:
         sipClass = sipClass_HYDROData_Zone;
         break;
 
+      case KIND_REGION:
+        sipClass = sipClass_HYDROData_Region;
+        break;
+
       case KIND_SHAPES_GROUP:
         sipClass = sipClass_HYDROData_ShapesGroup;
         break;
+        
+      case KIND_SPLIT_GROUP:
+        sipClass = sipClass_HYDROData_SplitShapesGroup;
+        break;
+
+      case KIND_STREAM_ALTITUDE:
+        sipClass = sipClass_HYDROData_StreamAltitude;
+        break;
+
+      case KIND_OBSTACLE_ALTITUDE:
+        sipClass = sipClass_HYDROData_ObstacleAltitude;
+        break;
+
+      case KIND_STRICKLER_TABLE:
+        sipClass = sipClass_HYDROData_StricklerTable;
+        break;
+
+      case KIND_LAND_COVER_MAP:
+        sipClass = sipClass_HYDROData_LandCoverMap;
+        break;
 
       case KIND_UNKNOWN:
         sipClass = sipClass_HYDROData_Entity;
@@ -130,6 +159,16 @@ class HYDROData_Entity
 %End
 
 public:
+  enum Geometry
+  {
+    Geom_No = 1,
+    Geom_2d = 2,
+    Geom_Z  = 4,
+    Geom_Groups = 8,
+
+    Geom_3d = 6,
+    Geom_2d_and_groups = 10,
+  };
 
   /**
    * Returns the kind of this object. Must be redefined in all objects of known type.
@@ -152,23 +191,15 @@ public:
   virtual void Update();
 
   /**
-   * Returns data of object wrapped to QVariant.
-   * Base implementation returns null value.
-   */
-  virtual QVariant GetDataVariant();
-
-
-  /**
-   * Sets the "MustBeUpdated" flag: if object is depended on updated features.
-   * \param theFlag is true for objects that must be updated, false for up-to-date
+   * Checks that object has 2D presentation. Base implementation returns false.
    */
-  virtual void SetToUpdate( bool theFlag );
+  virtual bool IsHas2dPrs() const;
 
   /**
-   * Returns the "MustBeUpdated" flag: is object data must be updated or not
-   * \returns false if object is up to date
+   * Returns data of object wrapped to QVariant.
+   * Base implementation returns null value.
    */
-  virtual bool IsMustBeUpdated() const;
+  virtual QVariant GetDataVariant();
 
   /**
    * Returns flag indicating that object is updateble or not.
@@ -187,24 +218,6 @@ public:
    */
   virtual void Remove();
 
-
-  /**
-   * Copies all properties of this to the destinated object.
-   * Objects must be the same type.
-   * \param theDestination initialized object (from any document) - target of copying
-   */
-  void CopyTo( HYDROData_Entity theDestination ) const [void ( const Handle_HYDROData_Entity& )];
-  %MethodCode
-    Handle(HYDROData_Entity) aCopyTo = createHandle( a0 );
-    if ( !aCopyTo.IsNull() )
-    {
-      Py_BEGIN_ALLOW_THREADS
-      sipSelfWasArg ? sipCpp->HYDROData_Entity::CopyTo( aCopyTo ):
-                      sipCpp->CopyTo( aCopyTo );
-      Py_END_ALLOW_THREADS
-    }
-  %End
-
   /**
    * Returns father object. For object created under root document label
    * this method always return NULL object.
@@ -227,13 +240,31 @@ public:
    */
   virtual HYDROData_SequenceOfObjects GetAllReferenceObjects() const;
 
+
+  /**
+   * Returns the z-level for object presentation, -1 if no z-level.
+   */
+  virtual bool GetZLevel( int& theLevel ) const [Standard_Boolean ( Standard_Integer& )];
+
+  /**
+   * Set the z-level for object presentation.
+   */
+  virtual void SetZLevel( const int& theLevel ) [void ( const Standard_Integer& )];
+
+  /**
+   * Remove the z-level of object presentation.
+   */
+  virtual void RemoveZLevel();
+
+   void SetColor( const QColor& theColor, const int theTag = 0 );
+   
 protected:
 
   /**
    * Creates new object in the internal data structure. Use higher level objects 
    * to create objects with real content.
    */
-  HYDROData_Entity();
+  HYDROData_Entity( Geometry );
 
   /**
    * Destructs properties of the object and object itself, removes it from the document.