Salome HOME
Update the names of Regions and Zones if case name changed (Bug #110).
[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_Polyline);
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 top shape of the object.
42    */
43   HYDRODATA_EXPORT virtual TopoDS_Shape GetTopShape() const;
44
45   /**
46    * Returns the 3d shape of the object.
47    */
48   HYDRODATA_EXPORT virtual TopoDS_Shape GetShape3D() const;
49
50   /**
51    * Returns default filling color for new zone.
52    */
53   HYDRODATA_EXPORT static QColor DefaultFillingColor();
54
55   /**
56    * Returns default border color for new zone.
57    */
58   HYDRODATA_EXPORT static QColor DefaultBorderColor();
59
60   /**
61    * Sets reference polyline object for zone.
62    */
63   HYDRODATA_EXPORT virtual void SetPolyline( const Handle(HYDROData_Polyline)& thePolyline );
64
65   /**
66    * Returns reference polyline object of zone.
67    */
68   HYDRODATA_EXPORT virtual Handle(HYDROData_Polyline) GetPolyline() const;
69
70   /**
71    * Remove reference polyline object of zone.
72    */
73   HYDRODATA_EXPORT virtual void RemovePolyline();
74
75 protected:
76
77   friend class HYDROData_Iterator;
78
79   /**
80    * Creates new object in the internal data structure. Use higher level objects 
81    * to create objects with real content.
82    */
83   HYDRODATA_EXPORT HYDROData_ImmersibleZone();
84
85   /**
86    * Destructs properties of the object and object itself, removes it from the document.
87    */
88   virtual HYDRODATA_EXPORT ~HYDROData_ImmersibleZone();
89 };
90
91 #endif