// Module : VISU
#include "VisuGUI_StreamLinesDlg.h"
-#include "VISU_StreamLines_i.hh"
+
+#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 "QAD_Application.h"
-#include "QAD_Desktop.h"
-#include "QAD_Config.h"
-#include "QAD_MessageBox.h"
-#include "VisuGUI.h"
-#include "SALOME_Selection.h"
-#include "VTKViewer_ViewFrame.h"
+#include "SalomeApp_Application.h"
+#include "LightApp_SelectionMgr.h"
+
+#include "SVTK_ViewWindow.h"
+
+#include "SUIT_Desktop.h"
+#include "SUIT_ResourceMgr.h"
+#include "SUIT_MessageBox.h"
+
+#include "SALOME_ListIO.hxx"
+
+#include <SALOMEDSClient_SObject.hxx>
#include <limits.h>
#include <qlayout.h>
#include <qgroupbox.h>
#include <qcolordialog.h>
+#include <qtabwidget.h>
using namespace std;
-extern VisuGUI *visuGUI;
-
-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);
+
+ QVBoxLayout* aBoxLayout = new QVBoxLayout(this);
+ aBoxLayout->setSpacing( 6 );
+ aBoxLayout->setMargin( 11 );
- QGridLayout* TopLayout = new QGridLayout( this );
- TopLayout->setSpacing( 6 );
+ 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 );
-
+
QLabel* aTypeLbl = new QLabel( tr( "LBL_SOURCE_TYPE" ), aSourceBox);
aSrcLayout->addWidget(aTypeLbl, 0, 0);
mySrcCombo = new QComboBox(aSourceBox);
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());
- aSObject = aSObject->GetFather();
- aSObject = aSObject->GetFather();
+ // Find all fields and time stamps on it
+ _PTR(Study) aActiveStudy = VISU::GetCStudy(VISU::GetAppStudy(myVisuGUI));
+ LightApp_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());
+
+ _PTR(GenericAttribute) anTmpAttr;
+ if (aSObject->FindAttribute(anTmpAttr, "AttributeComment")) {
+ _PTR(AttributeComment) aTmpComment (anTmpAttr);
+ string aTmpComm = aTmpComment->Value();
+ QString aTmpstrIn (aTmpComm.c_str());
+ VISU::Storable::TRestoringMap aTmpaMap;
+ VISU::Storable::StrToMap(aTmpstrIn,aTmpaMap);
+ bool aTmpisExist;
+ VISU::VISUType aTmpType =
+ (VISU::VISUType)VISU::Storable::FindValue(aTmpaMap,"myType",&aTmpisExist).toInt();
+ switch (aTmpType) {
+ case VISU::TTIMESTAMP:
+ {
+ aSObject = aSObject->GetFather();
+ aSObject = aSObject->GetFather();
+ break;
+ }
+ case VISU::TFIELD:
+ {
+ _PTR(SObject) newSObject;
+ if(aSObject->ReferencedObject(newSObject)) aSObject = newSObject;
+ aSObject = aSObject->GetFather();
+ break;
+ }
+ case VISU::TANIMATION:
+ {
+ _PTR(ChildIterator) aTmpIter = aActiveStudy->NewChildIterator(aSObject);
+ for (aTmpIter->InitEx(true); aTmpIter->More(); aTmpIter->Next()) {
+ _PTR(SObject) aTmpChildSObj = aTmpIter->Value();
+ _PTR(SObject) newSObject;
+ if(aTmpChildSObj->ReferencedObject(newSObject)){
+ aSObject = newSObject;
+ aSObject->GetFather();
+ break;
+ }
+ }
+ break;
+ }
+ }
+ }
+
aSObject = aSObject->GetFather();
aSObject = aSObject->GetFather();
+
mySelectionObj = aSObject;
- CORBA::Object_var anObject = VISU::SObjectToObject(mySelectionObj);
- VISU::Result_var aResult;
+ CORBA::Object_var anObject = VISU::ClientSObjectToObject(mySelectionObj);
if (CORBA::is_nil(anObject)) {
mySelectionObj = mySelectionObj->GetFather();
}
- SALOMEDS::ChildIterator_var aIter = VisuGUI::GetStudyDocument()->NewChildIterator( mySelectionObj );
-
- 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 this is a Prs object
- if ((aPrsObj->GetType() != VISU::TSTREAMLINES) &&
- (aPrsObj->GetType() != VISU::TMESH)) {
- SALOMEDS::GenericAttribute_var anAttr;
- if ( aChildSObj->FindAttribute(anAttr, "AttributeName") ) {
- SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(anAttr);
- myPrsLst += QString(aName->Value());
- myPrsList.append(aPrsObj);
- continue;
- }
- }
- }
- }
- // else { // This is not a Prs object
- SALOMEDS::GenericAttribute_var anAttr;
- if (aChildSObj->FindAttribute(anAttr, "AttributeComment")) {
- SALOMEDS::AttributeComment_var aComment = SALOMEDS::AttributeComment::_narrow(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)) {
- SALOMEDS::GenericAttribute_var aNameAttr;
- if ( aChildSObj->FindAttribute(aNameAttr, "AttributeName") ) {
- SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(aNameAttr);
- VISU::Prs3d_var aPrsObj = VISU::Prs3d::_narrow( aChildObject );
- switch(aType) {
- case VISU::TFAMILY:
- myFamilisLst += QString(aName->Value());
- myFamilyList.append(aPrsObj);
- break;
- case VISU::TGROUP:
- myGroupsLst += QString(aName->Value());
- myGroupList.append(aPrsObj);
- break;
- case VISU::TENTITY:
- myEntitiesLst += QString(aName->Value());
- myEntityList.append(aPrsObj);
- break;
- }
- }
- }
- }
- }
+ }
+ }
+
+ if (mySelectionObj) {
+ _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;
+ }
+ }
+ }
+ }
+
+ _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)));
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);
connect(myIntegStepLen, SIGNAL(valueChanged(double)), this, SLOT(IntegrationStepChanged(double)));
-
- QLabel* aPropagationLbl = new QLabel( tr( "Propagation Time" ), this);
+
+ 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 );
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)
+{
+ 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);
-void VisuGUI_StreamLinesDlg::initFromPrsObject(VISU::StreamLines_i* thePrs) {
- myPropTime->setValue(thePrs->GetPropagationTime());
-
- myStepLen->setRange(VISU_StreamLinesPL::GetMinStepLength(thePrs->GetIntegrationStep()),
- VISU_StreamLinesPL::GetMaxStepLength(thePrs->GetPropagationTime()));
- myStepLen->setValue(thePrs->GetStepLength());
-
- myIntegStepLen->setRange(thePrs->GetMinIntegrationStep(),thePrs->GetMaxIntegrationStep());
- myIntegStepLen->setValue(thePrs->GetIntegrationStep());
-
switch (thePrs->GetDirection()) {
case VISU::StreamLines::FORWARD:
myDirCombo->setCurrentItem(0);
}
myUseScalar->setChecked(thePrs->IsColored());
myPntPercent->setValue(thePrs->GetUsedPoints());
-
+
mySrcCombo->setEnabled(false);
QString aSrcEntry = thePrs->GetSourceEntry();
-
+
SALOMEDS::Color anOldColor = thePrs->GetColor();
QColor aColor = QColor(int(255*anOldColor.R),int(255*anOldColor.G),int(255*anOldColor.B));
setColor(aColor);
enableSetColor();
-
+
#define INITPRS(PRSLIST, PRSNUM) \
for (int i = 0; i < PRSLIST.count(); i++) { \
- VISU::Prs3d_i* aPrs = dynamic_cast<VISU::Prs3d_i*>(VISU::GetServant(PRSLIST[i])); \
+ VISU::Prs3d_i* aPrs = dynamic_cast<VISU::Prs3d_i*>(VISU::GetServant(PRSLIST[i]).in()); \
if (aPrs == NULL) continue; \
if (aSrcEntry == aPrs->GetEntry()) { \
onSourceTypeChange(PRSNUM); \
return; \
} \
}
-
+
if (!aSrcEntry.isEmpty()) {
INITPRS(myEntityList, 1);
INITPRS(myFamilyList, 2);
- INITPRS(myGroupList, 3);
+ 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);
+ }
-
-void VisuGUI_StreamLinesDlg::storeToPrsObject(VISU::StreamLines_i* thePrs) {
- //Order of setting of the values are important
- thePrs->SetIntegrationStep(myIntegStepLen->value());
- thePrs->SetPropagationTime(myPropTime->value());
- thePrs->SetStepLength(myStepLen->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->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);
- }
- thePrs->SetUsedPoints(myPntPercent->value());
-
- int aSrcSelection = myUseSrcCombo->currentItem();
- int aSrcItem = (mySrcCombo->count() > 0)? mySrcCombo->currentItem() : -1;
- if ((aSrcSelection > 0) && (aSrcItem > -1)) {
- VISU::Prs3d_var aPrs;
- VISU::VISUType aType;
- QString aName;
- switch (aSrcSelection){
- case 1: // Entity
- aPrs = myEntityList[aSrcItem];
- aType = VISU::TENTITY;
- aName = myEntitiesLst[aSrcItem];
+ VISU::StreamLines::Direction aDirection = VISU::StreamLines::BOTH;
+ switch (myDirCombo->currentItem()) {
+ case 0:
+ aDirection = VISU::StreamLines::FORWARD;
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];
+ case 1:
+ aDirection = VISU::StreamLines::BACKWARD;
break;
+ case 2:
+ aDirection = VISU::StreamLines::BOTH;
}
- if (!CORBA::is_nil( aPrs )) {
- thePrs->SetSource(aPrs);
- } else if (aSrcSelection == 4) {
- thePrs->SetSource(VISU::Prs3d::_nil());
- } else { // Create Mesh presentation
- thePrs->SetSource(createMesh(aType, aName));
+
+ 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);
+ }
}
- } else
- thePrs->SetSource(VISU::Prs3d::_nil());
+ isAccepted = thePrs->SetParams(myIntegStepLen->value(),
+ myPropTime->value(),
+ myStepLen->value(),
+ aPrs,
+ myPntPercent->value(),
+ aDirection);
+ }
+ //if (!isAccepted)
+ // SUIT_MessageBox::warn1(VisuGUI::application()->desktop(), tr("WRN_VISU"),
+ // tr("ERR_CANT_BUILD_PRESENTATION"),
+ // tr("BUT_OK"));
+ return isAccepted;
}
/*!
}
void VisuGUI_StreamLinesDlg::IntegrationStepChanged(double theValue) {
- PropagationTimeChanged(myPropTime->value());
}
void VisuGUI_StreamLinesDlg::PropagationTimeChanged(double theValue) {
- myStepLen->setMinValue(VISU_StreamLinesPL::GetMinStepLength(myIntegStepLen->value()));
- myStepLen->setMaxValue(VISU_StreamLinesPL::GetMaxStepLength(myPropTime->value()));
+ myStepLen->setMaxValue(theValue);
}
void VisuGUI_StreamLinesDlg::onSourceTypeChange(int theIndex) {
}
-VISU::Mesh_var VisuGUI_StreamLinesDlg::createMesh(VISU::VISUType theType, QString theName) {
- CORBA::Object_var anObject = VISU::SObjectToObject(mySelectionObj);
+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)) {
- QAD_MessageBox::warn1(QAD_Application::getDesktop(), tr ("VISU_WARNING"),
- tr ("WRN_NO_AVAILABLE_DATA"),
- tr ("VISU_BUT_OK"));
+ 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();
}
- SALOMEDS::ChildIterator_var aIter = VisuGUI::GetStudyDocument()->NewChildIterator( mySelectionObj );
+ SALOMEDSClient_ChildIterator* aIter = VisuGUI::GetStudyDocument()->NewChildIterator( mySelectionObj );
VISU::Storable::TRestoringMap aMap;
for (aIter->InitEx(true); aIter->More(); aIter->Next() ) {
- SALOMEDS::SObject_var aChildSObj = aIter->Value();
- SALOMEDS::GenericAttribute_var anAttr;
+ SALOMEDSClient_SObject* aChildSObj = aIter->Value();
+ SALOMEDSClient_GenericAttribute* anAttr;
if (aChildSObj->FindAttribute(anAttr, "AttributeComment")) {
- SALOMEDS::AttributeComment_var aComment = SALOMEDS::AttributeComment::_narrow(anAttr);
- CORBA::String_var aComm = aComment->Value();
+ SALOMEDSClient_AttributeComment* aComment = dynamic_cast<SALOMEDSClient_AttributeComment*>( anAttr );
+ CORBA::String_var aComm = aComment->Value().c_str();
QString strIn(aComm.in());
aMap.clear();
VISU::Storable::StrToMap(strIn,aMap);
if (isExist) {
if (aType != theType) continue;
- SALOMEDS::GenericAttribute_var aNameAttr;
- if ( aChildSObj->FindAttribute(aNameAttr, "AttributeName") ) {
- SALOMEDS::AttributeName_var aName = SALOMEDS::AttributeName::_narrow(aNameAttr);
+ SALOMEDSClient_GenericAttribute* aNameAttr;
+ if ( aChildSObj->FindAttribute(aNameAttr, "AttributeName") ) {
+ SALOMEDSClient_AttributeName* aName = dynamic_cast<SALOMEDSClient_AttributeName*>(aNameAttr);
if (QString(aName->Value()) == theName) break; //use current map
}
}
}
}
- CORBA::Object_var aMesh;
+ VISU::Mesh_var aMesh;
QString aMeshName = VISU::Storable::FindValue(aMap,"myMeshName");
switch (theType) {
- case VISU::TFAMILY:
+ 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;
}
- VISU::Mesh_i* pPresent = NULL;
- if(!CORBA::is_nil(aMesh))
- pPresent = dynamic_cast<VISU::Mesh_i*>(VISU::GetServant(aMesh));
- if (pPresent == NULL) {
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("VISU_WARNING"),
- tr ("ERR_CANT_BUILD_PRESENTATION"),
- tr ("VISU_BUT_OK") );
- return VISU::Mesh::_nil();
+ if(!CORBA::is_nil(aMesh)){ // Create Actor
+ VISU::Mesh_i* pPresent = dynamic_cast<VISU::Mesh_i*>(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"));
}
- // Create Actor
- if(VTKViewer_ViewFrame* vf = visuGUI->GetVtkViewFrame()){
- try{
- pPresent->SetPresentationType(VISU::POINT);
- VISU_Actor *anActor = pPresent->CreateActor();
- vf->AddActor(anActor);
- }catch(std::runtime_error& exc){
- QAD_MessageBox::warn1 ( QAD_Application::getDesktop(), tr ("VISU_WARNING"),
- tr ("ERR_CANT_CREATE_ACTOR"),
- tr ("VISU_BUT_OK") );
+ return aMesh._retn();
+*/
+}
+
+void VisuGUI_StreamLinesDlg::accept() {
+ if (myScalarPane->check())
+ {
+ myScalarPane->deletePreview();
+ QDialog::accept();
}
- }
- return pPresent->_this();
+}
+
+void VisuGUI_StreamLinesDlg::reject()
+{
+ myScalarPane->deletePreview();
+ QDialog::reject();
}