#include "wxVtkSceneManager.h"
-#include <vtkInteractorStyleBaseView2D.h>
-
-#include "vtkConeSource.h"
-#include "vtkPolyDataMapper.h"
-#include "vtkActor.h"
-#include "vtkRenderer.h"
namespace bbtk
{
{
_baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(parent);
+ registerController(this);
- registerController(this);
configureBaseView();
- vtkRenderer *ren1 =_baseView->GetRenderer();
vtkConeSource *cone = vtkConeSource::New();
- cone->SetResolution(8);
+ cone->SetResolution(10);
vtkPolyDataMapper *map = vtkPolyDataMapper::New();
map->SetInput(cone->GetOutput());
act->SetMapper(map);
- ren1->AddActor(act);
+ /////////////////////
+
+
+ vtkPoints *_pts = vtkPoints::New();
+ _pts->SetNumberOfPoints(4);
+
+ _pts->SetPoint(0, -1 , -1 , 0 );
+ _pts->SetPoint(1, 1 , -1 , 0 );
+ _pts->SetPoint(2, 1 , 1 , 0 );
+ _pts->SetPoint(3, -1 , 1 , 0 );
+
+ vtkCellArray *lines = vtkCellArray::New();
+ lines->InsertNextCell(5);
+ lines->InsertCellPoint(0);
+ lines->InsertCellPoint(1);
+ lines->InsertCellPoint(2);
+ lines->InsertCellPoint(3);
+ lines->InsertCellPoint(0);
+
+ vtkPolyData *_pd = vtkPolyData::New();
+ _pd->SetPoints( _pts );
+ _pd->SetLines( lines );
+
+ vtkActor *_pointVtkActor = vtkActor::New();
+ vtkPolyDataMapper* _bboxMapper = vtkPolyDataMapper::New();
+
+ _bboxMapper->SetInput(_pd);
+ _pointVtkActor->SetMapper(_bboxMapper);
+
+ getRenderer()->AddActor(_pointVtkActor);
+
+
+
+ /////////////////////
+
+ //getRenderer()->AddActor(act);
- ren1->Render();
+ //getRenderer()->Render();
+
+
}
}
+ //=========================================================================
+ void wxVtkSceneManager::disconnectDrop()
+ {
+ _baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL);
+ }
//=========================================================================
wxVtkSceneManager::~wxVtkSceneManager()
{
- //_baseView->GetWxVTKRenderWindowInteractor()->SetDropTarget(NULL);
}
//=========================================================================
void wxVtkSceneManager::configureBaseView()
{
- vtkInteractorStyleBaseView2D *temp = new vtkInteractorStyleBaseView2D();
- _baseView->SetInteractorStyleBaseView(temp);
+ vtkInteractorStyleImage *temp = vtkInteractorStyleImage::New();
+ _baseView->GetWxVTKRenderWindowInteractor()->SetInteractorStyle(temp);
+ _baseView->GetRenderer()->SetActiveCamera(_baseView->GetCamera());
+ _baseView->GetRenderer()->ResetCamera ();
+ _baseView->GetCamera()->SetParallelProjection(true);
+ _baseView->Refresh();
+
}
//=========================================================================
- void wxVtkSceneManager::createGBlackBox()
+ void wxVtkSceneManager::createGBlackBox(int x, int y, std::string packageName, std::string boxName)
{
- InteractorStyleMaracas *toAdd = VTKGObjectsFactory::getInstance()->createGBlackBox(_baseView);
- registerController(toAdd);
+ int type = GBLACKBOX;
+
+ //Create the MVC Objects
+ GObjectModel *model = GObjectsMVCFactory::getInstance()->createGObjectModel(type);
+ vtkGObjectView *view = GObjectsMVCFactory::getInstance()->createGObjectView(type);
+ GObjectController* controller = GObjectsMVCFactory::getInstance()->createGObjectController(type);
+
+ //Prepares the initial model
+ double xx = x;
+ double yy = y;
+ double zz = 900;
+
+ _baseView->TransCoordScreenToWorld(xx,yy,zz);
+
+ //Associates the view with the correspondent renderer and the model.
+ //(NOTE: Refresh is only made by the view)
+ model->setInicPoint(xx,yy,zz);
+ view->setModel(model);
+ view->setRenderer(_baseView->GetRenderer());
+ view->initVtkObjects();
+
+ //Refresh renderwindow with new objects
+ refreshRenderWindow();
+
+ //Associates the controller with the correspondent model and view
+ controller->setModelAndView(model,view);
+
+ registerController((InteractorStyleMaracas*) controller);
}
//=========================================================================
return _baseView->GetRenWin();
}
//=========================================================================
-
+
+ void wxVtkSceneManager::refreshRenderWindow()
+ {
+ _baseView->GetRenWin()->Render();
+ }
+ //=========================================================================
//=========================================================================
} // EO namespace bbtk