#include "SMESHGUI_MeshUtils.h"
#include "SMESHGUI_FilterUtils.h"
#include "SMESHGUI_SpinBox.h"
+#include "SMESHGUI_MeshEditPreview.h"
#include <SMESH_Actor.h>
#include <SMESH_TypeFilter.hxx>
::SMESHGUI_MultiEditDlg(SMESHGUI* theModule,
const int theMode,
const bool the3d2d):
- QDialog(SMESH::GetDesktop(theModule)),
+ SMESHGUI_PreviewDlg(theModule),
mySelector(SMESH::GetViewWindow(theModule)->GetSelector()),
mySelectionMgr(SMESH::GetSelectionMgr(theModule)),
mySMESHGUI(theModule)
updateButtons();
}
+ obj._retn(); // else myMesh is deleted by ~obj
myBusy = false;
return aResult;
{
setWindowTitle(tr("CAPTION"));
+ //Preview check box
+ myPreviewCheckBox = new QCheckBox(tr("PREVIEW"), mySelGrp);
+ QGridLayout* aLay = (QGridLayout*)(mySelGrp->layout());
+ aLay->addWidget(myPreviewCheckBox, aLay->rowCount(), 0, 1, aLay->columnCount());
+
myComboBoxFunctor->setEnabled(true);
myComboBoxFunctor->addItem(tr("AREA_ELEMENTS"));
myComboBoxFunctor->addItem(tr("WARP_ELEMENTS")); // for quadrangles only
((QVBoxLayout*)(myCriterionGrp->layout()))->addWidget(aMaxAngleGrp);
myCriterionGrp->show();
+ connect(myComboBoxFunctor, SIGNAL(activated(int)), this, SLOT(toDisplaySimulation()));
+ connect(myMaxAngleSpin, SIGNAL(valueChanged(int)), this, SLOT(toDisplaySimulation()));
+ connect(this, SIGNAL(ListContensChanged()), this, SLOT(toDisplaySimulation()));
+ connectPreviewControl(); //To Connect preview check box
+
+ myPreviewCheckBox->setChecked(false);
+ onDisplaySimulation(false);
+
myHelpFileName = "uniting_set_of_triangles_page.html";
}
ok = theEditor->TriToQuadObject(obj, aCriterion, aMaxAngle);
return ok;
}
-
+
+void SMESHGUI_UnionOfTrianglesDlg::onDisplaySimulation( bool toDisplayPreview )
+{
+ if ( myPreviewCheckBox->isChecked() && toDisplayPreview ) {
+ if ( isValid( true ) ) {
+ try{
+ SUIT_OverrideCursor aWaitCursor;
+ // get Ids of elements
+ SMESH::SMESH_IDSource_var obj;
+ SMESH::long_array_var anElemIds = getIds( obj );
+
+ SMESH::NumericalFunctor_var aCriterion = getNumericalFunctor();
+ SMESH::SMESH_MeshEditor_var aMeshEditor = myMesh->GetMeshEditPreviewer();
+
+ double aMaxAngle = myMaxAngleSpin->GetValue() * M_PI / 180.0;
+
+ if ( CORBA::is_nil( obj ) )
+ aMeshEditor->TriToQuad( anElemIds.inout(), aCriterion, aMaxAngle );
+ else
+ aMeshEditor->TriToQuadObject( obj, aCriterion, aMaxAngle );
+
+ SMESH::MeshPreviewStruct_var aMeshPreviewStruct = aMeshEditor->GetPreviewData();
+
+ vtkProperty* aProp = vtkProperty::New();
+ aProp->SetRepresentationToWireframe();
+ aProp->SetColor( 250, 0, 250 );
+ aProp->SetLineWidth( SMESH::GetFloat( "SMESH:element_width", 1 ) + 3 );
+ mySimulation->GetActor()->SetProperty( aProp );
+ aProp->Delete();
+
+ mySimulation->SetData( aMeshPreviewStruct._retn() );
+ } catch ( ... ) {
+ hidePreview();
+ }
+ } else {
+ hidePreview();
+ }
+ } else {
+ hidePreview();
+ }
+}
/*!
* Class : SMESHGUI_CuttingOfQuadsDlg
{
if ( hasObj )
return theEditor->QuadTo4Tri( obj ), true;
- SMESH::SMESH_IDSource_var elems = theEditor->MakeIDSource( theIds, SMESH::FACE );
+ SMESH::SMESH_IDSource_wrap elems = theEditor->MakeIDSource( theIds, SMESH::FACE );
theEditor->QuadTo4Tri( elems );
return true;
}
if (myPreviewActor != 0)
erasePreview();
+ SUIT_OverrideCursor aWaitCursor;
// get Ids of elements
SMESH::SMESH_IDSource_var obj;
SMESH::long_array_var anElemIds = getIds(obj);
return;
}
+ if ( anElemIds->length() == 0 ) {
+ anElemIds = obj->GetIDs();
+ }
+
//Create grid
vtkUnstructuredGrid* aGrid = vtkUnstructuredGrid::New();
const SMESH::long_array& theIds,
SMESH::SMESH_IDSource_ptr theObj)
{
- SMESH::SMESH_IDSource_var obj = theObj;
+ SMESH::SMESH_IDSource_wrap obj = theObj;
if ( CORBA::is_nil( obj ))
obj = theEditor->MakeIDSource( theIds, myEntityType ? SMESH::VOLUME : SMESH::FACE );
+ else
+ obj->Register();
try {
theEditor->SplitVolumesIntoTetra( obj, myGroupChoice->checkedId()+1 );
}
SalomeApp_Tools::QtCatchCorbaException( S_ex );
return false;
}
+ catch(...) {
+ return false;
+ }
return true;
}