mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-28 00:20:33 +05:00
0020918: EDF 1447 SMESH: Mesh common borders
+ StdMeshers_ImportSource1D_i.cxx + StdMeshers_ImportSource2D_i.cxx
This commit is contained in:
parent
38440ad0a9
commit
ba115b7fa9
@ -45,6 +45,7 @@
|
||||
#include <SALOMEconfig.h>
|
||||
#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis)
|
||||
#include CORBA_SERVER_HEADER(SMESH_Mesh)
|
||||
#include CORBA_SERVER_HEADER(SMESH_Group)
|
||||
|
||||
// Qt includes
|
||||
#include <QHBoxLayout>
|
||||
@ -258,6 +259,25 @@ namespace {
|
||||
return SMESH::SMESH_Mesh::_nil();
|
||||
}
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief Retrieve SMESH_Mesh held by widget
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
inline SMESH::ListOfGroups_var groupsFromWdg(const QWidget* wdg)
|
||||
{
|
||||
SMESH::ListOfGroups_var groups = new SMESH::ListOfGroups;
|
||||
const StdMeshersGUI_ObjectReferenceParamWdg * objRefWdg =
|
||||
dynamic_cast<const StdMeshersGUI_ObjectReferenceParamWdg*>( wdg );
|
||||
if ( objRefWdg )
|
||||
{
|
||||
groups->length( objRefWdg->NbObjects() );
|
||||
for ( unsigned i = 0; i < groups->length(); ++i )
|
||||
groups[i] = objRefWdg->GetObject< SMESH::SMESH_GroupBase >(i);
|
||||
}
|
||||
return groups;
|
||||
}
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief creates a filter for selection of shapes of given dimension
|
||||
* \param dim - dimension
|
||||
@ -314,6 +334,15 @@ namespace {
|
||||
w->SetObject( object.in() );
|
||||
return w;
|
||||
}
|
||||
QWidget* newObjRefParamWdg( SUIT_SelectionFilter* filter,
|
||||
SMESH::string_array_var& objEntries)
|
||||
{
|
||||
StdMeshersGUI_ObjectReferenceParamWdg* w =
|
||||
new StdMeshersGUI_ObjectReferenceParamWdg( filter, 0, /*multiSel=*/true);
|
||||
w->SetObjects( objEntries );
|
||||
w->activateSelection();
|
||||
return w;
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
@ -379,6 +408,12 @@ bool StdMeshersGUI_StdHypothesisCreator::checkParams( QString& msg ) const
|
||||
if ( ok )
|
||||
deactivateObjRefParamWdg( customWidgets() );
|
||||
}
|
||||
else if ( hypType().startsWith("ImportSource" ))
|
||||
{
|
||||
StdMeshersGUI_ObjectReferenceParamWdg* w =
|
||||
widget< StdMeshersGUI_ObjectReferenceParamWdg >( 0 );
|
||||
ok = ( w->IsObjectSelected() );
|
||||
}
|
||||
else if ( hypType() == "LayerDistribution" || hypType() == "LayerDistribution2D" )
|
||||
{
|
||||
StdMeshersGUI_LayerDistributionParamWdg* w =
|
||||
@ -604,6 +639,28 @@ QString StdMeshersGUI_StdHypothesisCreator::storeParams() const
|
||||
geomFromWdg ( getWidgetForParam( 3 )), // tgt1
|
||||
geomFromWdg ( getWidgetForParam( 5 ))); // tgt2
|
||||
}
|
||||
else if( hypType()=="ImportSource1D" )
|
||||
{
|
||||
StdMeshers::StdMeshers_ImportSource1D_var h =
|
||||
StdMeshers::StdMeshers_ImportSource1D::_narrow( hypothesis() );
|
||||
|
||||
SMESH::ListOfGroups_var groups = groupsFromWdg( getWidgetForParam( 0 ));
|
||||
h->SetSourceEdges( groups.in() );
|
||||
QCheckBox* toCopyMesh = widget< QCheckBox >( 1 );
|
||||
QCheckBox* toCopyGroups = widget< QCheckBox >( 2 );
|
||||
h->SetCopySourceMesh( toCopyMesh->isChecked(), toCopyGroups->isChecked());
|
||||
}
|
||||
else if( hypType()=="ImportSource2D" )
|
||||
{
|
||||
StdMeshers::StdMeshers_ImportSource2D_var h =
|
||||
StdMeshers::StdMeshers_ImportSource2D::_narrow( hypothesis() );
|
||||
|
||||
SMESH::ListOfGroups_var groups = groupsFromWdg( getWidgetForParam( 0 ));
|
||||
h->SetSourceFaces( groups.in() );
|
||||
QCheckBox* toCopyMesh = widget< QCheckBox >( 1 );
|
||||
QCheckBox* toCopyGroups = widget< QCheckBox >( 2 );
|
||||
h->SetCopySourceMesh( toCopyMesh->isChecked(), toCopyGroups->isChecked());
|
||||
}
|
||||
else if( hypType()=="QuadrangleParams" )
|
||||
{
|
||||
StdMeshers::StdMeshers_QuadrangleParams_var h =
|
||||
@ -982,6 +1039,56 @@ bool StdMeshersGUI_StdHypothesisCreator::stdParams( ListOfStdParams& p ) const
|
||||
customWidgets()->append( newObjRefParamWdg( filterForShapeOfDim( 0 ),
|
||||
h->GetTargetVertex( 2 )));
|
||||
}
|
||||
else if( hypType()=="ImportSource1D" )
|
||||
{
|
||||
StdMeshers::StdMeshers_ImportSource1D_var h =
|
||||
StdMeshers::StdMeshers_ImportSource1D::_narrow( hyp );
|
||||
|
||||
SMESH::string_array_var groupEntries = h->GetSourceEdges();
|
||||
CORBA::Boolean toCopyMesh, toCopyGroups;
|
||||
h->GetCopySourceMesh(toCopyMesh, toCopyGroups);
|
||||
|
||||
item.myName = tr( "SMESH_SOURCE_EDGES" ); p.append( item );
|
||||
customWidgets()->append( newObjRefParamWdg( new SMESH_TypeFilter( GROUP_EDGE ),
|
||||
groupEntries));
|
||||
|
||||
item.myName = tr( "SMESH_COPY_MESH" ); p.append( item );
|
||||
QCheckBox* aQCheckBox = new QCheckBox(dlg());
|
||||
aQCheckBox->setChecked( toCopyMesh );
|
||||
connect( aQCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( onValueChanged() ));
|
||||
customWidgets()->append( aQCheckBox );
|
||||
|
||||
item.myName = tr( "SMESH_TO_COPY_GROUPS" ); p.append( item );
|
||||
aQCheckBox = new QCheckBox(dlg());
|
||||
aQCheckBox->setChecked( toCopyGroups );
|
||||
aQCheckBox->setEnabled( toCopyMesh );
|
||||
customWidgets()->append( aQCheckBox );
|
||||
}
|
||||
else if( hypType()=="ImportSource2D" )
|
||||
{
|
||||
StdMeshers::StdMeshers_ImportSource2D_var h =
|
||||
StdMeshers::StdMeshers_ImportSource2D::_narrow( hyp );
|
||||
|
||||
SMESH::string_array_var groupEntries = h->GetSourceFaces();
|
||||
CORBA::Boolean toCopyMesh, toCopyGroups;
|
||||
h->GetCopySourceMesh(toCopyMesh, toCopyGroups);
|
||||
|
||||
item.myName = tr( "SMESH_SOURCE_FACES" ); p.append( item );
|
||||
customWidgets()->append( newObjRefParamWdg( new SMESH_TypeFilter( GROUP_FACE ),
|
||||
groupEntries));
|
||||
|
||||
item.myName = tr( "SMESH_COPY_MESH" ); p.append( item );
|
||||
QCheckBox* aQCheckBox = new QCheckBox(dlg());
|
||||
aQCheckBox->setChecked( toCopyMesh );
|
||||
connect( aQCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( onValueChanged() ));
|
||||
customWidgets()->append( aQCheckBox );
|
||||
|
||||
item.myName = tr( "SMESH_COPY_GROUPS" ); p.append( item );
|
||||
aQCheckBox = new QCheckBox(dlg());
|
||||
aQCheckBox->setChecked( toCopyGroups );
|
||||
aQCheckBox->setEnabled( toCopyMesh );
|
||||
customWidgets()->append( aQCheckBox );
|
||||
}
|
||||
else if( hypType()=="QuadrangleParams" )
|
||||
{
|
||||
StdMeshers::StdMeshers_QuadrangleParams_var h =
|
||||
@ -1129,6 +1236,8 @@ QString StdMeshersGUI_StdHypothesisCreator::hypTypeName( const QString& t ) cons
|
||||
types.insert( "ProjectionSource1D", "PROJECTION_SOURCE_1D" );
|
||||
types.insert( "ProjectionSource2D", "PROJECTION_SOURCE_2D" );
|
||||
types.insert( "ProjectionSource3D", "PROJECTION_SOURCE_3D" );
|
||||
types.insert( "ImportSource1D", "IMPORT_SOURCE_1D" );
|
||||
types.insert( "ImportSource2D", "IMPORT_SOURCE_2D" );
|
||||
types.insert( "NumberOfLayers", "NUMBER_OF_LAYERS" );
|
||||
types.insert( "LayerDistribution", "LAYER_DISTRIBUTION" );
|
||||
types.insert( "NumberOfLayers2D", "NUMBER_OF_LAYERS_2D" );
|
||||
@ -1222,6 +1331,12 @@ bool StdMeshersGUI_StdHypothesisCreator::getParamFromCustomWidget( StdParam & pa
|
||||
param.myValue = w->GetValue();
|
||||
return true;
|
||||
}
|
||||
if ( widget->inherits( "QCheckBox" ))
|
||||
{
|
||||
//const QCheckBox * w = static_cast<const QCheckBox*>( widget );
|
||||
//param.myValue = w->isChecked();
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -1233,7 +1348,8 @@ bool StdMeshersGUI_StdHypothesisCreator::getParamFromCustomWidget( StdParam & pa
|
||||
|
||||
void StdMeshersGUI_StdHypothesisCreator::onReject()
|
||||
{
|
||||
if ( hypType().startsWith("ProjectionSource" ))
|
||||
if ( hypType().startsWith("ProjectionSource" ) ||
|
||||
hypType().startsWith("ImportSource" ))
|
||||
{
|
||||
// Uninstall filters of StdMeshersGUI_ObjectReferenceParamWdg
|
||||
deactivateObjRefParamWdg( customWidgets() );
|
||||
@ -1242,13 +1358,14 @@ void StdMeshersGUI_StdHypothesisCreator::onReject()
|
||||
|
||||
//================================================================================
|
||||
/*!
|
||||
* \brief
|
||||
* \brief Update widgets dependent on paramWidget
|
||||
*/
|
||||
//================================================================================
|
||||
|
||||
void StdMeshersGUI_StdHypothesisCreator::valueChanged( QWidget* paramWidget)
|
||||
{
|
||||
if ( hypType() == "MaxLength" && paramWidget == getWidgetForParam(1) ) {
|
||||
if ( hypType() == "MaxLength" && paramWidget == getWidgetForParam(1) )
|
||||
{
|
||||
getWidgetForParam(0)->setEnabled( !widget< QCheckBox >( 1 )->isChecked() );
|
||||
if ( !getWidgetForParam(0)->isEnabled() ) {
|
||||
StdMeshers::StdMeshers_MaxLength_var h =
|
||||
@ -1256,6 +1373,20 @@ void StdMeshersGUI_StdHypothesisCreator::valueChanged( QWidget* paramWidget)
|
||||
widget< QtxDoubleSpinBox >( 0 )->setValue( h->GetPreestimatedLength() );
|
||||
}
|
||||
}
|
||||
else if ( hypType().startsWith("ImportSource") && paramWidget == getWidgetForParam(1) )
|
||||
{
|
||||
QCheckBox* toCopyMesh = (QCheckBox*) paramWidget;
|
||||
QCheckBox* toCopyGroups = widget< QCheckBox >( 2 );
|
||||
if ( !toCopyMesh->isChecked() )
|
||||
{
|
||||
toCopyGroups->setChecked( false );
|
||||
toCopyGroups->setEnabled( false );
|
||||
}
|
||||
else
|
||||
{
|
||||
toCopyGroups->setEnabled( true );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//================================================================================
|
||||
|
@ -89,6 +89,14 @@
|
||||
<source>ICON_DLG_PROJECTION_SOURCE_3D</source>
|
||||
<translation>mesh_hypo_source_3d.png</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ICON_DLG_IMPORT_SOURCE_1D</source>
|
||||
<translation>mesh_hypo_source_edge.png</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ICON_DLG_IMPORT_SOURCE_2D</source>
|
||||
<translation>mesh_hypo_source_face.png</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ICON_DLG_SEGMENT_LENGTH_AROUND_VERTEX</source>
|
||||
<translation>mesh_hypo_length.png</translation>
|
||||
|
@ -235,6 +235,22 @@
|
||||
<source>SMESH_PROJECTION_SOURCE_3D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_IMPORT_SOURCE_1D_HYPOTHESIS</source>
|
||||
<translation>Source edges</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_IMPORT_SOURCE_1D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_IMPORT_SOURCE_2D_HYPOTHESIS</source>
|
||||
<translation>Source faces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_IMPORT_SOURCE_2D_TITLE</source>
|
||||
<translation>Hypothesis Construction</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_REMOVE_ROW</source>
|
||||
<translation>Remove row</translation>
|
||||
@ -283,14 +299,30 @@
|
||||
<source>SMESH_SOURCE_EDGE</source>
|
||||
<translation>Edge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_SOURCE_EDGES</source>
|
||||
<translation>Groups of Edges</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_SOURCE_FACE</source>
|
||||
<translation>Face</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_SOURCE_FACES</source>
|
||||
<translation>Groups of Faces</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_SOURCE_MESH</source>
|
||||
<translation>Mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_COPY_MESH</source>
|
||||
<translation>To copy mesh</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_TO_COPY_GROUPS</source>
|
||||
<translation>To copy groups</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMESH_SOURCE_VERTEX</source>
|
||||
<translation>Source Vertex</translation>
|
||||
|
Loading…
Reference in New Issue
Block a user