//Includes same project
#include "GObjectsMVCFactory.h"
#include "Observer.h"
+#include "GBoxModel.h"
+#include "GComplexBoxPortModel.h"
#include "GPortModel.h"
-#include "GConnectorView.h"
+#include "vtkGConnectorView.h"
#include "GConnectorModel.h"
#include "GConnectorController.h"
#include "vtkGPortView.h"
#include "manualConnectorContourView.h"
#include "manualConnectorContourController.h"
+#include "wxGEditorTabPanel.h"
//Includes bbtk
#include <bbtkBlackBoxInputDescriptor.h>
namespace bbtk
{
+ class wxGEditorTabPanel;
class wxVtkSceneManager : public InteractorStyleMaracas , public Observer
{
public:
- wxVtkSceneManager(wxDropTarget *parent, wxVtk3DBaseView *baseView, int idManager);
+ wxVtkSceneManager(wxGEditorTabPanel *parent, wxVtk3DBaseView *baseView, int idManager);
~wxVtkSceneManager();
void configureBaseView();
- void createGBlackBox(int x, int y,std::string packageName, std::string boxName);
- void createGPort(int portType, int posinBox,GBlackBoxModel *blackBox);
- void createGInputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxInputDescriptor *desc);
- void createGOutputPort(int portType, int posinBox,GBlackBoxModel *blackBox, BlackBoxOutputDescriptor *desc);
- void createGConnector(GPortModel* startPort);
+ int createGBlackBox(int x, int y,std::string packageName, std::string boxType);
+ int createGComplexBoxInputPort(std::string inputName);
+ int createGComplexBoxOutputPort(std::string outputName);
+ GPortController* createGPort(int portType, std::string bbtkName, std::string bbtkType, int posinBox,GBoxModel *blackBox);
+ int createGInputPort(int portType, int posinBox,GBoxModel *blackBox, BlackBoxInputDescriptor *desc);
+ int createGOutputPort(int portType, int posinBox,GBoxModel *blackBox, BlackBoxOutputDescriptor *desc);
+ int createGConnector(GPortModel* startPort);
void registerController(InteractorStyleMaracas *param);
+ void unregisterController(InteractorStyleMaracas *param);
vtkRenderWindow* getRenderWindow();
vtkRenderer* getRenderer();
void disconnectDrop();
+ virtual bool OnChar();
virtual bool OnMouseMove();
+ virtual bool OnLeftButtonDown();
+ virtual bool OnLeftButtonUp();
+ virtual bool OnRightButtonUp();
+ virtual bool OnLeftDClick();
virtual void update(int idController,int command);
+
+ void displayBlackBoxInfo(std::string packageName, std::string boxName);
+ void updateStatusBar(std::string textStatus);
+ std::string getDiagramScript();
+ void deleteObject(int id);
+ void deleteAllBoxes();
+ void saveDiagram(std::string &content);
+ void loadDiagram(ifstream &inputStream);
+ void centerView();
+
+ void refreshScene();
+ std::vector<int> getBoxes();
+ std::vector<int> getConnections();
+
+ bool isComplexBox();
+ void setComplexBox(bool val);
+
private:
- // Last controller created
- int _idLastController;
+ wxGEditorTabPanel *_parent;
// Id of the manager, the same of the panel
int _idManager;
// Boxes number in the scene
int _numBoxes;
+ // StartDragging
+ bool _startDragging;
+
wxVtk3DBaseView *_baseView;
int _worldState;
std::map<int,GObjectController*> _controllers;
+ //Saves the id's of the selected objects in the controllers map
+ std::vector<int> _selectedObjects;
+
+ bool _isComplexBox;
+
protected:
};