<br>
</li>
<li>Apply \subpage basic_meshing_algos_page "meshing algorithms" and
- \subpage about_hypo_page "hypotheses" which will be used at computation of
+ \subpage about_hypo_page "hypotheses" which will be used to compute
this mesh.
"Create mesh" dialog box contains several tab pages titled \b 3D,
\b 2D, \b 1D and \b 0D. The title of each page reflects the
dimension of the CAD model (geometry) the algorithms listed on
- this page affect. For example, \b 3D page lists the algorithms
- that affect 3D geometrical objects (solids).
+ this page affect and the maximal dimension of elements the algorithms
+ generate. For example, \b 3D page lists the algorithms that affect
+ 3D geometrical objects (solids).
\note
- Some page(s) can be disabled if the source geometrical
<em>"Edit Hypothesis" button</em>
</center>
- Most standard 2D and 3D algorithms can work without hypotheses
- using some default parameters. The use of additional hypotheses
- is optional (i.e. you may leave "None" in this box).
+ Most 2D and 3D algorithms can work without hypotheses using some
+ default meshing parameters. Some algorithms does not require any
+ hypothesis. After selection of an algorithm "Hypothesis" field of
+ the dialog can contain:
+ <ul>
+ <li> <em><Default></em> if the algorithm can work using default
+ parameters.</li>
+ <li> <em><None></em> if the algorithm requires a hypothesis defining
+ its parameters.</li>
+ <li> Nothing if the algorithm has no parameters to tune.</li>
+ </ul>
+ After selection of an algorithm "Add. Hypothesis" field of
+ the dialog can contain:
+ <ul>
+ <li> <em><None></em> if the algorithm can be additionally tuned
+ using an additional hypothesis.</li>
+ <li> Nothing if the algorithm has no additional parameters to tune.</li>
+ </ul>
Proceed in the same way with 2D and 1D Algorithms and Hypotheses that
will be used to mesh faces and edges of your geometry. (Note
const QString& theClientLibName,
const QString& theLabel,
const QString& theIconId,
+ const QString& theContext,
const QList<int>& theDim,
- const bool theIsAux,
- const QStringList& theNeededHypos,
+ const bool theIsAuxOrNeedHyp,
+ const QStringList& theBasicHypos,
const QStringList& theOptionalHypos,
const QStringList& theInputTypes,
const QStringList& theOutputTypes,
ClientLibName( theClientLibName ),
Label( theLabel ),
IconId( theIconId ),
+ Context( theContext ),
Dim( theDim ),
- IsAux( theIsAux ),
- NeededHypos( theNeededHypos ),
+ IsAuxOrNeedHyp( theIsAuxOrNeedHyp ),
+ BasicHypos( theBasicHypos ),
OptionalHypos( theOptionalHypos ),
InputTypes( theInputTypes ),
OutputTypes( theOutputTypes ),
public:
HypothesisData( const QString&, const QString&, const QString&,
const QString&, const QString&, const QString&,
- const QList<int>&, const bool,
+ const QString&, const QList<int>&, const bool,
const QStringList&, const QStringList&,
const QStringList&, const QStringList&,
const bool=true, const bool supportSub=false );
QString ClientLibName; //!< client library name
QString Label; //!< label
QString IconId; //!< icon identifier
+ QString Context; //!< ["GLOBAL","LOCAL","ANY"(default)]
QList<int> Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration)
- bool IsAux; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
+ bool IsAuxOrNeedHyp; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
+ //!< TRUE if given algorithm can't work w/o hypotheses
bool IsNeedGeometry; //!< TRUE if the algorithm works with shapes only, FALSE otherwise
bool IsSupportSubmeshes; //!< TRUE if the algo building all-dim elems supports submeshes
// for algorithm only: dependencies algo <-> algo and algo -> hypos
- QStringList NeededHypos; //!< list of obligatory hypotheses
+ QStringList BasicHypos; //!< list of basic hypotheses
QStringList OptionalHypos;//!< list of optional hypotheses
QStringList InputTypes; //!< list of element types required as a prerequisite
QStringList OutputTypes; //!< list of types of generated elements
}
- QStringList GetAvailableHypotheses( const bool isAlgo,
- const int theDim,
+ QStringList GetAvailableHypotheses( const bool isAlgo,
+ const int theDim,
const bool isAux,
- const bool isNeedGeometry)
+ const bool isNeedGeometry,
+ const bool isSubMesh)
{
QStringList aHypList;
// Init list of available hypotheses, if needed
InitAvailableHypotheses();
bool checkGeometry = ( !isNeedGeometry && isAlgo );
+ const char* context = isSubMesh ? "LOCAL" : "GLOBAL";
// fill list of hypotheses/algorithms
THypothesisDataMap& pMap = isAlgo ? myAlgorithmsMap : myHypothesesMap;
THypothesisDataMap::ConstIterator anIter;
for ( anIter = pMap.begin(); anIter != pMap.end(); anIter++ ) {
HypothesisData* aData = anIter.value();
if(!aData || aData->Label.isEmpty()) continue;
- if ( ( theDim < 0 || aData->Dim.contains( theDim ) ) && aData->IsAux == isAux) {
+ if (( theDim < 0 || aData->Dim.contains( theDim )) &&
+ ( isAlgo || aData->IsAuxOrNeedHyp == isAux ) &&
+ ( aData->Context == "ANY" || aData->Context == context ))
+ {
if (checkGeometry) {
if (aData->IsNeedGeometry == isNeedGeometry)
aHypList.append(anIter.key());
isAuxiliary = false;
if ( !algoData )
return false;
- if ( algoData->NeededHypos.contains( hypType ))
+ if ( algoData->BasicHypos.contains( hypType ))
return true;
if ( algoData->OptionalHypos.contains( hypType)) {
isAuxiliary = true;
QStringList GetAvailableHypotheses( const bool,
const int = -1,
const bool = false,
- const bool = true);
+ const bool = true,
+ const bool = false);
SMESHGUI_EXPORT
QStringList GetHypothesesSets( int, const QString& );
myAvailableHyps[ theId ] = theHyps;
bool enable = ! theHyps.isEmpty();
- if ( theId == Algo )
+ if ( theId == Algo ) // fill list of algos
{
myHyp[ Algo ]->clear();
- myHyp[ Algo ]->addItem( tr( "NONE" ) );
- myHyp[ Algo ]->addItems( theHyps );
- myHyp[ Algo ]->setCurrentIndex( 0 );
+ if ( enable )
+ {
+ myHyp[ Algo ]->addItem( tr( "NONE" ) );
+ myHyp[ Algo ]->addItems( theHyps );
+ myHyp[ Algo ]->setCurrentIndex( 0 );
+ }
}
- else {
+ else // enable buttons
+ {
myCreateHyp[ theId ]->setEnabled( enable );
- myEditHyp[ theId ]->setEnabled( false );
+ myEditHyp [ theId ]->setEnabled( false );
}
myHyp[ theId ]->setEnabled( enable );
}
//================================================================================
/*!
* \brief Sets existing hypothesis
- * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
- * \param theHyps - list of available hypothesis names
- *
+ * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
+ * \param theHyps - list of available hypothesis names
+ * \param theDefaultAvlbl - \c true means that the algorithm can with w/o hypothesis
+ * with some default parameters
+ *
* Sets existing main or additional hypothesis for this tab
*/
//================================================================================
-void SMESHGUI_MeshTab::setExistingHyps( const int theId, const QStringList& theHyps )
+void SMESHGUI_MeshTab::setExistingHyps( const int theId,
+ const QStringList& theHyps,
+ bool theDefaultAvlbl)
{
if ( theId != Algo )
{
+ bool enable = ! myAvailableHyps[ theId ].isEmpty();
myHyp[ theId ]->clear();
- myHyp[ theId ]->addItem( tr( "NONE" ) );
- myHyp[ theId ]->addItems( theHyps );
- myHyp[ theId ]->setCurrentIndex( 0 );
- myHyp[ theId ]->setEnabled( !theHyps.isEmpty() );
+ if ( enable )
+ {
+ QString none = tr( theDefaultAvlbl ? "DEFAULT" : ( theId == AddHyp ) ? "NONE" : "NONE" );
+ myHyp[ theId ]->addItem( none );
+ myHyp[ theId ]->addItems( theHyps );
+ myHyp[ theId ]->setCurrentIndex( 0 );
+ }
+ myHyp [ theId ]->setEnabled( enable );
myEditHyp[ theId ]->setEnabled( false );
}
}
//================================================================================
/*!
* \brief Adds hypothesis in combo box of available ones
- * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
- * \param theHyp - name of hypothesis to be added
- *
+ * \param theId - identifier of hypothesis (main or additional, see HypType enumeration)
+ * \param theHyp - name of hypothesis to be added
+ *
* Adds hypothesis in combo box of available ones. This method is called by operation
* after creation of new hypothesis.
*/
virtual ~SMESHGUI_MeshTab();
void setAvailableHyps( const int, const QStringList& );
- void setExistingHyps( const int, const QStringList& );
+ void setExistingHyps( const int, const QStringList&, bool=false);
void addHyp( const int, const QString& );
void renameHyp( const int, const int, const QString& );
void setCurrentHyp( const int, const int );
// Qt includes
#include <QStringList>
#include <QLineEdit>
+#include <QApplication>
// OCCT includes
#include <TopoDS.hxx>
connect( myDlg, SIGNAL( hypoSet( const QString& )), SLOT( onHypoSet( const QString& )));
connect( myDlg, SIGNAL( geomSelectionByMesh( bool )), SLOT( onGeomSelectionByMesh( bool )));
connect( myDlg, SIGNAL( selectMeshType( const int, const int ) ), SLOT( onAlgoSetByMeshType( const int, const int)));
- if ( myToCreate )
+ if ( myToCreate ) {
if ( myIsMesh ) myHelpFileName = "constructing_meshes_page.html";
- else myHelpFileName = "constructing_submeshes_page.html";
- else myHelpFileName = "editing_meshes_page.html";
+ else myHelpFileName = "constructing_submeshes_page.html";
+ }
+ else {
+ myHelpFileName = "editing_meshes_page.html";
+ }
}
SMESHGUI_SelectionOp::startOperation();
// iterate through dimensions and get available algoritms, set them to the dialog
selectionDone();
myIgnoreAlgoSelection = false;
+ myHasConcurrentSubBefore = false;
myObjectToSelect.clear();
}
{
if (pObj != 0)
{
- SMESH::SMESH_subMesh_var aVar =
+ SMESH::SMESH_subMesh_var submeshVar =
SMESH::SMESH_subMesh::_narrow( _CAST( SObject,pObj )->GetObject() );
- myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, !aVar->_is_nil() );
+ myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, !submeshVar->_is_nil() );
myDlg->setObjectShown( SMESHGUI_MeshDlg::Geom, true );
myDlg->objectWg( SMESHGUI_MeshDlg::Mesh, SMESHGUI_MeshDlg::Btn )->hide();
myDlg->objectWg( SMESHGUI_MeshDlg::Geom, SMESHGUI_MeshDlg::Btn )->hide();
myDlg->updateGeometry();
myDlg->adjustSize();
readMesh();
+ myIsMesh = submeshVar->_is_nil();
}
else
myDlg->reset();
myDlg->disableTab(i);
}
myMaxShapeDim = -1;
- //Hide labels and fields (Mesh ang Geometry)
+ //Hide labels and fields (Mesh and Geometry)
myDlg->setObjectShown( SMESHGUI_MeshDlg::Mesh, false );
myDlg->setObjectShown( SMESHGUI_MeshDlg::Geom, false );
myDlg->adjustSize();
if ( myToCreate )
{
QString aGeomEntry = myDlg->selectedObject( SMESHGUI_MeshDlg::Geom );
- if ( aGeomEntry == "" )
+ if ( aGeomEntry.isEmpty() )
{
- theMess = tr( "GEOMETRY_OBJECT_IS_NOT_DEFINED" );
+ theMess = tr( myIsMesh ?
+ "GEOMETRY_OBJECT_IS_NOT_DEFINED_MESH" :
+ "GEOMETRY_OBJECT_IS_NOT_DEFINED_SUBMESH");
+ if ( !myIsMesh )
+ return false;
dlg()->show();
if ( SUIT_MessageBox::warning( myDlg, tr( "SMESH_WRN_WARNING" ), theMess,
SUIT_MessageBox::Yes, SUIT_MessageBox::No ) == SUIT_MessageBox::No )
theHyps.clear();
bool isAlgo = ( theHypType == Algo );
bool isAux = ( theHypType == AddHyp );
- QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux, myIsOnGeometry );
+ QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux, myIsOnGeometry, !myIsMesh );
QStringList::const_iterator anIter;
for ( anIter = aHypTypeNameList.begin(); anIter != aHypTypeNameList.end(); ++anIter )
//================================================================================
/*!
* \brief Gets existing hypotheses or algorithms
- * \param theDim - specifies dimension of returned hypotheses/algorifms
- * \param theHypType - specifies whether algorims or hypotheses or additional ones
- * are retrieved (possible values are in HypType enumeration)
- * \param theFather - start object for finding ( may be component, mesh, or sub-mesh )
- * \param theHyps - output list of names.
- * \param theHypVars - output list of variables.
- * \param theAlgoData - to select hypos able to be used by this algo (optional)
+ * \param theDim - specifies dimension of returned hypotheses/algorifms
+ * \param theHypType - specifies whether algorims or hypotheses or additional ones
+ * are retrieved (possible values are in HypType enumeration)
+ * \param theFather - start object for finding ( may be component, mesh, or sub-mesh )
+ * \param theHyps - output list of names.
+ * \param theHypVars - output list of variables.
+ * \param theAlgoData - to select hypos able to be used by this algo (optional)
*
* Gets existing (i.e. already created) hypotheses or algorithm in accordance with
* input parameters
*/
//================================================================================
-void SMESHGUI_MeshOp::existingHyps( const int theDim,
- const int theHypType,
- _PTR(SObject) theFather,
- QStringList& theHyps,
- THypList& theHypList,
+void SMESHGUI_MeshOp::existingHyps( const int theDim,
+ const int theHypType,
+ _PTR(SObject) theFather,
+ QStringList& theHyps,
+ THypList& theHypList,
HypothesisData* theAlgoData)
{
// Clear hypoheses list
if ( !aData) continue;
if ( ( theDim == -1 || aData->Dim.contains( theDim ) ) &&
( isCompatible ( theAlgoData, aData, theHypType )) &&
- ( isAux == aData->IsAux ))
+ ( theHypType == Algo || isAux == aData->IsAuxOrNeedHyp ))
{
std::string aHypName = aName->Value();
theHyps.append( aHypName.c_str() );
}
}
// get hyps compatible with curAlgo
+ bool defaulHypAvlbl = false;
if ( curAlgo )
{
// check if a selected hyp is compatible with the curAlgo
}
existingHyps( dim, type, pObj, anExisting, myExistingHyps[ dim ][ type ], curAlgo);
availableHyps( dim, type, anAvailable, myAvailableHypData[ dim ][ type ], curAlgo);
+ defaulHypAvlbl = (type == MainHyp && !curAlgo->IsAuxOrNeedHyp );
}
// set list of hypotheses
myDlg->tab( dim )->setAvailableHyps( type, anAvailable );
- myDlg->tab( dim )->setExistingHyps( type, anExisting );
+ myDlg->tab( dim )->setExistingHyps( type, anExisting, defaulHypAvlbl );
// set current existing hypothesis
if ( !curHyp->_is_nil() && !anExisting.isEmpty() )
selectObject( _PTR(SObject)() );
selectionDone();
+ checkSubMeshConcurrency( aMeshVar, aSubMeshVar, /*askUser=*/true );
+
return true;
}
//================================================================================
/*!
- * \brief Reads parameters of an edited mesh and assigns them to the dialog
+ * \brief Reads parameters of an edited mesh/sub-mesh and assigns them to the dialog
*
* Called when mesh is edited only.
*/
QString aMeshName = name( aMeshSO );
myDlg->setObjectText( SMESHGUI_MeshDlg::Mesh, aMeshName );
}
+ myHasConcurrentSubBefore = checkSubMeshConcurrency( aMeshVar, aSubMeshVar );
}
// Get name of geometry object
// Get hypotheses and algorithms assigned to the mesh/sub-mesh
QStringList anExisting;
const int lastDim = ( myIsOnGeometry ) ? SMESH::DIM_0D : SMESH::DIM_3D;
+ bool algoFound = false;
for ( int dim = SMESH::DIM_3D; dim >= lastDim; --dim )
{
// get algorithm
// myAvailableHypData[ dim ][ Algo ].push_back( algoData );
// aHypIndex = myAvailableHypData[ dim ][ hypType ].count() - 1;
// }
+ algoFound = ( aHypIndex > -1 );
}
setCurrentHyp( dim, Algo, aHypIndex );
// set existing and available hypothesis according to the selected algo
- onAlgoSelected( aHypIndex, dim );
+ if ( aHypIndex > -1 || !algoFound )
+ onAlgoSelected( aHypIndex, dim );
}
// get hypotheses
}
}
+ SALOMEDS_SObject* aSObject = _CAST(SObject, pObj);
+ CORBA::Object_var anObject = aSObject->GetObject();
+ SMESH::SMESH_Mesh_var aMeshVar = SMESH::SMESH_Mesh::_narrow( anObject );
+ SMESH::SMESH_subMesh_var aSubMeshVar = SMESH::SMESH_subMesh::_narrow( anObject );
+ bool isMesh = !aMeshVar->_is_nil();
+ if ( !isMesh && !aSubMeshVar->_is_nil() )
+ aMeshVar = aSubMeshVar->GetFather();
+
// Assign new algorithms and hypotheses
for ( int dim = aDim; dim <= SMESH::DIM_3D; dim++ )
{
if ( !anAlgoVar->_is_nil() && // some algo selected and
myObjHyps[ dim ][ Algo ].count() == 0 ) // no algo assigned
{
- SALOMEDS_SObject* aSObject = _CAST(SObject, pObj);
- CORBA::Object_var anObject = aSObject->GetObject();
- SMESH::SMESH_Mesh_var aMeshVar = SMESH::SMESH_Mesh::_narrow( anObject );
- bool isMesh = !aMeshVar->_is_nil();
- if ( isMesh ) {
+ if ( isMesh )
SMESH::AddHypothesisOnMesh( aMeshVar, anAlgoVar );
- } else {
- SMESH::SMESH_subMesh_var aVar =
- SMESH::SMESH_subMesh::_narrow( _CAST(SObject,pObj)->GetObject() );
- if ( !aVar->_is_nil() )
- SMESH::AddHypothesisOnSubMesh( aVar, anAlgoVar );
- }
+ else if ( !aSubMeshVar->_is_nil() )
+ SMESH::AddHypothesisOnSubMesh( aSubMeshVar, anAlgoVar );
+
myObjHyps[ dim ][ Algo ].append( THypItem( anAlgoVar, aName) );
}
}
// assign new hypotheses
- if ( aNewHypIndex != anOldHypIndex && aNewHypIndex != -1 )
+ if ( aNewHypIndex != anOldHypIndex && aNewHypIndex > -1 )
{
- SMESH::SMESH_Mesh_var aMeshVar =
- SMESH::SMESH_Mesh::_narrow( _CAST(SObject,pObj)->GetObject() );
- bool isMesh = !aMeshVar->_is_nil();
if ( isMesh )
- {
SMESH::AddHypothesisOnMesh
(aMeshVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ].first );
- }
- else
- {
- SMESH::SMESH_subMesh_var aVar =
- SMESH::SMESH_subMesh::_narrow( _CAST(SObject,pObj)->GetObject() );
- if ( !aVar->_is_nil() )
- SMESH::AddHypothesisOnSubMesh
- ( aVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ].first );
- }
+ else if ( !aSubMeshVar->_is_nil() )
+ SMESH::AddHypothesisOnSubMesh
+ ( aSubMeshVar, myExistingHyps[ dim ][ hypType ][ aNewHypIndex ].first );
}
// reread all hypotheses of mesh if necessary
QStringList anExisting;
}
}
+ myHasConcurrentSubBefore =
+ checkSubMeshConcurrency( aMeshVar, aSubMeshVar, /*askUser=*/!myHasConcurrentSubBefore );
+
return true;
}
+//================================================================================
+/*!
+ * \brief Checks if a concurrent sub-meshes appear as result of sub-mesh
+ * creation/edition and, if (askUser) , proposes the uses to set up a desired
+ * order of sub-mesh computation.
+ * Returns \c true if a sub-mesh concurrency detected.
+ */
+//================================================================================
+
+bool SMESHGUI_MeshOp::checkSubMeshConcurrency(SMESH::SMESH_Mesh_ptr mesh,
+ SMESH::SMESH_subMesh_ptr submesh,
+ bool askUser)
+{
+ if ( CORBA::is_nil( mesh ) || CORBA::is_nil( submesh ))
+ return false;
+
+ bool isNewConcurrent = mesh->IsUnorderedSubMesh( submesh->GetId() );
+ if ( isNewConcurrent && askUser )
+ {
+ int butID = SUIT_MessageBox::warning( myDlg->parentWidget(), tr( "SMESH_WARNING" ),
+ tr("CONCURRENT_SUBMESH_APPEARS"),
+ tr("SMESH_BUT_YES"), tr("SMESH_BUT_NO"));
+ if ( butID == 0 )
+ {
+ _PTR(SObject) meshSO = SMESH::FindSObject( mesh );
+ LightApp_SelectionMgr* aSelectionMgr = selectionMgr();
+ if ( meshSO && aSelectionMgr )
+ {
+ myDlg->setEnabled( false ); // disactivate selection
+ selectionMgr()->clearFilters();
+ selectObject( meshSO );
+ SMESHGUI::GetSMESHGUI()->OnGUIEvent( 713 ); // MESH_ORDER
+ qApp->processEvents();
+
+ myDlg->setEnabled( true );
+ int obj = myDlg->getActiveObject();
+ onActivateObject( obj ); // restore filter
+ if ( !myToCreate )
+ {
+ selectObject( SMESH::FindSObject( submesh ));
+ selectionDone();
+ }
+ }
+ }
+ }
+
+ return isNewConcurrent;
+}
+
//================================================================================
/*!
* \brief Verifies whether given operator is valid for this one
bool createMesh( QString&, QStringList& );
bool createSubMesh( QString&, QStringList& );
bool editMeshOrSubMesh( QString& );
+ bool checkSubMeshConcurrency( SMESH::SMESH_Mesh_ptr mesh,
+ SMESH::SMESH_subMesh_ptr submesh,
+ bool askUser=false);
int currentHyp( const int, const int ) const;
bool isAccessibleDim( const int ) const;
bool myToCreate;
bool myIsMesh;
bool myIsOnGeometry; //!< TRUE if edited mesh accotiated with geometrical object
+ bool myHasConcurrentSubBefore;
TDim2Type2HypList myExistingHyps; //!< all hypothesis of SMESH module
TDim2Type2HypList myObjHyps; //!< hypothesis assigned to the current
if (atts.value("type") != "")
{
QString aHypAlType = atts.value("type");
- QString aLabel = atts.value("label-id");
- QString anIcon = atts.value("icon-id");
- bool isAux = atts.value("auxiliary") == "true";
+ QString aLabel = atts.value("label-id");
+ QString anIcon = atts.value("icon-id");
+ bool isAuxOrNeedHyp = ( qName == "hypothesis" ?
+ atts.value("auxiliary") == "true" :
+ atts.value("need-hyp" ) == "true" );
bool isNeedGeom = true, isSupportSubmeshes = false;
QString aNeedGeom = atts.value("need-geom");
if ( !aNeedGeom.isEmpty() )
QString suppSub = atts.value("support-submeshes");
if ( !suppSub.isEmpty() )
isSupportSubmeshes = (suppSub == "true");
+ QString context = atts.value("context");
+ if ( context.isEmpty() )
+ context = "ANY";
+ else
+ context = context.toUpper();
QString aDimStr = atts.value("dim");
aDimStr = aDimStr.remove( ' ' );
if ( !aHypAlType.contains( BAD_HYP_FLAG ) ) {
HypothesisData* aHypData =
new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib,
- aLabel, anIcon, aDim, isAux,
+ aLabel, anIcon, context, aDim, isAuxOrNeedHyp,
attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ],
isNeedGeom, isSupportSubmeshes );