Started work on removing the zoom in limit
This commit is contained in:
parent
ffcf0e94ab
commit
094fce776f
16 changed files with 78 additions and 23 deletions
|
|
@ -8,7 +8,7 @@
|
|||
#include <iostream>
|
||||
|
||||
DrawCamera::DrawCamera():
|
||||
c({0, 0}, WorldScalar(1000000), 0.0)
|
||||
c({0, 0}, WorldScalar(10), 0.0)
|
||||
//c({-843000, -72500}, WorldScalar(1000), 0.0)
|
||||
//c({0, 0}, WorldScalar(1000), 0.0)
|
||||
//c({"1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"}, WorldScalar("1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"), 0.0)
|
||||
|
|
@ -55,6 +55,15 @@ void DrawCamera::smooth_move_to(World& w, const CoordSpaceHelper& newCoords, Vec
|
|||
smoothMove.moveTime = (instantJump || w.main.toolbar.jumpTransitionTime <= 0.01f) ? w.main.toolbar.jumpTransitionTime : 0.0f;
|
||||
}
|
||||
|
||||
void DrawCamera::scale_up(World& w, const WorldScalar& scaleUpAmount) {
|
||||
smoothMove.occurring = false;
|
||||
c.scale_about({0, 0}, scaleUpAmount, true);
|
||||
startZoomVal *= scaleUpAmount;
|
||||
startZoomMousePos *= scaleUpAmount;
|
||||
startZoomCameraPos *= scaleUpAmount;
|
||||
set_viewing_area(w.main.window.size.cast<float>());
|
||||
}
|
||||
|
||||
void DrawCamera::update_main(World& w) {
|
||||
if(smoothMove.occurring) {
|
||||
BezierEasing zoomAnim{w.main.toolbar.jumpTransitionEasing};
|
||||
|
|
@ -118,13 +127,9 @@ void DrawCamera::update_main(World& w) {
|
|||
if(isAccurateZooming) {
|
||||
WorldScalar zoomFactor(std::pow(1.0 + w.main.toolbar.dragZoomSpeed, w.main.input.mouse.move.y()));
|
||||
c.scale(zoomFactor);
|
||||
if(c.inverseScale < WorldScalar(1))
|
||||
c.inverseScale = WorldScalar(1);
|
||||
else {
|
||||
WorldVec mVec = startZoomCameraPos - startZoomMousePos;
|
||||
WorldScalar mX = c.inverseScale / startZoomVal;
|
||||
c.pos = startZoomMousePos + mVec * mX;
|
||||
}
|
||||
WorldVec mVec = startZoomCameraPos - startZoomMousePos;
|
||||
WorldScalar mX = c.inverseScale / startZoomVal;
|
||||
c.pos = startZoomMousePos + mVec * mX;
|
||||
}
|
||||
else if(w.drawProg.controls.middleClickHeld || (w.drawProg.controls.leftClickHeld && w.drawProg.drawTool->get_type() == DrawingProgramToolType::PAN))
|
||||
c.pos -= c.dir_from_space(w.main.input.mouse.move);
|
||||
|
|
@ -136,12 +141,8 @@ void DrawCamera::update_main(World& w) {
|
|||
zoomFactor = WorldScalar(1) / zoomFactor;
|
||||
|
||||
c.scale(zoomFactor);
|
||||
if(c.inverseScale < WorldScalar(1))
|
||||
c.inverseScale = WorldScalar(1);
|
||||
else {
|
||||
WorldVec mVec = c.pos - w.get_mouse_world_pos();
|
||||
c.pos = w.get_mouse_world_pos() + mVec / zoomFactor;
|
||||
}
|
||||
WorldVec mVec = c.pos - w.get_mouse_world_pos();
|
||||
c.pos = w.get_mouse_world_pos() + mVec / zoomFactor;
|
||||
}
|
||||
if(w.main.input.key(InputManager::KEY_CAMERA_ROTATE_COUNTERCLOCKWISE).held && !w.main.input.text.get_accepting_input()) {
|
||||
c.rotate_about(c.from_space(w.main.window.size.cast<float>() * 0.5f), -w.main.deltaTime);
|
||||
|
|
@ -152,4 +153,9 @@ void DrawCamera::update_main(World& w) {
|
|||
}
|
||||
|
||||
set_viewing_area(w.main.window.size.cast<float>());
|
||||
|
||||
if(c.inverseScale < WorldScalar(1)) {
|
||||
std::cout << "yes!" << std::endl;
|
||||
w.scale_up(WorldScalar(1000000));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue