X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHYDROData%2FHYDROData_CalculationCase.h;h=8104fbb261ab4b664ef431e9ae9ff1572c222864;hb=2f217128f8d34b2082de78d2af90bf243bf9e8b1;hp=4eb2ee1d804f51ab9e65b58154d132ffa8b22095;hpb=e989e0f3cdd230307b28ed0128a49978b27096ef;p=modules%2Fhydro.git diff --git a/src/HYDROData/HYDROData_CalculationCase.h b/src/HYDROData/HYDROData_CalculationCase.h index 4eb2ee1d..8104fbb2 100644 --- a/src/HYDROData/HYDROData_CalculationCase.h +++ b/src/HYDROData/HYDROData_CalculationCase.h @@ -7,6 +7,7 @@ #include #include #include +#include // IDL includes #include @@ -44,6 +45,12 @@ public: POINT_ON ///< point is on the edge of zone face }; + enum AssignmentMode + { + MANUAL = 0, + AUTOMATIC, + }; + public: /** @@ -59,6 +66,7 @@ public: DataTag_GeometryGroup, ///< reference geometry groups DataTag_SplittedGroups, ///< reference splitted groups DataTag_CustomRules, ///< custom rules + DataTag_AssignmentMode, ///< assignment mode }; public: @@ -199,6 +207,12 @@ public: */ HYDRODATA_EXPORT virtual void RemoveSplittedGroups(); + /** + * Exports the calculation case data (shell and groups) to GEOM module. + * \param theStudyId the id of the study where the GEOM module should be used for export + * \return the entry of the GEOM object (empty string in the case of error) + */ + HYDRODATA_EXPORT virtual QString Export( int theStudyId ) const; /** * Exports the calculation case data (shell and groups) to GEOM module. @@ -207,7 +221,8 @@ public: * \return true in case of success */ HYDRODATA_EXPORT virtual bool Export( GEOM::GEOM_Gen_var theGeomEngine, - SALOMEDS::Study_ptr theStudy ) const; + SALOMEDS::Study_ptr theStudy, + QString& theGeomObjEntry ) const; public: // Public methods to work with Calculation services @@ -281,13 +296,23 @@ public: const gp_XY& thePoint, const Handle(HYDROData_Zone)& theZone ) const; - HYDRODATA_EXPORT void ClearRules(); + HYDRODATA_EXPORT void SetAssignmentMode( AssignmentMode theMode ); + HYDRODATA_EXPORT AssignmentMode GetAssignmentMode() const; + + HYDRODATA_EXPORT void ClearRules( const bool theIsSetToUpdate = true ); HYDRODATA_EXPORT void AddRule( const Handle(HYDROData_Object)& theObject1, HYDROData_PriorityType thePriority, const Handle(HYDROData_Object)& theObject2, HYDROData_Zone::MergeAltitudesType theMergeType ); + HYDRODATA_EXPORT bool GetRule( int theIndex, + Handle(HYDROData_Object)& theObject1, + HYDROData_PriorityType& thePriority, + Handle(HYDROData_Object)& theObject2, + HYDROData_Zone::MergeAltitudesType& theMergeType ) const; + + HYDRODATA_EXPORT QString DumpRules() const; - HYDRODATA_EXPORT QString DumpRules(); + HYDRODATA_EXPORT HYDROData_Warning GetLastWarning() const; private: @@ -315,7 +340,8 @@ private: bool Export( GEOM::GEOM_Gen_var theGeomEngine, SALOMEDS::Study_ptr theStudy, const TopTools_ListOfShape& theFaces, - const HYDROData_ShapesGroup::SeqOfGroupsDefs& theGroupsDefs ) const; + const HYDROData_ShapesGroup::SeqOfGroupsDefs& theGroupsDefs, + QString& theGeomObjEntry ) const; /** * Publish the given shape in GEOM as a GEOM object. @@ -328,7 +354,8 @@ private: GEOM::GEOM_Object_ptr publishShapeInGEOM( GEOM::GEOM_Gen_var theGeomEngine, SALOMEDS::Study_ptr theStudy, const TopoDS_Shape& theShape, - const QString& theName ) const; + const QString& theName, + QString& theGeomObjEntry ) const; void CreateRegionsDef( const Handle(HYDROData_Document)& theDoc, const HYDROData_SplitToZonesTool::SplitDataList& theZones ); @@ -338,6 +365,10 @@ private: void CreateEdgeGroupsDef( const Handle(HYDROData_Document)& theDoc, const HYDROData_SplitToZonesTool::SplitDataList& theEdges ); + void DumpRulesToPython( const QString& theCalcCaseName, QStringList& theScript ) const; + + void SetWarning( HYDROData_WarningType theType = WARN_OK, const QString& theData = "" ); + protected: friend class HYDROData_Iterator; @@ -351,6 +382,9 @@ protected: * Destructs properties of the object and object itself, removes it from the document. */ HYDRODATA_EXPORT ~HYDROData_CalculationCase(); + +private: + HYDROData_Warning myLastWarning; }; #endif