Mesh redesine. New fields added to specify whether hypothesis is main or additional one and for storing information about dimensions supported by hypothesis

This commit is contained in:
sln 2005-08-23 08:52:20 +00:00
parent 0d232fb704
commit f4cb697fcc
3 changed files with 43 additions and 41 deletions

View File

@ -34,11 +34,11 @@
// 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:
@ -46,30 +46,35 @@ class SMESHGUI_GenericHypothesisCreator
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

View File

@ -193,7 +193,9 @@ namespace SMESH{
}
QStringList GetAvailableHypotheses(const bool isAlgo)
QStringList GetAvailableHypotheses( const bool isAlgo,
const int theDim,
const bool isAux )
{
QStringList aHypList;
@ -201,20 +203,14 @@ namespace SMESH{
InitAvailableHypotheses();
// fill list of hypotheses/algorithms
THypothesisDataMap* pMap = isAlgo ? &myAlgorithmsMap : &myHypothesesMap;
THypothesisDataMap::iterator anIter;
if (isAlgo) {
anIter = myAlgorithmsMap.begin();
for (; anIter != myAlgorithmsMap.end(); anIter++) {
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());
}
}
else {
anIter = myHypothesesMap.begin();
for (; anIter != myHypothesesMap.end(); anIter++) {
aHypList.append(((*anIter).first).c_str());
}
}
return aHypList;
}
@ -254,9 +250,8 @@ namespace SMESH{
// 2. Get names of plugin libraries
HypothesisData* aHypData = GetHypothesisData(aHypType);
if (!aHypData) {
if (!aHypData)
return aCreator;
}
QString aClientLibName = aHypData->ClientLibName;
QString aServerLibName = aHypData->ServerLibName;

View File

@ -20,7 +20,7 @@
//
//
//
// File : SMESHGUI_Hypotheses.h
// File : SMESHGUI_HypothesesUtils.h
// Author : Julia DOROVSKIKH
// Module : SMESH
// $Header$
@ -49,7 +49,9 @@ namespace SMESH{
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);