Salome HOME
bfa194e691dcf72c4556bf2ee0820dd5243321a9
[modules/hydro.git] / src / HYDROData / HYDROData_Obstacle.h
1
2 #ifndef HYDROData_Obstacle_HeaderFile
3 #define HYDROData_Obstacle_HeaderFile
4
5 #include "HYDROData_ArtificialObject.h"
6
7 DEFINE_STANDARD_HANDLE(HYDROData_Obstacle, HYDROData_ArtificialObject)
8
9 /**\class HYDROData_Obstacle
10  * \brief 
11  *
12  */
13 class HYDROData_Obstacle : public HYDROData_ArtificialObject
14 {
15 protected:
16   /**
17    * Enumeration of tags corresponding to the persistent object parameters.
18    */
19   enum DataTag
20   {
21     DataTag_First = HYDROData_ArtificialObject::DataTag_First + 100, ///< first tag, to reserve
22     DataTag_GeomObjectEntry, ///< study entry of the imported GEOM object
23     DataTag_FilePath ///< imported file path
24   };
25
26 public:
27   DEFINE_STANDARD_RTTI(HYDROData_Obstacle);
28
29   /**
30    * Returns the kind of this object. Must be redefined in all objects of known type.
31    */
32   HYDRODATA_EXPORT virtual const ObjectKind GetKind() const {return KIND_OBSTACLE;}
33
34   /**
35    * Dump object to Python script representation.
36    */
37   HYDRODATA_EXPORT virtual QStringList DumpToPython( MapOfTreatedObjects& theTreatedObjects ) const;
38
39   /**
40    * Returns the top shape of the object.
41    */
42   HYDRODATA_EXPORT virtual TopoDS_Shape GetTopShape() const;
43
44   /**
45    * Returns the 3d shape of the object.
46    */
47   HYDRODATA_EXPORT virtual TopoDS_Shape GetShape3D() const;
48
49   /**
50    * Returns default filling color for new obstacle.
51    */
52   HYDRODATA_EXPORT static QColor DefaultFillingColor();
53
54   /**
55    * Returns default border color for new obstacle.
56    */
57   HYDRODATA_EXPORT static QColor DefaultBorderColor();
58
59
60 public:
61
62   /**
63    * Imports shape from file containing geometrical object and sets this
64    * shape as the obstacle shape.
65    * The supported file types:
66    *  - BREP
67    *  - IGES
68    *  - STEP
69    *  - ACIS
70    * \param theFilePath the path to file
71    * \return \c true if file has been successfully read
72    */
73   HYDRODATA_EXPORT virtual bool ImportFromFile( const QString& theFilePath );
74
75   /**
76    * Stores the file path of the imported file.
77    * \param theFilePath file path
78    */
79   HYDRODATA_EXPORT void SetFilePath(const QString& theFilePath);
80
81   /**
82    * Returns the imported file path.
83    */
84   HYDRODATA_EXPORT QString GetFilePath() const;
85
86    /**
87    * Stores the study entry of the imported GEOM object.
88    * \param theEntry GEOM object entry
89    */
90   HYDRODATA_EXPORT void SetGeomObjectEntry(const QString& theEntry);
91
92   /**
93    * Returns the imported GEOM object entry.
94    */
95   HYDRODATA_EXPORT QString GetGeomObjectEntry() const;
96
97 protected:
98
99   /**
100    * Returns default filling color for new object.
101    */
102   HYDRODATA_EXPORT virtual QColor getDefaultFillingColor() const;
103
104   /**
105    * Returns default border color for new object.
106    */
107   HYDRODATA_EXPORT virtual QColor getDefaultBorderColor() const;
108
109 protected:
110
111   friend class HYDROData_Iterator;
112
113   /**
114    * Creates new object in the internal data structure. Use higher level objects 
115    * to create objects with real content.
116    */
117   HYDRODATA_EXPORT HYDROData_Obstacle();
118
119   /**
120    * Destructs properties of the object and object itself, removes it from the document.
121    */
122   virtual HYDRODATA_EXPORT ~HYDROData_Obstacle();
123
124 private:
125   /**
126    * Imports shape from the BREP file.
127    * \param theFilePath the path to file
128    * \return shape as TopoDS_Shape (null shape if import was failed)
129    */
130   TopoDS_Shape ImportBREP( const QString& theFilePath ) const;
131
132   /**
133    * Imports shape from the IGES file.
134    * \param theFilePath the path to file
135    * \return shape as TopoDS_Shape (null shape if import was failed)
136    */
137   TopoDS_Shape ImportIGES( const QString& theFilePath ) const;
138
139   /**
140    * Imports shape from the STEP file.
141    * \param theFilePath the path to file
142    * \return shape as TopoDS_Shape (null shape if import was failed)
143    */
144   TopoDS_Shape ImportSTEP( const QString& theFilePath ) const;
145 };
146
147 #endif