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