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);
}
//=========================================================================
//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
- */
+ */
+ //EED2017
manContourView->SetWidthLine( 3 ) ;
manContourView->SetShowText(false);
// 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);
-
}
}
script += "# Complex input ports\n";
script += complexInputs;
- if((_MessageKind!=" ")&&(_MessageLevel!=" ")){
+ if((_MessageKind!="-")&&(_MessageLevel!="-")){
script += LineNumber(wln, lnNmbr);
script += "message ";
script += _MessageKind;
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:";
//=========================================================================
void wxVtkSceneManager::loadDiagram(stringstream &inputStream)
{
-
int size;
std::string version = "<void>";
std::string line = "";
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
bool boxExecutable = false;
- if (isExec == "TRUE") {
+ if (isExec == "TRUE")
+ {
boxExecutable = true;
}
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
result = strtok(NULL, delims);
std::string nameEndPort(result);
-
int idCon = configGConnetion(nameStartBox, nameStartPort,nameEndBox, nameEndPort);
if (version != "1.0") {