// EED 15 oct 2012 wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory)
+
wxVtkSceneManager::wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager,Factory::Pointer bbtkfactory)
{
- _cbName = "ComplexBoxName";
- _cbPackageName = "PackageName";
- _Author = "Author ??";
- _Category = "<VOID>";
- _Description = "Description ??";
- _MessageKind = " ";
- _MessageLevel = " ";
-
- _bugTextActor_text = "void";
+
+
+ _cbName = "ComplexBoxName";
+ _cbPackageName = "PackageName";
+ _Author = "Author ??";
+ _Category = "<VOID>";
+ _Description = "Description ??";
+ _MessageKind = "-";
+ _MessageLevel = "-";
+
+ _bugTextActor_text = "void";
_bugTextActor_status = 0;
- _parent = parent;
- _numBoxes = 0;
- _idManager = idManager;
- _baseView = baseView;
- _bbtkfactory = bbtkfactory;
+ _parent = parent;
+ _numBoxes = 0;
+ _idManager = idManager;
+ _baseView = baseView;
+ _bbtkfactory = bbtkfactory;
- _startDragging = false;
- _isComplexBox = false;
+ _startDragging = false;
+ _isComplexBox = false;
if (_baseView != NULL) {
//EED02JUIN2010
void wxVtkSceneManager::disconnectDrop()
{
- printf("EED %p ~wxVtkSceneManager::disconnectDrop()\n", this);
//EED02JUIN2010 _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL);
// _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget( new tmpClasswxTextDropTarget() );
}
wxVtkSceneManager::~wxVtkSceneManager()
{
//FCY memory leaks
- printf("EED %p ~wxVtkSceneManager() START\n", this);
disconnectDrop();
delete _baseView;
- printf("EED %p ~wxVtkSceneManager() END\n", this);
}
//=========================================================================
void wxVtkSceneManager::configureBaseView()
{
vtkInteractorStyleBaseView2D *interactorstylebaseview = vtkInteractorStyleBaseView2D::New();
-
_baseView->SetInteractorStyleBaseView(interactorstylebaseview);
-
// Important to activate the 2D interaction system
- wxVTKRenderWindowInteractor *iren = _baseView->GetWxVTKRenderWindowInteractor();
+ crea::wxVTKRenderWindowInteractor *iren = _baseView->GetWxVTKRenderWindowInteractor();
interactorstylebaseview->SetInteractor(iren);
iren->SetInteractorStyle(interactorstylebaseview);
interactorstylebaseview->SetwxVtkBaseView(_baseView);
-
_baseView->GetRenderer()->GetActiveCamera()->ParallelProjectionOn();
_baseView->GetRenderer()->ResetCamera(-100, 100, -100, 100, -1000, 1000);
- _baseView->GetRenderer()->GetActiveCamera()->Zoom(10);
-
-
+ _baseView->GetRenderer()->GetActiveCamera()->Zoom(20);
_baseView->GetRenderer()->SetBackground(0.9, 0.9, 0.9);
_baseView->GetRenderer()->GradientBackgroundOn();
-
// Actos Port_Text
_textActor = vtkTextActor3D::New();
// _textActor = vtkTextActor::New();
_textActor->SetPosition(-9999, -9999, GPOSITION_Z);
_textActor->SetInput("<void>");
- _textActor->GetTextProperty()->SetFontSize(60);
+//EED 2022-01-16
+// _textActor->GetTextProperty()->SetFontSize(60);
+ _textActor->GetTextProperty()->SetFontSize(40);
_textActor->GetTextProperty()->BoldOn();
+ _textActor->GetTextProperty()->SetFontFamilyToArial();
+ _textActor->GetTextProperty()->ShadowOff();
_textActor->GetTextProperty()->SetColor(PORTTEXT_NH_R, PORTTEXT_NH_G,PORTTEXT_NH_B);
-
_baseView->GetRenderer()->AddActor(_textActor);
-
// Actor Fill_Port_Text
-
//------------
- double xInic = 0;
- double yInic = 0;
- double zInic = GPOSITION_Z;
-
- vtkPolygon *aPolygon = vtkPolygon::New();
- _fillObjectActor = vtkActor::New();
+ double xInic = 0;
+ double yInic = 0;
+ double zInic = GPOSITION_Z;
+ vtkPolygon *aPolygon = vtkPolygon::New();
+ _fillObjectActor = vtkActor::New();
+ _pts = vtkPoints::New();
- _pts = vtkPoints::New();
-
- double w = 100, h = 10, b = h / 15, t = 3;
+/*
+ double w = 100, h = 10, b = h / 15, t = 3;
_pts->SetNumberOfPoints(21);
_pts->InsertPoint(0, xInic + w * 0.33 - t / 2, yInic, zInic);
_pts->InsertPoint(1, xInic + w * 0.33, yInic - t, zInic);
_pts->InsertPoint(18, xInic + b * 1, yInic + b * 2, zInic);
_pts->InsertPoint(19, xInic + b * 2, yInic + b * 1, zInic);
_pts->InsertPoint(20, xInic + b * 4, yInic + b * 0, zInic);
+ aPolygon->GetPointIds()->SetNumberOfIds(21);
+ for (int i = 0; i < 21; i++) {
+ {
+ aPolygon->GetPointIds()->SetId(i, i);
+ }
+*/
- aPolygon->GetPointIds()->SetNumberOfIds(21);
- for (int i = 0; i < 21; i++) {
+ double w = BOX_WIDTH, h = BOX_HEIGHT, t = PORT_HEIGHT;
+ _pts->SetNumberOfPoints(7);
+ _pts->InsertPoint(0, xInic + t/2.0 , yInic + t , zInic );
+ _pts->InsertPoint(1, xInic + w , yInic + t , zInic );
+ _pts->InsertPoint(2, xInic + w , yInic + t + h , zInic );
+ _pts->InsertPoint(3, xInic - t*1.5 , yInic + t + h , zInic );
+ _pts->InsertPoint(4, xInic - t*1.5 , yInic + t , zInic );
+ _pts->InsertPoint(5, xInic - t/2 , yInic + t , zInic );
+ _pts->InsertPoint(6, xInic , yInic , zInic );
+ aPolygon->GetPointIds()->SetNumberOfIds(8);
+ for (int i = 0; i < 8; i++)
+ {
aPolygon->GetPointIds()->SetId(i, i);
+ if (i==7) aPolygon->GetPointIds()->SetId(i, 0);
}
-
vtkUnstructuredGrid *aPolygonGrid = vtkUnstructuredGrid::New();
aPolygonGrid->Allocate(1, 1);
- aPolygonGrid->InsertNextCell(aPolygon->GetCellType(),
- aPolygon->GetPointIds());
+ aPolygonGrid->InsertNextCell(aPolygon->GetCellType(),aPolygon->GetPointIds());
aPolygonGrid->SetPoints(_pts);
_aPolygonMapper = vtkDataSetMapper::New();
+//EED 2017-01-01 Migration VTK7
+#if VTK_MAJOR_VERSION <= 5
_aPolygonMapper->SetInput(aPolygonGrid);
+#else
+ _aPolygonMapper->SetInputData(aPolygonGrid);
+#endif
_fillObjectActor->SetMapper(_aPolygonMapper);
- _fillObjectActor->GetProperty()->SetColor(PORTFILL_NH_R, PORTFILL_NH_G,
- PORTFILL_NH_B);
+ _fillObjectActor->GetProperty()->SetColor(PORTFILL_NH_R, PORTFILL_NH_G,PORTFILL_NH_B);
_fillObjectActor->GetProperty()->SetOpacity(0);
_aPolygonMapper->Modified();
-
_baseView->GetRenderer()->AddActor(_fillObjectActor);
}
//EED 15 oct 2012 BlackBoxDescriptor::Pointer descriptor = GObjectsMVCFactory::getInstance()->getBlackBoxDescriptor(packageName, boxType);
+
Package::Pointer k;
std::map< std::string, BlackBoxDescriptor::Pointer> mapDesc;
try{
model->addObserver(view);
model->addObserver(this);
+
+//EED2017 change order
+ //Associates the view with the correspondent renderer and the model.
+ //(NOTE: Refresh is only made by the view)
+ view->setModel(model);
+ view->setBaseView(_baseView);
+
+ //Associates the controller with the correspondent model and view
+ controller->setModelAndView(model, view);
+
+
//Iterate and create the input ports
std::map<std::string, BlackBoxInputDescriptor*> descriptorInMap =
descriptor->GetInputDescriptorMap();
std::map<std::string, BlackBoxInputDescriptor*>::iterator itInput;
-
int i = 0;
- for (itInput = descriptorInMap.begin(); itInput != descriptorInMap.end(); ++itInput) {
+ for (itInput = descriptorInMap.begin(); itInput != descriptorInMap.end(); ++itInput)
+ {
BlackBoxInputDescriptor *desc = itInput->second;
- createGInputPort(GINPUTPORT, i, model, desc);
+//EED2017-04-07
+// createGInputPort(GINPUTPORT, i, model, desc);
+ createGInputPort(GINPUTPORT, i, controller, desc);
i++;
}
std::map<std::string, BlackBoxOutputDescriptor*> descriptorOutMap =
descriptor->GetOutputDescriptorMap();
std::map<std::string, BlackBoxOutputDescriptor*>::iterator itOutput;
-
i = 0;
- for (itOutput = descriptorOutMap.begin(); itOutput
- != descriptorOutMap.end(); ++itOutput) {
+ for (itOutput = descriptorOutMap.begin(); itOutput!= descriptorOutMap.end(); ++itOutput)
+ {
BlackBoxOutputDescriptor *desc = itOutput->second;
- createGOutputPort(GOUTPUTPORT, i, model, desc);
+//EED2017-04-07
+// createGOutputPort(GOUTPUTPORT, i, model, desc);
+ createGOutputPort(GOUTPUTPORT, i, controller, desc);
i++;
}
- //Associates the view with the correspondent renderer and the model.
- //(NOTE: Refresh is only made by the view)
- view->setModel(model);
- view->setBaseView(_baseView);
+//EED2017 change order
view->initVtkObjects();
- //Associates the controller with the correspondent model and view
- controller->setModelAndView(model, view);
-
//Resgiter change to the observers of the actual model
model->notifyObservers(_idManager);
-
int newId = addObjectController(controller);
return newId;
//=========================================================================
-int wxVtkSceneManager::createGInputPort(int portType, int posinBox, GBoxModel *blackBox, BlackBoxInputDescriptor *desc)
+//EED2017-04-08
+//int wxVtkSceneManager::createGInputPort(int portType, int posinBox, GBoxModel *blackBox, BlackBoxInputDescriptor *desc)
+int wxVtkSceneManager::createGInputPort(int portType, int posinBox, GObjectController *gBoxControler, BlackBoxInputDescriptor *desc)
{
+ GBoxModel *blackBox=(GBoxModel*)gBoxControler->getModel();
GPortController* portController = createGPort(portType, desc->GetName(),
desc->GetTypeName(), desc->GetDescription(), posinBox, blackBox);
- blackBox->addInputPort((GPortModel*) portController->getModel());
+ blackBox->addInputPort( (GPortModel*)portController->getModel() );
+
+ vtkGBoxView *vtkgboxView=(vtkGBoxView*)gBoxControler->getView();
+ vtkgboxView->addInputPort( (vtkGPortView*)portController->getView() );
+
return portController->getId();
}
//=========================================================================
-int wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GBoxModel *blackBox, BlackBoxOutputDescriptor *desc)
+//EED2017-04-08
+//int wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GBoxModel *blackBox, BlackBoxOutputDescriptor *desc)
+int wxVtkSceneManager::createGOutputPort(int portType, int posinBox,GObjectController *gBoxControler, BlackBoxOutputDescriptor *desc)
{
+ GBoxModel *blackBox=(GBoxModel*)gBoxControler->getModel();
GPortController* portController = createGPort(portType, desc->GetName(),
desc->GetTypeName(),desc->GetDescription(), posinBox, blackBox);
blackBox->addOutputPort((GPortModel*) portController->getModel());
+
+ vtkGBoxView *vtkgboxView=(vtkGBoxView*)gBoxControler->getView();
+ vtkgboxView->addOutputPort( (vtkGPortView*)portController->getView() );
+
return portController->getId();
}
int type = GPORT;
//Create the MVC Objects
- GPortModel
- *model =
- (GPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(
- type);
- vtkGObjectView *view =
- GObjectsMVCFactory::getInstance()->createGObjectView(type);
- GObjectController* controller =
- GObjectsMVCFactory::getInstance()->createGObjectController(type);
-
+ GPortModel *model = (GPortModel*) GObjectsMVCFactory::getInstance()->createGObjectModel(type);
+ vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type);
+ GObjectController *controller = GObjectsMVCFactory::getInstance()->createGObjectController(type);
model->registerInBox(blackBox, portType, posInBox);
-
model->setBBTKType(bbtkType);
model->setBBTKName(bbtkName);
model->setBBTKDescription(bbtkDescription);
-
model->addObserver(view);
model->addObserver(this);
-
//Associates the view with the correspondent renderer and the model.
//(NOTE: Refresh is only made by the view)
view->setModel(model);
view->setBaseView(_baseView);
- view->initVtkObjects();
+//EED017 view->initVtkObjects();
+ view->createVtkObjects();
+// view->addVtkActors();
//Associates the controller with the correspondent model and view
controller->setModelAndView(model, view);
-
model->notifyObservers(_idManager);
-
addObjectController(controller);
-
return (GPortController*) controller;
}
* JGRR AND CM
* Width increased from 2 to 3, it simplifies line handling and spline control :P
* @param WidthLine
- */
- manContourView->SetWidthLine( 3 ) ;
- manContourView->SetShowText(false);
+ */
+ //EED2017
+// manContourView->SetWidthLine( 3 ) ;
+//EED 2022-01-16
+ manContourView->SetWidthLine( 1 ) ;
+
+ manContourView->SetShowText(false);
manContourControl->SetModelView(manContourModel, manContourView);
// Highliht element
obc->getView( )->setState( POSSIBLE_CONNECTION ) ;
//obc->getView( )->setState( HIGHLIGHTED ) ;
- }
- }
- }
- }
+ } // if obc_type
+ } // for c_it
+ } // if
+ } // if iter
// EO JGRR & CM WH
if ((obc_type == GPORT) && (obc_state == SELECTED_POSSIBLE_CONNECTION)) {
// Change element to connected state
obc->getView()->setState(HIGHLIGHTED);
-
}
}
int X, Y;
bool okStatusMessage = false;
bool okPortMessage = false;
- wxVTKRenderWindowInteractor *wxVTKiren;
+ crea::wxVTKRenderWindowInteractor *wxVTKiren;
wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
wxVTKiren->GetEventPosition(X, Y);
// PortText
if ( ( _bugTextActor_text==desc->getStatusText() ) || (_bugTextActor_status==0) )
{
- _bugTextActor_status = 1;
- okPortMessage = true;
- py = py + 5;
- _textActor->SetScale(0.1);
- std::string tmp = desc->getStatusText()+"\n";
+ _bugTextActor_status = 1;
+ okPortMessage = true;
+//EED 2022-01-16
+// py = py + 5;
+// _textActor->SetScale(0.1);
+// py = py + 5*0.5;
+ _textActor->SetScale(0.05,0.05,1);
+
+ std::string tmp = desc->getStatusText()+"\n";
_textActor->SetInput( tmp.c_str() );
- _textActor->SetPosition(px - 25, py + 1, pz + 2);
+// _textActor->SetPosition(px - 25, py + 1, pz + 2);
+// _textActor->SetPosition(px , py-PORT_HEIGHT/4 , pz + 2);
+ _textActor->SetPosition(px , py-PORT_HEIGHT , pz + 2);
_textActor->Modified();
// FillPortText
- px = px - 33;
- //py = py;
- _fillObjectActor->SetScale(1);
- _fillObjectActor->GetProperty()->SetOpacity(0.50);
- _fillObjectActor->SetPosition(px, py, 1);
+//EED 2022-01-16
+// px = px - 33;
+ _fillObjectActor->SetScale(1);
+// px = px - 33*0.7;
+// _fillObjectActor->SetScale(0.7,0.5,1);
+ _fillObjectActor->GetProperty()->SetOpacity(0.75);
+ _fillObjectActor->SetPosition( px, py + PORT_HEIGHT/2.0 , 1);
_aPolygonMapper->Modified();
} else {
- _bugTextActor_status = 2;
+ _bugTextActor_status= 2;
} // _bugTextActor_tex
- _bugTextActor_text = desc->getStatusText();
+ _bugTextActor_text = desc->getStatusText();
} // if GPORT
} //if state
GObjectController *wxVtkSceneManager::GetGBlackBoxControlerPointedByMouse() {
GObjectController *result = NULL;
int X, Y;
- wxVTKRenderWindowInteractor *wxVTKiren;
+ crea::wxVTKRenderWindowInteractor *wxVTKiren;
wxVTKiren
= _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
wxVTKiren->GetEventPosition(X, Y);
UnSelectBlackBoxes();
_parent->editBlackBox((GBlackBoxModel*) cont->getModel());
}
-
- /*EED Borrame
-
- int X,Y;
- wxVTKRenderWindowInteractor *wxVTKiren;
- wxVTKiren = _vtkInteractorStyleBaseView->GetWxVtk3DBaseView()->GetWxVTKRenderWindowInteractor();
- wxVTKiren->GetEventPosition(X,Y);
-
- std::map<int, GObjectController*>::iterator it;
-
- bool clickOnObject = false;
-
- for(it = _controllers.begin(); it != _controllers.end() && clickOnObject==false; ++it)
- {
- GObjectController *cont = it->second;
- int type = cont->getGObjectType();
-
- if(cont->getView()->isPointInside(X,Y))
- {
- if(type==GBLACKBOX)
- {
- for (int i=0; i< (int)_selectedObjects.size(); i++)
- {
- int id = _selectedObjects[i];
- GObjectController* control = _controllers[id];
- control->getView()->setState(NOTHING_HAPPENS);
- }
- _selectedObjects.clear();
-
- GBlackBoxModel *bbmodel = (GBlackBoxModel*)cont->getModel();
- _parent->editBlackBox(bbmodel);
- }
- clickOnObject = true;
- }
- }
-
- if(clickOnObject==false)
- {
- //_parent->editDiagramParameters(this);
- }
- */
return true;
}
_parent->saveTempandUpdate("delete object");
}// if keyCode
- /// Duplicate
-#ifdef MACOSX
- if((keyCode==0) && (ctrlkey==1)) {
-#else
+ // Duplicate
ctrlkey+=keyCode;
if(ctrlkey==5){
-#endif
if(_selectedObjects.size()){
std::cout<<"objects to copy :";
for(int i=0;i<_selectedObjects.size();i++)
script += LineNumber(wln, lnNmbr);
script += "new ";
int id = boxes[i];
- GObjectController *control = _controllers[id];
- GBlackBoxModel *model = (GBlackBoxModel*) control->getModel();
+ GObjectController *control = _controllers[id];
+ GBlackBoxModel *model = (GBlackBoxModel*) control->getModel();
+ script += model->getBBTKPackage()+":";
script += model->getBBTKType();
script += " ";
script += model->getBBTKName();
for (i = 0; i < (int) connections.size(); i++) {
//script += LineNumber(wln, lnNmbr);
//script += "connect ";
- int id = connections[i];
- GObjectController *control = _controllers[id];
- GConnectorModel *model = (GConnectorModel*) control->getModel();
+ int id = connections[i];
+ GObjectController *control = _controllers[id];
+ GConnectorModel *model = (GConnectorModel*) control->getModel();
//Connection info
- GPortModel *start = model->getStartPort();
- GBoxModel *startBox = start->getParentBox();
+ GPortModel *start = model->getStartPort();
+ GBoxModel *startBox = start->getParentBox();
GPortModel *end = model->getEndPort();
GBoxModel *endBox = end->getParentBox();
}
else
{
+ script += LineNumber(wln, lnNmbr);
script += "connect ";
script += startBox->getBBTKName();
script += ".";
script += "\n";
}
+ script += LineNumber(wln, lnNmbr);
script += "\n";
}
script += LineNumber(wln, lnNmbr);
script += "\n";
+ script += LineNumber(wln, lnNmbr);
script += "\n";
+
+ script += LineNumber(wln, lnNmbr);
script += "# Complex input ports\n";
script += complexInputs;
- if((_MessageKind!=" ")&&(_MessageLevel!=" ")){
+ if((_MessageKind!="-")&&(_MessageLevel!="-")){
script += LineNumber(wln, lnNmbr);
script += "message ";
script += _MessageKind;
int id = execBoxes[i];
GObjectController *control = _controllers[id];
GBlackBoxModel *model = (GBlackBoxModel*) control->getModel();
-
script += model->getBBTKName();
script += "\n";
}
GObjectController *control = _controllers[id];
GBlackBoxModel *model = (GBlackBoxModel*) control->getModel();
+ script += model->getBBTKPackage()+":";
script += model->getBBTKType();
script += " ";
script += model->getBBTKName();
script += "\n";
- script += "message ";
- script += _MessageKind;
- script += " ";
- script += _MessageLevel;
- script += "\n";
+ if((_MessageKind!="-")&&(_MessageLevel!="-"))
+ {
+ script += "message ";
+ script += _MessageKind;
+ script += " ";
+ script += _MessageLevel;
+ script += "\n";
+ }
- for (i = 0; i < (int) execBoxes.size(); i++) {
+ for (i = 0; i < (int) execBoxes.size(); i++)
+ {
script += "exec ";
int id = execBoxes[i];
GObjectController *control = _controllers[id];
}
//=========================================================================
-void wxVtkSceneManager::refreshScene() {
+void wxVtkSceneManager::refreshScene()
+{
_baseView->RefreshView();
}
//=========================================================================
-void wxVtkSceneManager::centerView() {
+void wxVtkSceneManager::centerView()
+{
+ double bb[6];
+ _baseView->GetRenderer()->ComputeVisiblePropBounds(bb);
+
double temp[3];
_baseView->GetRenderer()->GetActiveCamera()->GetFocalPoint(temp);
_baseView->GetRenderer()->GetActiveCamera()->SetFocalPoint(0, 0, temp[2]);
_baseView->GetRenderer()->GetActiveCamera()->GetPosition(temp);
_baseView->GetRenderer()->GetActiveCamera()->SetPosition(0, 0, temp[2]);
+
+ _baseView->GetRenderer()->ResetCamera();
+ _baseView->GetRenderer()->ResetCameraClippingRange();
+
+/*
+ double tt=_baseView->GetRenderer()->GetNearClippingPlaneTolerance();
+ printf("EED wxVtkSceneManager::centerView() tolerance=%f\n",tt);
+ double cr1,cr2;
+ _baseView->GetRenderer()->GetActiveCamera()->GetClippingRange(cr1,cr2);
+ printf("EED wxVtkSceneManager::centerView() cr1=%f cr2=%f\n",cr1,cr2);
+ _baseView->GetRenderer()->GetActiveCamera()->SetClippingRange(0.01,100000);
+ _baseView->GetRenderer()->GetActiveCamera()->GetClippingRange(cr1,cr2);
+ printf("EED wxVtkSceneManager::centerView() cr1=%f cr2=%f\n",cr1,cr2);
+*/
+
+ _baseView->GetRenderer()->Render();
}
//=========================================================================
-void wxVtkSceneManager::saveDiagram(std::string &content) {
+void wxVtkSceneManager::saveDiagram(std::string &content)
+{
char buffer[50];
content += "CATEGORY:";
for (int i = 0; i < bsize; i++) {
int id = boxes[i];
- std::cout<<"id "<<id<<std::endl;//CFT
+// std::cout<<"id "<<id<<std::endl;//CFT
GObjectController *cont = _controllers[id];
- std::cout<<"nombre: "<<cont->getStatusText()<<std::endl;//CFT
- std::cout<<"tipo: "<<cont->getModel()->getBBTKType()<<std::endl;//CFT
- //boxesDiagram[i] = cont->getModel()->getBBTKType();//CFT
- std::cout<<"nname: "<<cont->getModel()->getBBTKName()<<std::endl;//CFT
- std::cout<<"categorie: "<<GetCategory()<<std::endl;//CFT
- std::cout<<"type: "<<cont->getModel()->getGObjectType()<<std::endl;//CFT
+// std::cout<<"nombre: "<<cont->getStatusText()<<std::endl;//CFT
+// std::cout<<"tipo: "<<cont->getModel()->getBBTKType()<<std::endl;//CFT
+// //boxesDiagram[i] = cont->getModel()->getBBTKType();//CFT
+// std::cout<<"nname: "<<cont->getModel()->getBBTKName()<<std::endl;//CFT
+// std::cout<<"categorie: "<<GetCategory()<<std::endl;//CFT
+// std::cout<<"type: "<<cont->getModel()->getGObjectType()<<std::endl;//CFT
cont->getModel()->save(content);
}
//=========================================================================
void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
{
-
int size;
std::string version = "<void>";
std::string line = "";
if (line == "# - BBTKGEditor v 1.4 BBG BlackBox Diagram file") {
version = line.substr(18, 3);
}
+ if (line == "# - BBTKGEditor v 1.5 BBG BlackBox Diagram file") {
+ version = line.substr(18, 3);
+ }
} else if (line == "APP_START") {
start = true;
break;
}
- if (start) {
+ if (start)
+ {
if ((version != "1.0") && (version != "1.1")) {
getCleanLine(inputStream, line);//CATEGORY:<category of the box>
result = strtok(NULL, delims);
std::string isComplexBox(result);
- if (isComplexBox == "TRUE") {
+ if (isComplexBox == "TRUE")
+ {
_isComplexBox = true;
- if ((version != "1.0") && (version != "1.1")) {
+ if ((version != "1.0") && (version != "1.1"))
+ {
getCleanLine(inputStream, line);//COMPLEXNAME:<name of the complex box>
char complexboxnameTmp[255];
strcpy(complexboxnameTmp, line.c_str());
result = strtok(packagenameTmp, delims);
result = strtok(NULL, delims);
SetCbPackageName(result);
- }
+ } // if version !1.0 !1.1
if(version < "1.4")
{
std::istringstream inps(result);
inps >> numInputs;
- for (int i = 0; i < numInputs; i++) {
+ for (int i = 0; i < numInputs; i++)
+ {
//----------
getCleanLine(inputStream, line);//COMPLEX_PORT
getCleanLine(inputStream, line);//name
if (version<="1.2")
{
if (zIn==900) zIn=GPOSITION_Z;
- }
+ } // if version <=1.2
getCleanLine(inputStream, line);//FIN_COMPLEX_PORT
configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn);
} // for input complex box
- }
+ } // if version < 1.4
std::istringstream outps(result);
outps >> numOutputs;
- for (int i = 0; i < numOutputs; i++) {
+ for (int i = 0; i < numOutputs; i++)
+ {
//----------
getCleanLine(inputStream, line);//COMPLEX_PORT
getCleanLine(inputStream, line);//name
{
if (zIn==900) zIn=GPOSITION_Z;
}
-
+//EED 2022-01-16
+ if (version<="1.4")
+ {
+ xIn = xIn*0.70;
+ yIn = yIn*0.30;
+ }
+
getCleanLine(inputStream, line);//FIN_COMPLEX_PORT
configGComBoxInputOutputPort(false, outputPortName, xIn, yIn, zIn);
} // for output complex box
+ } // if isComplexBox
- } // complex box
-
+
// RaC2012 2nd Hackfest
if(version >= "1.4")
{
std::istringstream inps(result);
inps >> numInputs;
- for (int i = 0; i < numInputs; i++) {
- //----------
+ for (int i = 0; i < numInputs; i++)
+ {
getCleanLine(inputStream, line);//COMPLEX_PORT
getCleanLine(inputStream, line);//name
std::string inputPortName(line);
-
- //----------
getCleanLine(inputStream, line);//xInic:yInic:zInic
char coord[80];
strcpy(coord, line.c_str());
std::string yInic(result);
result = strtok(NULL, delims);//zInic
std::string zInic(result);
-
double xIn, yIn, zIn;
std::istringstream xSt(xInic);
xSt >> xIn;
ySt >> yIn;
std::istringstream zSt(zInic);
zSt >> zIn;
-
if (version<="1.2")
{
if (zIn==900) zIn=GPOSITION_Z;
}
-
+//EED 2022-01-16
+ if (version<="1.4")
+ {
+ xIn = xIn*0.70;
+ yIn = yIn*0.30;
+ }
getCleanLine(inputStream, line);//FIN_COMPLEX_PORT
configGComBoxInputOutputPort(true, inputPortName, xIn, yIn, zIn);
-
} // for external input
- }
-
+ } // if(version >= "1.4")
//----------
getCleanLine(inputStream, line);//BOXES:num
std::istringstream is(result);
is >> numBoxes;
- for (int i = 0; i < numBoxes; i++) {
+ for (int i = 0; i < numBoxes; i++)
+ {
//----------
getCleanLine(inputStream, line);//BOX
getCleanLine(inputStream, line);//package:type:name
std::string yInic(result);
result = strtok(NULL, delims);//zInic
std::string zInic(result);
-
double xIn, yIn, zIn;
std::istringstream xSt(xInic);
xSt >> xIn;
std::istringstream zSt(zInic);
zSt >> zIn;
-
if (version<="1.2")
{
if (zIn==900) zIn=GPOSITION_Z;
}
-
-
+//EED 2022-01-16
+ if (version<="1.4")
+ {
+ xIn = xIn*0.70;
+ yIn = yIn*0.30;
+ }
//----------
getCleanLine(inputStream, line);//xEnd:yEnd:zEnd
strcpy(coord, line.c_str());
{
if (zEn==900) zEn=GPOSITION_Z;
}
-
+//EED 2022-01-16
+ yEn = yIn-BOX_HEIGHT;
bool boxExecutable = false;
- if (isExec == "TRUE") {
+ if (isExec == "TRUE")
+ {
boxExecutable = true;
}
strcat(result,tmpString.c_str());
}
std::string value(result);
-
bbmod->setValueToInput(name, value);
-
getCleanLine(inputStream, line);//PORT o FIN_BOX
port = line.substr(0, 4);
} // while
strcpy(conns, line.c_str());
result = strtok(conns, delims);
result = strtok(NULL, delims);
-
int numConns;
std::istringstream isCons(result);
isCons >> numConns;
- for (int i = 0; i < numConns; i++) {
+ for (int i = 0; i < numConns; i++)
+ {
//----------
getCleanLine(inputStream, line);//CONNECTION
getCleanLine(inputStream, line);//Startbox.PortName:EndBox.PortName
-
char connec[200];
strcpy(connec, line.c_str());
result = strtok(connec, delims);
std::string nameEndBox(result);
result = strtok(NULL, delims);
std::string nameEndPort(result);
-
-
int idCon = configGConnetion(nameStartBox, nameStartPort,nameEndBox, nameEndPort);
-
if (version != "1.0") {
//Readding control points of the manualContour
- GConnectorController *tempp = (GConnectorController*) _controllers[idCon];
- GConnectorModel *conMod = (GConnectorModel*) tempp->getModel();
- vtkGConnectorView *conView = (vtkGConnectorView*) tempp->getView();
+ GConnectorController *tempp = (GConnectorController*) _controllers[idCon];
+ GConnectorModel *conMod = (GConnectorModel*) tempp->getModel();
+ vtkGConnectorView *conView = (vtkGConnectorView*) tempp->getView();
getCleanLine(inputStream, line); //NumberOfControlPoints:##
strcpy(conns, line.c_str());
result = strtok(conns, delims);
result = strtok(NULL, delims);
-
int numberOfControlPoints;
std::istringstream isCons(result);
isCons >> numberOfControlPoints;
-
for (int ii = 0; ii < numberOfControlPoints; ii++) {
getCleanLine(inputStream, line); //XX:YY:ZZ
char connec[200];
strcpy(connec, line.c_str());
-
double px, py, pz;
result = strtok(connec, delims);
std::istringstream isPointX(result);
result = strtok(NULL, delims);
std::istringstream isPointZ(result);
isPointZ >> pz;
-
if (version<="1.2")
{
if (pz==900) pz=GPOSITION_Z;
}
-
+//EED 2022-01-16
+ if (version<="1.4")
+ {
+ px = px*0.70;
+ py = py*0.30;
+ }
conMod->getManualContourModel()->InsertPoint_id(ii + 1, px, py, pz);
conView->getManualContourView()->AddPoint();
}
- }// version !=1.0
+ }// if version !=1.0
} // for numConns
- } // start
+ } // if start
}
//=========================================================================
//=========================================================================
-void wxVtkSceneManager::DuplicateObjects(std::map<int, GObjectController*> objectsMap) {
-
+void wxVtkSceneManager::DuplicateObjects(std::map<int, GObjectController*> objectsMap)
+{
std::map<int, int> oldIdNewIdBoxes;
std::vector<int> connections;
-
std::vector<int> newBoxesID;
-
std::map<int, GObjectController*>::iterator it;
- for (it = objectsMap.begin(); it != objectsMap.end(); ++it) {
+ for (it = objectsMap.begin(); it != objectsMap.end(); ++it)
+ {
GObjectController *cont = it->second;
int type = cont->getGObjectType();
-
- if (type == GBLACKBOX) {
+ if (type == GBLACKBOX)
+ {
// Copy black box
double xInic, yInic, zInic;
GBlackBoxModel* copyBox = (GBlackBoxModel*) cont->getModel();
copyBox->getInicPoint(xInic, yInic, zInic);
- int idBox = createGBlackBox(0, 0, copyBox->getBBTKPackage(),
- copyBox->getBBTKType());
+ int idBox = createGBlackBox(0, 0, copyBox->getBBTKPackage(), copyBox->getBBTKType());
int idcB = copyBox->getObjectId();
oldIdNewIdBoxes[idcB] = idBox;
GBlackBoxModel* newbox = (GBlackBoxModel*) cont->getModel();
newbox->setInicPoint(xInic, yInic, zInic);
int num = newbox->getNumInputPorts();
- for (int j = 0; j < num; j++) {
+ for (int j = 0; j < num; j++)
+ {
newbox->setValueToInputPort(j, copyBox->getValueInputPort(j));
- }
- newbox->move(xInic + 20, yInic + 20, zInic);
+ } // if j
+
+// EED 2022-01-16
+// newbox->move(xInic + 20, yInic + 20, zInic);
+ newbox->move(xInic + 14, yInic + 6, zInic);
+
newbox->notifyObservers(_idManager);
newBoxesID.push_back(newbox->getObjectId());
} else if (type == GCONNECTOR) {
int idCon = cont->getId();
connections.push_back(idCon);
- }
+ } // if type
- }
+ } // for it
- for (int i = 0; i < (int) connections.size(); i++) {
+ for (int i = 0; i < (int) connections.size(); i++)
+ {
int objId = connections[i];
GObjectController *cont = objectsMap[objId];
GConnectorModel* connectModel = (GConnectorModel*) cont->getModel();
tempp->endContourCreation();
conMod->setEndPort(newEndPort);
conView->updateStartEndPoints();
- }
+ } // for i
/// the new selected boxes are the duplicate ones
UnSelectBlackBoxes();
- for (int i = 0; i < newBoxesID.size(); i++) {
+ for (int i = 0; i < newBoxesID.size(); i++)
+ {
_selectedObjects.push_back(newBoxesID.at(i));
- }
+ } // for i
- for (int i = 0; i < (int) _selectedObjects.size(); i++) {
+ for (int i = 0; i < (int) _selectedObjects.size(); i++)
+ {
int id = _selectedObjects[i];
GObjectController* cont = _controllers[id];
-
cont->getView()->setState(SELECTED);
cont->getModel()->notifyObservers(_idManager);
-
- }
+ } // for i
}