Salome HOME
The data model has been rolled back to previous version.
[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    * Imports shape from file containing geometrical object and sets this
51    * shape as the obstacle shape.
52    * The supported file types:
53    *  - BREP
54    *  - IGES
55    *  - STEP
56    *  - ACIS
57    * \param theFilePath the path to file
58    * \return \c true if file has been successfully read
59    */
60   HYDRODATA_EXPORT virtual bool ImportFromFile( const QString& theFilePath );
61
62   /**
63    * Stores the file path of the imported file.
64    * \param theFilePath file path
65    */
66   HYDRODATA_EXPORT void SetFilePath(const QString& theFilePath);
67
68   /**
69    * Returns the imported file path.
70    */
71   HYDRODATA_EXPORT QString GetFilePath() const;
72
73    /**
74    * Stores the study entry of the imported GEOM object.
75    * \param theEntry GEOM object entry
76    */
77   HYDRODATA_EXPORT void SetGeomObjectEntry(const QString& theEntry);
78
79   /**
80    * Returns the imported GEOM object entry.
81    */
82   HYDRODATA_EXPORT QString GetGeomObjectEntry() const;
83
84 protected:
85
86   friend class HYDROData_Iterator;
87
88   /**
89    * Creates new object in the internal data structure. Use higher level objects 
90    * to create objects with real content.
91    */
92   HYDRODATA_EXPORT HYDROData_Obstacle();
93
94   /**
95    * Destructs properties of the object and object itself, removes it from the document.
96    */
97   virtual HYDRODATA_EXPORT ~HYDROData_Obstacle();
98
99 private:
100   /**
101    * Imports shape from the BREP file.
102    * \param theFilePath the path to file
103    * \return shape as TopoDS_Shape (null shape if import was failed)
104    */
105   TopoDS_Shape ImportBREP( const QString& theFilePath ) const;
106
107   /**
108    * Imports shape from the IGES file.
109    * \param theFilePath the path to file
110    * \return shape as TopoDS_Shape (null shape if import was failed)
111    */
112   TopoDS_Shape ImportIGES( const QString& theFilePath ) const;
113
114   /**
115    * Imports shape from the STEP file.
116    * \param theFilePath the path to file
117    * \return shape as TopoDS_Shape (null shape if import was failed)
118    */
119   TopoDS_Shape ImportSTEP( const QString& theFilePath ) const;
120 };
121
122 #endif