mirror of
https://github.com/Linloir/SceneEditor.git
synced 2025-12-18 07:58:11 +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();
|
_sceneViewer->show();
|
||||||
_mainLayout->addWidget(_sceneViewerContainer);
|
_mainLayout->addWidget(_sceneViewerContainer);
|
||||||
_sceneViewerContainer->show();
|
_sceneViewerContainer->show();
|
||||||
|
|
||||||
|
// Connect signals
|
||||||
|
connect(_modelSelector, &ModelSelector::onObjectSelected, _sceneViewer, &SceneViewer::addObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
EditorPage::~EditorPage() {}
|
EditorPage::~EditorPage() {}
|
||||||
|
|||||||
@ -137,16 +137,16 @@ void SceneViewer::initializeGL() {
|
|||||||
|
|
||||||
_dirLight = new DirLight();
|
_dirLight = new DirLight();
|
||||||
|
|
||||||
Model* model = new Model("E:\\Repositories\\CollegeProjects\\CGAssignments\\FinalProject\\Models\\backpack\\backpack.obj");
|
//Model* model = new Model("E:\\Repositories\\CollegeProjects\\CGAssignments\\FinalProject\\Models\\backpack\\backpack.obj");
|
||||||
Renderable* backpack = new Renderable(model);
|
//Renderable* backpack = new Renderable(model);
|
||||||
backpack->move(glm::vec3(-5.0f, -2.0f, -2.0f));
|
//backpack->move(glm::vec3(-5.0f, -2.0f, -2.0f));
|
||||||
backpack->updateBoundary();
|
//backpack->updateBoundary();
|
||||||
_objects.push_back(backpack);
|
//_objects.push_back(backpack);
|
||||||
|
//
|
||||||
Renderable* backpack2 = new Renderable(model);
|
//Renderable* backpack2 = new Renderable(model);
|
||||||
backpack2->makeLight();
|
//backpack2->makeLight();
|
||||||
backpack2->originalLight()->setIdealDistance(500);
|
//backpack2->originalLight()->setIdealDistance(500);
|
||||||
_objects.push_back(backpack2);
|
//_objects.push_back(backpack2);
|
||||||
// Test Code End
|
// Test Code End
|
||||||
|
|
||||||
_camera.setPosition(glm::vec3(0.0f, 0.0f, 10.0f));
|
_camera.setPosition(glm::vec3(0.0f, 0.0f, 10.0f));
|
||||||
@ -481,3 +481,13 @@ void SceneViewer::moveOperatingObject(const Ray& ray) {
|
|||||||
_operatingObject->setPosition(_hitRecord.position());
|
_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 rotateCamera(QMouseEvent* event);
|
||||||
void moveOperatingObject(const Ray& ray);
|
void moveOperatingObject(const Ray& ray);
|
||||||
|
|
||||||
|
public:
|
||||||
|
void addObject(Model* model);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// OpenGL functions
|
// OpenGL functions
|
||||||
virtual void initializeGL() override;
|
virtual void initializeGL() override;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user