VOXEDIT: viewport controller init method

master
Martin Gerhardy 2021-11-20 13:39:13 +01:00
parent f59fff15d1
commit 46536bbba8
5 changed files with 19 additions and 14 deletions

View File

@ -66,19 +66,19 @@ void MainWindow::resetCamera() {
bool MainWindow::init() {
_scene->init(voxedit::ViewportController::RenderMode::Editor);
_scene->setMode(voxedit::ViewportController::SceneCameraMode::Free);
_scene->controller().setMode(voxedit::ViewportController::SceneCameraMode::Free);
_sceneTop->init(voxedit::ViewportController::RenderMode::Editor);
_sceneTop->setMode(voxedit::ViewportController::SceneCameraMode::Top);
_sceneTop->controller().setMode(voxedit::ViewportController::SceneCameraMode::Top);
_sceneLeft->init(voxedit::ViewportController::RenderMode::Editor);
_sceneLeft->setMode(voxedit::ViewportController::SceneCameraMode::Left);
_sceneLeft->controller().setMode(voxedit::ViewportController::SceneCameraMode::Left);
_sceneFront->init(voxedit::ViewportController::RenderMode::Editor);
_sceneFront->setMode(voxedit::ViewportController::SceneCameraMode::Front);
_sceneFront->controller().setMode(voxedit::ViewportController::SceneCameraMode::Front);
_sceneAnimation->init(voxedit::ViewportController::RenderMode::Animation);
_sceneAnimation->setMode(voxedit::ViewportController::SceneCameraMode::Free);
_sceneAnimation->controller().setMode(voxedit::ViewportController::SceneCameraMode::Free);
_showAxisVar = core::Var::get(cfg::VoxEditShowaxis, "1", "Show the axis", core::Var::boolValidator);
_showGridVar = core::Var::get(cfg::VoxEditShowgrid, "1", "Show the grid", core::Var::boolValidator);

View File

@ -33,8 +33,11 @@ Viewport::~Viewport() {
}
bool Viewport::init(ViewportController::RenderMode renderMode) {
if (!_controller.init()) {
return false;
}
_controller.setRenderMode(renderMode);
setMode(ViewportController::SceneCameraMode::Free);
_controller.setMode(ViewportController::SceneCameraMode::Free);
resetCamera();
_debug = core::Var::get("ve_viewportdebugflag", 0);
@ -195,10 +198,6 @@ bool Viewport::setupFrameBuffer(const glm::ivec2& frameBufferSize) {
return true;
}
void Viewport::setMode(ViewportController::SceneCameraMode mode) {
_controller.init(mode);
}
void Viewport::renderToFrameBuffer() {
core_trace_scoped(EditorSceneRenderFramebuffer);
video::clearColor(core::Color::Clear);

View File

@ -38,7 +38,6 @@ public:
const core::String& id() const;
void setMode(ViewportController::SceneCameraMode mode = ViewportController::SceneCameraMode::Free);
void resetCamera();
bool saveImage(const char* filename);

View File

@ -37,8 +37,7 @@ void ViewportController::update(double deltaFrameSeconds) {
_camera.update(deltaFrameSeconds);
}
void ViewportController::init(ViewportController::SceneCameraMode mode) {
_camera.setRotationType(video::CameraRotationType::Target);
void ViewportController::setMode(ViewportController::SceneCameraMode mode) {
_camMode = mode;
if (mode == ViewportController::SceneCameraMode::Free) {
_camera.setMode(video::CameraMode::Perspective);
@ -47,7 +46,14 @@ void ViewportController::init(ViewportController::SceneCameraMode mode) {
//_camera.setMode(video::CameraMode::Orthogonal);
_camera.setMode(video::CameraMode::Perspective);
}
}
bool ViewportController::init() {
_rotationSpeed = core::Var::getSafe(cfg::ClientMouseRotationSpeed);
_camera.setAngles(0.0f, 0.0f, 0.0f);
_camera.setFarPlane(5000.0f);
_camera.setRotationType(video::CameraRotationType::Target);
return true;
}
void ViewportController::onResize(const glm::ivec2& frameBufferSize, const glm::ivec2& windowSize) {

View File

@ -41,7 +41,8 @@ public:
int _mouseX = 0;
int _mouseY = 0;
void init(SceneCameraMode mode);
bool init();
void setMode(SceneCameraMode mode);
void resetCamera(const voxel::Region& region);
RenderMode renderMode() const;