Salome HOME
Update mechanism is corrected (Bug #182).
[modules/hydro.git] / src / HYDROData / HYDROData_ImmersibleZone.h
1
2 #ifndef HYDROData_ImmersibleZone_HeaderFile
3 #define HYDROData_ImmersibleZone_HeaderFile
4
5 #include <HYDROData_NaturalObject.h>
6
7 DEFINE_STANDARD_HANDLE(HYDROData_ImmersibleZone, HYDROData_NaturalObject)
8
9 class Handle(HYDROData_PolylineXY);
10
11 /**\class HYDROData_ImmersibleZone
12  * \brief 
13  *
14  */
15 class HYDROData_ImmersibleZone : public HYDROData_NaturalObject
16 {
17 protected:
18   /**
19    * Enumeration of tags corresponding to the persistent object parameters.
20    */
21   enum DataTag
22   {
23     DataTag_First = HYDROData_NaturalObject::DataTag_First + 100, ///< first tag, to reserve
24     DataTag_Polyline,     ///< reference polyline
25 };
26
27 public:
28   DEFINE_STANDARD_RTTI(HYDROData_ImmersibleZone);
29
30   /**
31    * Returns the kind of this object. Must be redefined in all objects of known type.
32    */
33   HYDRODATA_EXPORT virtual const ObjectKind GetKind() const {return KIND_IMMERSIBLE_ZONE;}
34
35   /**
36    * Dump object to Python script representation.
37    */
38   HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
39
40   /**
41    * Returns the list of all reference objects of this object.
42    */
43   HYDRODATA_EXPORT virtual HYDROData_SequenceOfObjects GetAllReferenceObjects() const;
44
45   /**
46    * Update the immersible zone object.
47    * Call this method whenever you made changes for object data.
48    */
49   HYDRODATA_EXPORT virtual void Update();
50
51   /**
52    * Returns the top shape of the object.
53    */
54   HYDRODATA_EXPORT virtual TopoDS_Shape GetTopShape() const;
55
56   /**
57    * Returns the 3d shape of the object.
58    */
59   HYDRODATA_EXPORT virtual TopoDS_Shape GetShape3D() const;
60
61   /**
62    * Returns default filling color for new zone.
63    */
64   HYDRODATA_EXPORT static QColor DefaultFillingColor();
65
66   /**
67    * Returns default border color for new zone.
68    */
69   HYDRODATA_EXPORT static QColor DefaultBorderColor();
70
71   /**
72    * Sets reference polyline object for zone.
73    */
74   HYDRODATA_EXPORT virtual void SetPolyline( const Handle(HYDROData_PolylineXY)& thePolyline );
75
76   /**
77    * Returns reference polyline object of zone.
78    */
79   HYDRODATA_EXPORT virtual Handle(HYDROData_PolylineXY) GetPolyline() const;
80
81   /**
82    * Remove reference polyline object of zone.
83    */
84   HYDRODATA_EXPORT virtual void RemovePolyline();
85
86 private:
87
88   TopoDS_Shape generateTopShape() const;
89
90 protected:
91
92   friend class HYDROData_Iterator;
93
94   /**
95    * Creates new object in the internal data structure. Use higher level objects 
96    * to create objects with real content.
97    */
98   HYDRODATA_EXPORT HYDROData_ImmersibleZone();
99
100   /**
101    * Destructs properties of the object and object itself, removes it from the document.
102    */
103   virtual HYDRODATA_EXPORT ~HYDROData_ImmersibleZone();
104 };
105
106 #endif