Salome HOME
refs #1330: basic implementation of the not zoomable polyline arrows
[modules/hydro.git] / src / HYDROData / HYDROData_Entity.h
index 37bdcc664111c8204c90200ed210224aae9b9858..7042b8d06db4731f66b1c9ab1a60c16c27a1b02a 100644 (file)
 #include <TDF_Label.hxx>
 #include <QMap>
 #include <QString>
+#include <Standard_Type.hxx>
 
 class QColor;
 class QVariant;
 class QStringList;
-class Handle(TDataStd_ReferenceList);
-class Handle_HYDROData_Entity;
+class TDataStd_ReferenceList;
+class HYDROData_Entity;
 class TopoDS_Shape;
 
 ///! Kind of an object in a document
@@ -66,24 +67,22 @@ const ObjectKind KIND_LAND_COVER_OBSOLETE = 27;
 const ObjectKind KIND_CHANNEL_ALTITUDE    = 28;
 const ObjectKind KIND_LAND_COVER_MAP      = 29;
 const ObjectKind KIND_DTM                 = 30;
-const ObjectKind KIND_LAST                = KIND_LAND_COVER_MAP;
-
-DEFINE_STANDARD_HANDLE(HYDROData_Entity, MMgt_TShared)
+const ObjectKind KIND_LAST                = KIND_DTM;
 
 class MapOfTreatedObjects : public QMap<QString,Handle(Standard_Transient)>
 {
 };
 
-class HYDRODATA_EXPORT HYDROData_SequenceOfObjects : public NCollection_Sequence<Handle_HYDROData_Entity>
+class HYDRODATA_EXPORT HYDROData_SequenceOfObjects : public NCollection_Sequence<Handle(HYDROData_Entity)>
 {
 public:
   HYDROData_SequenceOfObjects();
   HYDROData_SequenceOfObjects( const HYDROData_SequenceOfObjects& );
-  HYDROData_SequenceOfObjects( const NCollection_Sequence<Handle_HYDROData_Entity>& );
+  HYDROData_SequenceOfObjects( const NCollection_Sequence<Handle(HYDROData_Entity)>& );
 };
 
 ///! Is Equal for HYDROData_Entity mapping
-HYDRODATA_EXPORT bool IsEqual(const Handle_HYDROData_Entity& theObj1, const Handle_HYDROData_Entity& theObj2);
+HYDRODATA_EXPORT bool IsEqual(const Handle(HYDROData_Entity)& theObj1, const Handle(HYDROData_Entity)& theObj2);
 
 /**\class HYDROData_Entity
  * \brief Generic class of any object in the data model.
@@ -120,7 +119,7 @@ public:
   };
 
 public:
-  DEFINE_STANDARD_RTTI(HYDROData_Entity);
+  DEFINE_STANDARD_RTTIEXT(HYDROData_Entity, MMgt_TShared);
 
   /**
    * Returns the kind of this object. Must be redefined in all objects of known type.
@@ -243,7 +242,7 @@ public:
   /**
    * Returns the z-level for object presentation, -1 if no z-level.
    */
-  HYDRODATA_EXPORT virtual Standard_Boolean GetZLevel( Standard_Integer& theLevel ) const;
+  HYDRODATA_EXPORT virtual bool GetZLevel( Standard_Integer& theLevel ) const;
 
   /**
    * Set the z-level for object presentation.
@@ -335,7 +334,7 @@ protected:
    * \param theObj pointer to reference object
    * \param theTag tag of a label to store attribute (for 0 this is myLab)
    */
-  bool HasReference( const Handle_HYDROData_Entity& theObj,
+  bool HasReference( const Handle(HYDROData_Entity)& theObj,
                      const int                      theTag = 0 ) const;
 
   /**
@@ -343,7 +342,7 @@ protected:
    * \param theObj pointer to reference object
    * \param theTag tag of a label to store attribute (for 0 this is myLab)
    */
-  void AddReferenceObject( const Handle_HYDROData_Entity& theObj,
+  void AddReferenceObject( const Handle(HYDROData_Entity)& theObj,
                            const int                      theTag = 0 );
 
   /**
@@ -355,7 +354,7 @@ protected:
              - if less than zero then prepend to the list
              - indexing starts from 0
    */
-  void SetReferenceObject( const Handle_HYDROData_Entity& theObj,
+  void SetReferenceObject( const Handle(HYDROData_Entity)& theObj,
                            const int                      theTag = 0,
                            const int                      theIndex = 0 );
 
@@ -368,7 +367,7 @@ protected:
              - if less than zero then prepend to the list
              - indexing starts from 0
    */
-  void InsertReferenceObject( const Handle_HYDROData_Entity& theObj,
+  void InsertReferenceObject( const Handle(HYDROData_Entity)& theObj,
                               const int                      theTag = 0,
                               const int                      theBeforeIndex = 0 );
 
@@ -387,7 +386,7 @@ protected:
    *        - indexing starts from 0
    * \returns pointer to reference object or NULL if label is not set
    */
-  Handle_HYDROData_Entity GetReferenceObject( const int theTag   = 0,
+  Handle(HYDROData_Entity) GetReferenceObject( const int theTag   = 0,
                                               const int theIndex = 0 ) const;
 
   HYDROData_SequenceOfObjects GetReferenceObjects( const int theTag = 0 ) const;
@@ -412,6 +411,10 @@ protected:
    * \param theTag tag of a label that keeps the attribute (for 0 this is myLab)
    */
   void ClearReferenceObjects( const int theTag = 0 );
+
+public:
+
+   HYDRODATA_EXPORT virtual bool CompareLabels(const Handle(HYDROData_Entity)& theOtherObj);
   
 protected: