X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FVISUGUI%2FVisuGUI_StreamLinesDlg.cxx;h=904f438dcc34caa4fb152907c73685f6191b9b2c;hb=8dab8b808988e3c3161a60b8c2b1ff54f695fef1;hp=44e46939be11fc39fd7d7f3cf0d12689e2de5f4a;hpb=e0a7fdcd537cce743ae448ed0ce842a8bfeca3a6;p=modules%2Fvisu.git diff --git a/src/VISUGUI/VisuGUI_StreamLinesDlg.cxx b/src/VISUGUI/VisuGUI_StreamLinesDlg.cxx index 44e46939..904f438d 100644 --- a/src/VISUGUI/VisuGUI_StreamLinesDlg.cxx +++ b/src/VISUGUI/VisuGUI_StreamLinesDlg.cxx @@ -9,125 +9,218 @@ // Module : VISU #include "VisuGUI_StreamLinesDlg.h" + +#include "VisuGUI.h" +#include "VisuGUI_Tools.h" + +#include "VISU_Mesh_i.hh" +#include "VISU_Gen_i.hh" +#include "VISU_StreamLines_i.hh" +#include "VISU_StreamLinesPL.hxx" +#include "VISU_Actor.h" + +#include "SalomeApp_Application.h" +#include "SalomeApp_SelectionMgr.h" + +#include "SVTK_ViewWindow.h" + +#include "SUIT_Desktop.h" +#include "SUIT_ResourceMgr.h" +#include "SUIT_MessageBox.h" + +#include "SALOME_ListIO.hxx" + +#include + #include #include #include #include -#include "QAD_Application.h" -#include "QAD_Desktop.h" -#include "QAD_Config.h" -#include "VisuGUI.h" -#include "SALOME_Selection.h" - +#include -extern VisuGUI *visuGUI; +using namespace std; -VisuGUI_StreamLinesDlg::VisuGUI_StreamLinesDlg() - : QDialog( QAD_Application::getDesktop(), "VisuGUI_StreamLinesDlg", false, WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu ) +VisuGUI_StreamLinesDlg::VisuGUI_StreamLinesDlg (SalomeApp_Module* theModule) + : QDialog(VISU::GetDesktop(theModule), "VisuGUI_StreamLinesDlg", false, + WStyle_Customize | WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu), + myVisuGUI(theModule) { - setCaption("Stream lines Preferences"); - setSizeGripEnabled( TRUE ); + myPrs = NULL; + setCaption(tr("DLG_TITLE")); + setSizeGripEnabled(TRUE); - QGridLayout* TopLayout = new QGridLayout( this ); - TopLayout->setSpacing( 6 ); + QVBoxLayout* aBoxLayout = new QVBoxLayout(this); + aBoxLayout->setSpacing( 6 ); + aBoxLayout->setMargin( 11 ); + + QTabWidget* aTabBox = new QTabWidget(this); + + QFrame* aTopBox = new QFrame(this); + aTopBox->setMargin( 11 ); + QGridLayout* TopLayout = new QGridLayout( aTopBox ); + TopLayout->setAlignment( Qt::AlignTop ); + TopLayout->setSpacing( 8 ); TopLayout->setMargin( 11 ); // Source box - QGroupBox* aSourceBox = new QGroupBox(tr("Source"), this); + QGroupBox* aSourceBox = new QGroupBox (tr("SOURCE_GRP"), aTopBox); aSourceBox->setColumnLayout(0, Qt::Vertical); - QGridLayout* aSrcLayout = new QGridLayout( aSourceBox->layout() ); + QGridLayout* aSrcLayout = new QGridLayout( aSourceBox->layout() ); aSrcLayout->setSpacing( 6 ); aSrcLayout->setMargin( 0 ); - - myUseSrcChk = new QCheckBox(tr("Use source presentation"), aSourceBox); - aSrcLayout->addMultiCellWidget(myUseSrcChk, 0, 0, 0, 1); + + QLabel* aTypeLbl = new QLabel( tr( "LBL_SOURCE_TYPE" ), aSourceBox); + aSrcLayout->addWidget(aTypeLbl, 0, 0); + + myUseSrcCombo = new QComboBox(aSourceBox); + const char* aChoise[] = { "None", "Entity", "Family", "Group", "Presentation", 0 }; + myUseSrcCombo->insertStrList(aChoise); + aSrcLayout->addWidget(myUseSrcCombo, 0, 1); mySrcCombo = new QComboBox(aSourceBox); - mySrcCombo->setEnabled(myUseSrcChk->isChecked()); + mySrcCombo->setEnabled((myUseSrcCombo->currentItem() == 0)); + + connect(myUseSrcCombo, SIGNAL(activated(int)), this, SLOT(onSourceTypeChange(int))); // Find All prs obj - QAD_Study* aActiveStudy = VisuGUI::GetActiveStudy(); - SALOME_Selection* aSel = SALOME_Selection::Selection( aActiveStudy->getSelection() ); - if( aSel->IObjectCount() > 0 ) { - Handle(SALOME_InteractiveObject) aIO = aSel->firstIObject(); - if (aIO->hasEntry()){ - SALOMEDS::SObject_var aSObject = VisuGUI::GetStudyDocument()->FindObjectID(aIO->getEntry()); - SALOMEDS::SComponent_var aComp = aSObject->GetFatherComponent(); - SALOMEDS::ChildIterator_var aIter = VisuGUI::GetStudyDocument()->NewChildIterator( aComp ); - - for (aIter->InitEx(true); aIter->More(); aIter->Next() ) { - SALOMEDS::SObject_var aChildSObj = aIter->Value(); - CORBA::Object_var aChildObject = VISU::SObjectToObject( aChildSObj ); - if(!CORBA::is_nil( aChildObject ) ) { - VISU::Prs3d_var aPrsObj = VISU::Prs3d::_narrow( aChildObject ); - if( !CORBA::is_nil( aPrsObj ) ) { - if (aPrsObj->GetType() != VISU::TSTREAMLINES) { - SALOMEDS::GenericAttribute_var anAttr; - if ( aChildSObj->FindAttribute(anAttr, "AttributeName") ) { - SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr); - mySrcCombo->insertItem(QString(aName->Value())); + //SUIT_Study* aActiveStudy = VISU::(myVisuGUI); + _PTR(Study) aActiveStudy = VISU::GetCStudy(VISU::GetAppStudy(myVisuGUI)); + SalomeApp_SelectionMgr* aSel = VISU::GetSelectionMgr(myVisuGUI); + SALOME_ListIO selected; + aSel->selectedObjects(selected); + if (selected.Extent() > 0) { + Handle(SALOME_InteractiveObject) aIO = selected.First(); + if (aIO->hasEntry()) { + _PTR(SObject) aSObject = aActiveStudy->FindObjectID(aIO->getEntry()); + aSObject = aSObject->GetFather(); + aSObject = aSObject->GetFather(); + aSObject = aSObject->GetFather(); + aSObject = aSObject->GetFather(); + mySelectionObj = aSObject; + CORBA::Object_var anObject = VISU::ClientSObjectToObject(mySelectionObj); + VISU::Result_var aResult; + if (CORBA::is_nil(anObject)) { + mySelectionObj = mySelectionObj->GetFather(); + } + _PTR(ChildIterator) aIter = aActiveStudy->NewChildIterator(mySelectionObj); + + for (aIter->InitEx(true); aIter->More(); aIter->Next()) { + _PTR(SObject) aChildSObj = aIter->Value(); + CORBA::Object_var aChildObject = VISU::ClientSObjectToObject(aChildSObj); + + if (!CORBA::is_nil(aChildObject)) { + VISU::Prs3d_var aPrsObj = VISU::Prs3d::_narrow(aChildObject); + if (!CORBA::is_nil(aPrsObj)) { // if this is a Prs object + if ((aPrsObj->GetType() != VISU::TSTREAMLINES) && + (aPrsObj->GetType() != VISU::TMESH)) { + _PTR(GenericAttribute) anAttr; + if (aChildSObj->FindAttribute(anAttr, "AttributeName")) { + _PTR(AttributeName) aName (anAttr); + myPrsLst += QString(aName->Value().c_str()); myPrsList.append(aPrsObj); + continue; + } + } + } + } + // else { // This is not a Prs object + _PTR(GenericAttribute) anAttr; + if (aChildSObj->FindAttribute(anAttr, "AttributeComment")) { + _PTR(AttributeComment) aComment (anAttr); + string aComm = aComment->Value(); + QString strIn (aComm.c_str()); + VISU::Storable::TRestoringMap aMap; + VISU::Storable::StrToMap(strIn,aMap); + bool isExist; + VISU::VISUType aType = (VISU::VISUType)VISU::Storable::FindValue(aMap,"myType",&isExist).toInt(); + if (isExist) { + if ((aType == VISU::TFAMILY) || (aType == VISU::TGROUP) || (aType == VISU::TENTITY)) { + _PTR(GenericAttribute) aNameAttr; + if (aChildSObj->FindAttribute(aNameAttr, "AttributeName")) { + _PTR(AttributeName) aName (aNameAttr); + VISU::Prs3d_var aPrsObj = VISU::Prs3d::_narrow(aChildObject); + switch (aType) { + case VISU::TFAMILY: + myFamilisLst += QString(aName->Value().c_str()); + myFamilyList.append(aPrsObj); + break; + case VISU::TGROUP: + myGroupsLst += QString(aName->Value().c_str()); + myGroupList.append(aPrsObj); + break; + case VISU::TENTITY: + myEntitiesLst += QString(aName->Value().c_str()); + myEntityList.append(aPrsObj); + break; + } } } } } } } - } + } - connect(myUseSrcChk, SIGNAL(toggled(bool)), mySrcCombo, SLOT(setEnabled(bool))); + // connect(myUseSrcChk, SIGNAL(toggled(bool)), mySrcCombo, SLOT(setEnabled(bool))); aSrcLayout->addMultiCellWidget(mySrcCombo, 1, 1, 0, 1); - QLabel* aPercentLbl = new QLabel( tr( "Used points (0..1)" ), aSourceBox); + QLabel* aPercentLbl = new QLabel (tr("LBL_USED_POINTS"), aSourceBox); aSrcLayout->addWidget(aPercentLbl, 2, 0); - myPntPercent = new QAD_SpinBoxDbl( aSourceBox, 0, 1, 0.1); + myPntPercent = new QtxDblSpinBox( 0, 1, 0.1, aSourceBox ); aSrcLayout->addWidget(myPntPercent, 2, 1); TopLayout->addMultiCellWidget(aSourceBox, 0, 0, 0, 1); - - QLabel* aStepLenLbl = new QLabel( tr( "Step Length" ), this); + QLabel* aStepLenLbl = new QLabel (tr("LBL_STEP_LENGTH"), aTopBox); TopLayout->addWidget(aStepLenLbl, 1, 0); - myStepLen = new QAD_SpinBoxDbl( this, DBL_MIN, DBL_MAX, 0.1); + myStepLen = new QtxDblSpinBox( DBL_MIN, DBL_MAX, 0.1, aTopBox ); myStepLen->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); TopLayout->addWidget(myStepLen, 1, 1); + connect(myStepLen, SIGNAL(valueChanged(double)), this, SLOT(StepLengthChanged(double))); - QLabel* aIntegStepLenLbl = new QLabel( tr( "Integration Step" ), this); + QLabel* aIntegStepLenLbl = new QLabel (tr("LBL_INTEGRATION_STEP"), aTopBox); TopLayout->addWidget(aIntegStepLenLbl, 2, 0); - myIntegStepLen = new QAD_SpinBoxDbl( this, DBL_MIN, DBL_MAX, 0.1); + myIntegStepLen = new QtxDblSpinBox( DBL_MIN, DBL_MAX, 0.1, aTopBox ); myIntegStepLen->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); TopLayout->addWidget(myIntegStepLen, 2, 1); - - QLabel* aPropagationLbl = new QLabel( tr( "Propagation Time" ), this); + connect(myIntegStepLen, SIGNAL(valueChanged(double)), this, SLOT(IntegrationStepChanged(double))); + + QLabel* aPropagationLbl = new QLabel (tr("LBL_PROPAGATION_TIME"), aTopBox); TopLayout->addWidget(aPropagationLbl, 3, 0); - myPropTime = new QAD_SpinBoxDbl( this, DBL_MIN, DBL_MAX, 1); + myPropTime = new QtxDblSpinBox( DBL_MIN, DBL_MAX, 1, aTopBox ); myPropTime->setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Fixed ) ); TopLayout->addWidget(myPropTime, 3, 1); - connect(myPropTime, SIGNAL(valueChanged(double)), this, SLOT(PropagationTimeChanged(double))); - - QLabel* aDirLbl = new QLabel( tr( "Direction" ), this); + + QLabel* aDirLbl = new QLabel (tr("LBL_DIRECTION"),aTopBox); TopLayout->addWidget(aDirLbl, 4, 0); - myDirCombo = new QComboBox(this); + myDirCombo = new QComboBox(aTopBox); myDirCombo->insertItem("Forward"); myDirCombo->insertItem("Backward"); myDirCombo->insertItem("Both"); TopLayout->addWidget(myDirCombo, 4, 1); - myUseScalar = new QCheckBox( tr( "Magnitude coloring" ), this, "UseMagn" ); + myUseScalar = new QCheckBox (tr("MAGNITUDE_COLORING_CHK"), aTopBox, "UseMagn"); connect( myUseScalar, SIGNAL( clicked() ), this, SLOT( enableSetColor() ) ); TopLayout->addWidget(myUseScalar, 5, 0); - SelColor = new QPushButton( tr( "Use Color" ), this, "SelColor" ); + SelColor = new QPushButton (tr("USE_COLOR_BTN"), aTopBox, "SelColor"); connect( SelColor, SIGNAL( clicked() ), this, SLOT( setVColor() ) ); TopLayout->addWidget( SelColor, 5, 1); - + + aTabBox->addTab(aTopBox, "Stream Lines"); + myScalarPane = new VisuGUI_ScalarBarPane(this, false); + myScalarPane->setMargin( 5 ); + aTabBox->addTab(myScalarPane, "Scalar Bar"); + + aBoxLayout->addWidget(aTabBox); + QGroupBox* aGroupButtons = new QGroupBox( this, "GroupButtons" ); aGroupButtons->setColumnLayout(0, Qt::Vertical ); aGroupButtons->layout()->setSpacing( 0 ); aGroupButtons->layout()->setMargin( 0 ); - + QGridLayout* aGroupButtonsLayout = new QGridLayout( aGroupButtons->layout() ); aGroupButtonsLayout->setAlignment( Qt::AlignTop ); aGroupButtonsLayout->setSpacing( 6 ); @@ -144,16 +237,40 @@ VisuGUI_StreamLinesDlg::VisuGUI_StreamLinesDlg() aGroupButtonsLayout->addWidget( aCancelBtn, 0, 2 ); connect( aOkBtn, SIGNAL( clicked() ), this, SLOT( accept() ) ); connect( aCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) ); - TopLayout->addMultiCellWidget( aGroupButtons, 6, 6, 0, 1 ); + + aBoxLayout->addWidget(aGroupButtons); + enableSetColor(); } -void VisuGUI_StreamLinesDlg::initFromPrsObject(VISU::StreamLines_i* thePrs) { - myStepLen->setValue(thePrs->GetStepLength()); - myIntegStepLen->setValue(thePrs->GetIntegrationStep()); - myPropTime->setValue(thePrs->GetPropagationTime()); +void VisuGUI_StreamLinesDlg::initFromPrsObject (VISU::StreamLines_i* thePrs) +{ + myScalarPane->initFromPrsObject(thePrs); + + myPrs = thePrs; + static int aNbOfSteps = 30; + VISU_StreamLinesPL* aStreamLinesPL = thePrs->GetStreamLinesPL(); + float aMin, aMax; + aMin = aStreamLinesPL->GetMinPropagationTime(); + aMax = aStreamLinesPL->GetMaxPropagationTime(); + myPropTime->setRange(aMin,aMax); + myPropTime->setValue(aStreamLinesPL->GetPropagationTime()); + myPropTime->setLineStep((aMax-aMin)/aNbOfSteps); + + aMin = aStreamLinesPL->GetMinStepLength(); + aMax = aStreamLinesPL->GetMaxStepLength(); + myStepLen->setRange(aMin,aMax); + myStepLen->setValue(aStreamLinesPL->GetStepLength()); + myStepLen->setLineStep((aMax-aMin)/aNbOfSteps); + + aMin = aStreamLinesPL->GetMinIntegrationStep(); + aMax = aStreamLinesPL->GetMaxIntegrationStep(); + myIntegStepLen->setRange(aMin,aMax); + myIntegStepLen->setValue(aStreamLinesPL->GetIntegrationStep()); + myIntegStepLen->setLineStep((aMax-aMin)/aNbOfSteps); + switch (thePrs->GetDirection()) { case VISU::StreamLines::FORWARD: myDirCombo->setCurrentItem(0); @@ -164,62 +281,106 @@ void VisuGUI_StreamLinesDlg::initFromPrsObject(VISU::StreamLines_i* thePrs) { case VISU::StreamLines::BOTH: myDirCombo->setCurrentItem(2); } - myUseScalar->setChecked(thePrs->isColored()); + myUseScalar->setChecked(thePrs->IsColored()); myPntPercent->setValue(thePrs->GetUsedPoints()); - myUseSrcChk->setChecked(false); + mySrcCombo->setEnabled(false); QString aSrcEntry = thePrs->GetSourceEntry(); - if (!aSrcEntry.isEmpty()) { - for (int i = 0; i < myPrsList.count(); i++) { - VISU::Prs3d_i* aPrs = dynamic_cast(VISU::GetServant(myPrsList[i])); - if (aSrcEntry == aPrs->GetEntry()) { - myUseSrcChk->setChecked(true); - mySrcCombo->setCurrentItem(i); - break; - } - } - } SALOMEDS::Color anOldColor = thePrs->GetColor(); QColor aColor = QColor(int(255*anOldColor.R),int(255*anOldColor.G),int(255*anOldColor.B)); setColor(aColor); enableSetColor(); - myIntegStepLen->setMaxValue(thePrs->GetMaxIntegrationStep()); - myIntegStepLen->setMinValue(thePrs->GetMinIntegrationStep()); - myStepLen->setMaxValue(myPropTime->value()); - myStepLen->setMinValue(myPropTime->value()/10000.); +#define INITPRS(PRSLIST, PRSNUM) \ + for (int i = 0; i < PRSLIST.count(); i++) { \ + VISU::Prs3d_i* aPrs = dynamic_cast(VISU::GetServant(PRSLIST[i]).in()); \ + if (aPrs == NULL) continue; \ + if (aSrcEntry == aPrs->GetEntry()) { \ + onSourceTypeChange(PRSNUM); \ + myUseSrcCombo->setCurrentItem(PRSNUM); \ + mySrcCombo->setEnabled(true); \ + mySrcCombo->setCurrentItem(i); \ + return; \ + } \ + } + + if (!aSrcEntry.isEmpty()) { + INITPRS(myEntityList, 1); + INITPRS(myFamilyList, 2); + INITPRS(myGroupList, 3); + INITPRS(myPrsList, 4); + } +#undef INITPRS } +int VisuGUI_StreamLinesDlg::storeToPrsObject (VISU::StreamLines_i* thePrs) +{ + bool isAccepted = myScalarPane->storeToPrsObject(thePrs); + if (isAccepted) { + thePrs->ShowColored(myUseScalar->isChecked()); + if (!thePrs->IsColored()) { + SALOMEDS::Color aColor; + aColor.R = myColor.red()/255.; + aColor.G = myColor.green()/255.; + aColor.B = myColor.blue()/255.; + thePrs->SetColor(aColor); + } + VISU::StreamLines::Direction aDirection = VISU::StreamLines::BOTH; + switch (myDirCombo->currentItem()) { + case 0: + aDirection = VISU::StreamLines::FORWARD; + break; + case 1: + aDirection = VISU::StreamLines::BACKWARD; + break; + case 2: + aDirection = VISU::StreamLines::BOTH; + } -void VisuGUI_StreamLinesDlg::storeToPrsObject(VISU::StreamLines_i* thePrs) { - thePrs->SetStepLength(myStepLen->value()); - thePrs->SetIntegrationStep(myIntegStepLen->value()); - thePrs->SetPropagationTime(myPropTime->value()); - switch (myDirCombo->currentItem()) { - case 0: - thePrs->SetDirection(VISU::StreamLines::FORWARD); - break; - case 1: - thePrs->SetDirection(VISU::StreamLines::BACKWARD); - break; - case 2: - thePrs->SetDirection(VISU::StreamLines::BOTH); - } - thePrs->setColored(myUseScalar->isChecked()); - if(!thePrs->isColored()){ - SALOMEDS::Color aColor; - aColor.R = myColor.red()/255.; - aColor.G = myColor.green()/255.; - aColor.B = myColor.blue()/255.; - thePrs->SetColor(aColor); + VISU::Prs3d_var aPrs; + int aSrcSelection = myUseSrcCombo->currentItem(); + int aSrcItem = (mySrcCombo->count() > 0)? mySrcCombo->currentItem() : -1; + if ((aSrcSelection > 0) && (aSrcItem > -1)) { + VISU::VISUType aType; + QString aName; + switch (aSrcSelection) { + case 1: // Entity + aPrs = myEntityList[aSrcItem]; + aType = VISU::TENTITY; + aName = myEntitiesLst[aSrcItem]; + break; + case 2: // Family + aPrs = myFamilyList[aSrcItem]; + aType = VISU::TFAMILY; + aName = myFamilisLst[aSrcItem]; + break; + case 3: // Group + aPrs = myGroupList[aSrcItem]; + aType = VISU::TGROUP; + aName = myGroupsLst[aSrcItem]; + break; + case 4: // Presentation + aPrs = myPrsList[aSrcItem]; + break; + } + if (CORBA::is_nil(aPrs) && aSrcSelection != 4) { + aPrs = createMesh(aType, aName); + } + } + isAccepted = thePrs->SetParams(myIntegStepLen->value(), + myPropTime->value(), + myStepLen->value(), + aPrs, + myPntPercent->value(), + aDirection); } - if (myUseSrcChk->isChecked() && (myPrsList.count() > 0)) { - thePrs->SetSource(myPrsList[mySrcCombo->currentItem()]); - } else - thePrs->SetSource(VISU::Prs3d::_nil()); - thePrs->SetUsedPoints(myPntPercent->value()); + //if (!isAccepted) + // SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("WRN_VISU"), + // tr("ERR_CANT_BUILD_PRESENTATION"), + // tr("BUT_OK")); + return isAccepted; } /*! @@ -260,8 +421,125 @@ void VisuGUI_StreamLinesDlg::enableSetColor() SelColor->setEnabled(!myUseScalar->isChecked() ); } +void VisuGUI_StreamLinesDlg::StepLengthChanged(double theValue){ +} + +void VisuGUI_StreamLinesDlg::IntegrationStepChanged(double theValue) { +} + void VisuGUI_StreamLinesDlg::PropagationTimeChanged(double theValue) { myStepLen->setMaxValue(theValue); - myStepLen->setMinValue(theValue/1000000.); } +void VisuGUI_StreamLinesDlg::onSourceTypeChange(int theIndex) { + mySrcCombo->clear(); + if (theIndex == 0) { + mySrcCombo->setEnabled(false); + return; + } else + mySrcCombo->setEnabled(true); + + switch(theIndex) { + case 1: // Entity + mySrcCombo->insertStringList(myEntitiesLst); + return; + case 2: // Family + mySrcCombo->insertStringList(myFamilisLst); + return; + case 3: // Group + mySrcCombo->insertStringList(myGroupsLst); + return; + case 4: // Presentation + mySrcCombo->insertStringList(myPrsLst); + return; + } +} + + +VISU::Mesh_ptr VisuGUI_StreamLinesDlg::createMesh (VISU::VISUType theType, QString theName) +{ + return VISU::Mesh::_nil(); +/* + CORBA::Object_var anObject = VISU::ClientSObjectToObject(mySelectionObj); + VISU::Result_var aResult; + if (!CORBA::is_nil(anObject)) { + aResult = VISU::Result::_narrow(anObject); + } + if (CORBA::is_nil(aResult)) { + SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("VISU_WARNING"), + tr("WRN_NO_AVAILABLE_DATA"), + tr("BUT_OK")); + return VISU::Mesh::_nil(); + } + SALOMEDSClient_ChildIterator* aIter = VisuGUI::GetStudyDocument()->NewChildIterator( mySelectionObj ); + VISU::Storable::TRestoringMap aMap; + + for (aIter->InitEx(true); aIter->More(); aIter->Next() ) { + SALOMEDSClient_SObject* aChildSObj = aIter->Value(); + SALOMEDSClient_GenericAttribute* anAttr; + if (aChildSObj->FindAttribute(anAttr, "AttributeComment")) { + SALOMEDSClient_AttributeComment* aComment = dynamic_cast( anAttr ); + CORBA::String_var aComm = aComment->Value().c_str(); + QString strIn(aComm.in()); + aMap.clear(); + VISU::Storable::StrToMap(strIn,aMap); + bool isExist; + VISU::VISUType aType = (VISU::VISUType)VISU::Storable::FindValue(aMap,"myType",&isExist).toInt(); + if (isExist) { + if (aType != theType) continue; + + SALOMEDSClient_GenericAttribute* aNameAttr; + if ( aChildSObj->FindAttribute(aNameAttr, "AttributeName") ) { + SALOMEDSClient_AttributeName* aName = dynamic_cast(aNameAttr); + if (QString(aName->Value()) == theName) break; //use current map + } + } + } + } + VISU::Mesh_var aMesh; + QString aMeshName = VISU::Storable::FindValue(aMap,"myMeshName"); + switch (theType) { + case VISU::TFAMILY: + { + VISU::Entity anEntity = (VISU::Entity)VISU::Storable::FindValue(aMap,"myEntityId").toInt(); + aMesh = VisuGUI::GetVisuGen()->FamilyMeshOnEntity(aResult,aMeshName.latin1(),anEntity,theName.latin1()); + } + break; + case VISU::TGROUP: + { + aMesh = VisuGUI::GetVisuGen()->GroupMesh(aResult,aMeshName.latin1(), theName.latin1()); + } + break; + case VISU::TENTITY: + { + VISU::Entity anEntity = (VISU::Entity)VISU::Storable::FindValue(aMap,"myId").toInt(); + aMesh = VisuGUI::GetVisuGen()->MeshOnEntity(aResult,aMeshName.latin1(),anEntity); + } + break; + } + if(!CORBA::is_nil(aMesh)){ // Create Actor + VISU::Mesh_i* pPresent = dynamic_cast(VISU::GetServant(aMesh).in()); + if(SVTK_ViewWindow* vf = VISU::GetViewWindow()){ + try{ + pPresent->SetPresentationType(VISU::POINT); + VISU_Actor *anActor = pPresent->CreateActor(); + vf->AddActor(anActor); + }catch(...){ + SUIT_MessageBox::warn1 ( VisuGUI::application()->desktop(), tr("VISU_WARNING"), + tr("ERR_CANT_CREATE_ACTOR"), + tr("BUT_OK") ); + } + } + } else { + SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("VISU_WARNING"), + tr("ERR_CANT_BUILD_PRESENTATION"), + tr("BUT_OK")); + } + return aMesh._retn(); +*/ +} + +void VisuGUI_StreamLinesDlg::accept() { + if (myScalarPane->check()) + QDialog::accept(); +}