// QT Includes
#include <qstring.h>
#include <qwidget.h>
+#include <qvaluevector.h>
-//=================================================================================
-// class : SMESHGUI_GenericHypothesisCreator
-// purpose :
-//=================================================================================
+/*!
+ * \brief Auxiliary class for creation of hypotheses
+*/
class SMESHGUI_GenericHypothesisCreator
{
public:
virtual void EditHypothesis (SMESH::SMESH_Hypothesis_ptr theHyp) = 0;
};
-//=================================================================================
-// class : HypothesisData
-// purpose :
-//=================================================================================
+/*!
+ * \brief Class containing information about hypothesis
+*/
class HypothesisData
{
public:
- HypothesisData (const QString& aPluginName,
- const QString& aServerLibName,
- const QString& aClientLibName,
- const QString& aLabel,
- const QString& anIconId) :
- PluginName(aPluginName),
- ServerLibName(aServerLibName),
- ClientLibName(aClientLibName),
- Label(aLabel),
- IconId(anIconId)
+ HypothesisData( const QString& thePluginName,
+ const QString& theServerLibName,
+ const QString& theClientLibName,
+ const QString& theLabel,
+ const QString& theIconId,
+ const QValueList<int>& theDim,
+ const bool theIsAux )
+: PluginName( thePluginName ),
+ ServerLibName( theServerLibName ),
+ ClientLibName( theClientLibName ),
+ Label( theLabel ),
+ IconId( theIconId ),
+ Dim( theDim ),
+ IsAux( theIsAux )
{};
- QString PluginName;
- QString ServerLibName;
- QString ClientLibName;
- QString Label;
- QString IconId;
+ QString PluginName; //!< plugin name
+ QString ServerLibName; //!< server library name
+ QString ClientLibName; //!< client library name
+ QString Label; //!< label
+ QString IconId; //!< icon identifier
+ QValueList<int> Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration)
+ bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
};
#endif
}
- QStringList GetAvailableHypotheses(const bool isAlgo)
+ QStringList GetAvailableHypotheses( const bool isAlgo,
+ const int theDim,
+ const bool isAux )
{
QStringList aHypList;
InitAvailableHypotheses();
// fill list of hypotheses/algorithms
+ THypothesisDataMap* pMap = isAlgo ? &myAlgorithmsMap : &myHypothesesMap;
THypothesisDataMap::iterator anIter;
- if (isAlgo) {
- anIter = myAlgorithmsMap.begin();
- for (; anIter != myAlgorithmsMap.end(); anIter++) {
- aHypList.append(((*anIter).first).c_str());
- }
- }
- else {
- anIter = myHypothesesMap.begin();
- for (; anIter != myHypothesesMap.end(); anIter++) {
- aHypList.append(((*anIter).first).c_str());
- }
+ for ( anIter = pMap->begin(); anIter != pMap->end(); anIter++ )
+ {
+ HypothesisData* aData = (*anIter).second;
+ if ( ( theDim < 0 || aData->Dim.contains( theDim ) ) && aData->IsAux == isAux )
+ aHypList.append(((*anIter).first).c_str());
}
-
return aHypList;
}
// 2. Get names of plugin libraries
HypothesisData* aHypData = GetHypothesisData(aHypType);
- if (!aHypData) {
- return aCreator;
- }
+ if (!aHypData)
+ return aCreator;
QString aClientLibName = aHypData->ClientLibName;
QString aServerLibName = aHypData->ServerLibName;
//
//
//
-// File : SMESHGUI_Hypotheses.h
+// File : SMESHGUI_HypothesesUtils.h
// Author : Julia DOROVSKIKH
// Module : SMESH
// $Header$
void InitAvailableHypotheses();
- QStringList GetAvailableHypotheses(const bool isAlgo);
+ QStringList GetAvailableHypotheses( const bool isAlgo,
+ const int theDim = -1,
+ const bool isAux = false);
HypothesisData* GetHypothesisData(const char* aHypType);