X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMESHGUI%2FSMESHGUI_HypothesesUtils.cxx;h=71b8125667e593efec3c64ffebb7b0ac51bd6c9d;hb=20d9e162bd67182cbfa841bbfc9319919f4703e3;hp=dce31dfb8b638b0256424f7a0f135ad173e84804;hpb=c98d9fcd7f02c1f1f5c24dd3e709ed75228d66c4;p=modules%2Fsmesh.git diff --git a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx index dce31dfb8..71b812566 100644 --- a/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx +++ b/src/SMESHGUI/SMESHGUI_HypothesesUtils.cxx @@ -49,9 +49,7 @@ #include // Qt includes -#include #include -//#include // Other includes @@ -74,7 +72,7 @@ #endif #ifdef _DEBUG_ -static int MYDEBUG = 1; +static int MYDEBUG = 0; #else static int MYDEBUG = 0; #endif @@ -180,7 +178,8 @@ namespace SMESH void InitAvailableHypotheses() { SUIT_OverrideCursor wc; - if (myHypothesesMap.empty() && myAlgorithmsMap.empty()) { + if ( myHypothesesMap.empty() && myAlgorithmsMap.empty() ) + { // Resource manager SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr(); if (!resMgr) return; @@ -369,6 +368,90 @@ namespace SMESH return aHypData; } + //================================================================================ + /*! + * \brief Return the HypothesisData holding a name of a group of hypotheses + * a given hypothesis belongs to + */ + //================================================================================ + + HypothesisData* GetGroupTitle( const HypothesisData* hyp, const bool isAlgo ) + { + static std::vector< std::vector< HypothesisData > > theGroups; + if ( theGroups.empty() ) + { + theGroups.resize(14); // 14: isAlgo * 10 + dim + + QString dummyS("GROUP"); + QList dummyIL; dummyIL << 1; + QStringList dummySL; + HypothesisData group( dummyS,dummyS,dummyS,dummyS,dummyS,dummyS,dummyS,-1,-1, + dummyIL, 0, dummySL,dummySL,dummySL,dummySL ); + // no group + int key = 0; + theGroups[ key ].push_back( group ); + + // 1D algo + key = 11; + // 0: Basic + group.Label = "GROUP:" + QObject::tr( "SMESH_1D_ALGO_GROUP_BASIC" ); + theGroups[ key ].push_back( group ); + // 1: Advanced + group.Label = "GROUP:" + QObject::tr( "SMESH_1D_ALGO_GROUP_ADVANCED" ); + theGroups[ key ].push_back( group ); + + // 1D hypotheses + key = 01; + // 0: Basic + group.Label = "GROUP:" + QObject::tr( "SMESH_1D_HYP_GROUP_BASIC" ); + theGroups[ key ].push_back( group ); + // 1: Progression + group.Label = "GROUP:" + QObject::tr( "SMESH_1D_HYP_GROUP_PROGRESSION" ); + theGroups[ key ].push_back( group ); + // 2: Advanced + group.Label = "GROUP:" + QObject::tr( "SMESH_1D_HYP_GROUP_ADVANCED" ); + theGroups[ key ].push_back( group ); + + // 2D algo + key = 12; + // 0: Regular + group.Label = "GROUP:" + QObject::tr( "SMESH_2D_ALGO_GROUP_REGULAR" ); + theGroups[ key ].push_back( group ); + // 1: Free + group.Label = "GROUP:" + QObject::tr( "SMESH_2D_ALGO_GROUP_FREE" ); + theGroups[ key ].push_back( group ); + // 2: Advanced + group.Label = "GROUP:" + QObject::tr( "SMESH_2D_ALGO_GROUP_ADVANCED" ); + theGroups[ key ].push_back( group ); + + // 3D algo + key = 13; + // 0: Regular + group.Label = "GROUP:" + QObject::tr( "SMESH_3D_ALGO_GROUP_REGULAR" ); + theGroups[ key ].push_back( group ); + // 1: Free + group.Label = "GROUP:" + QObject::tr( "SMESH_3D_ALGO_GROUP_FREE" ); + theGroups[ key ].push_back( group ); + // 2: Advanced + group.Label = "GROUP:" + QObject::tr( "SMESH_3D_ALGO_GROUP_ADVANCED" ); + theGroups[ key ].push_back( group ); + } + + size_t key = 0, groupID = 0; + if ( hyp && !hyp->Dim.isEmpty() ) + { + key = hyp->Dim[0] + isAlgo * 10; + groupID = hyp->GroupID; + } + + if ( key < theGroups.size() && !theGroups[ key ].empty() ) + { + std::vector< HypothesisData > & group = theGroups[ key ]; + return & ( groupID < group.size() ? group[ groupID ] : group.back() ); + } + return & theGroups[ 0 ][ 0 ]; + } + bool IsAvailableHypothesis(const HypothesisData* algoData, const QString& hypType, bool& isAuxiliary) @@ -378,7 +461,7 @@ namespace SMESH return false; if ( algoData->BasicHypos.contains( hypType )) return true; - if ( algoData->OptionalHypos.contains( hypType)) { + if ( algoData->OptionalHypos.contains( hypType )) { isAuxiliary = true; return true; }