mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-17 07:28:12 +08:00
[CORE][ADD] Add model from model selector
- Add slot API in sceneviewer - Add connection in editor page widget
This commit is contained in:
parent
64f65a2555
commit
fe305c49aa
@ -49,6 +49,9 @@ EditorPage::EditorPage(QWidget* parent) :
|
||||
_sceneViewer->show();
|
||||
_mainLayout->addWidget(_sceneViewerContainer);
|
||||
_sceneViewerContainer->show();
|
||||
|
||||
// Connect signals
|
||||
connect(_modelSelector, &ModelSelector::onObjectSelected, _sceneViewer, &SceneViewer::addObject);
|
||||
}
|
||||
|
||||
EditorPage::~EditorPage() {}
|
||||
|
||||
@ -137,16 +137,16 @@ void SceneViewer::initializeGL() {
|
||||
|
||||
_dirLight = new DirLight();
|
||||
|
||||
Model* model = new Model("E:\\Repositories\\CollegeProjects\\CGAssignments\\FinalProject\\Models\\backpack\\backpack.obj");
|
||||
Renderable* backpack = new Renderable(model);
|
||||
backpack->move(glm::vec3(-5.0f, -2.0f, -2.0f));
|
||||
backpack->updateBoundary();
|
||||
_objects.push_back(backpack);
|
||||
|
||||
Renderable* backpack2 = new Renderable(model);
|
||||
backpack2->makeLight();
|
||||
backpack2->originalLight()->setIdealDistance(500);
|
||||
_objects.push_back(backpack2);
|
||||
//Model* model = new Model("E:\\Repositories\\CollegeProjects\\CGAssignments\\FinalProject\\Models\\backpack\\backpack.obj");
|
||||
//Renderable* backpack = new Renderable(model);
|
||||
//backpack->move(glm::vec3(-5.0f, -2.0f, -2.0f));
|
||||
//backpack->updateBoundary();
|
||||
//_objects.push_back(backpack);
|
||||
//
|
||||
//Renderable* backpack2 = new Renderable(model);
|
||||
//backpack2->makeLight();
|
||||
//backpack2->originalLight()->setIdealDistance(500);
|
||||
//_objects.push_back(backpack2);
|
||||
// Test Code End
|
||||
|
||||
_camera.setPosition(glm::vec3(0.0f, 0.0f, 10.0f));
|
||||
@ -481,3 +481,13 @@ void SceneViewer::moveOperatingObject(const Ray& ray) {
|
||||
_operatingObject->setPosition(_hitRecord.position());
|
||||
}
|
||||
}
|
||||
|
||||
void SceneViewer::addObject(Model* model) {
|
||||
makeCurrent();
|
||||
Model* newModel = model->copyToCurrentContext();
|
||||
Renderable* newObject = new Renderable(newModel);
|
||||
_selectedObject = newObject;
|
||||
_operatingObject = newObject;
|
||||
_objects.push_back(newObject);
|
||||
parentWidget()->update();
|
||||
}
|
||||
|
||||
@ -69,6 +69,9 @@ private:
|
||||
void rotateCamera(QMouseEvent* event);
|
||||
void moveOperatingObject(const Ray& ray);
|
||||
|
||||
public:
|
||||
void addObject(Model* model);
|
||||
|
||||
protected:
|
||||
// OpenGL functions
|
||||
virtual void initializeGL() override;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user