Commit Graph

44 Commits

Author SHA1 Message Date
Enrico Turri
6c36577e8e #3782 - World Z axis always vertical for non-free camera 2020-03-09 15:23:29 +01:00
bubnikv
a87ba5d6a6 Renormalization of the camera rotation quaternion after each change
fixes degeneration of the camera rotation on long rapid rotations.
2020-03-03 13:47:10 +01:00
bubnikv
0a0219961b Free rotating camera reworked to rotate around the free rotation
axis in a single step.
2020-02-28 14:59:59 +01:00
bubnikv
b6068b6278 Camera refactored to use quaternions primarily for processing
rotations due to numerical reasons (no need for normalization
and orthogonalization of the rotation matrix).
2020-02-28 13:29:05 +01:00
Enrico Turri
847efec2ed ENABLE_6DOF_CAMERA set as default 2020-02-13 12:13:54 +01:00
Enrico Turri
0f5f2bc519 Reintroduce rotation limits for camera for FDM printers 2020-02-10 12:36:52 +01:00
Enrico Turri
da3cb30b7c Follow-up of 17a6b696e7 -> Fixed build when tech ENABLE_6DOF_CAMERA is disabled 2020-01-29 14:44:03 +01:00
Enrico Turri
17a6b696e7 Workaround to fix SPE-1082 + refactoring of 6 dof camera 2020-01-29 12:08:38 +01:00
Enrico Turri
15cb8ec653 Another refactoring into class Camera 2020-01-28 09:13:54 +01:00
Enrico Turri
83e8cfa206 Small refactoring into class Camera 2020-01-27 13:39:44 +01:00
Enrico Turri
02aa629449 3DConnexion devices -> Tweak of sensitivity parameters and dependency of translation from zoom factor 2020-01-17 09:36:34 +01:00
Enrico Turri
a9529fbcdc Added method void Camera::rotate_local_around_pivot(const Vec3d& rotation_rad, const Vec3d& pivot) to rotate the camera around a generic point 2020-01-16 12:00:54 +01:00
Enrico Turri
9df7eb4e08 Customizable use of 6 dof camera 2020-01-16 09:12:36 +01:00
Enrico Turri
62e60bcb43 Six degrees of freedom camera - 1st installment 2020-01-15 12:49:34 +01:00
bubnikv
9406b50447 Const correctness improvements:
removed some unnecessary const_casts that remove const.
2020-01-03 16:33:04 +01:00
Enrico Turri
57d069bd0a Some rework on layout of imgui dialogs 2019-12-11 15:30:25 +01:00
Enrico Turri
3dd46f2e03 ENABLE_THUMBNAIL_GENERATOR -> some other refactoring 2019-11-28 15:19:42 +01:00
Enrico Turri
ddd1df1552 ENABLE_THUMBNAIL_GENERATOR -> render printbed into thumbnails 2019-11-28 14:18:24 +01:00
Enrico Turri
bd1ee8ee4a Small refactoring in Camera::calc_zoom_to_bounding_box_factor 2019-11-28 12:14:31 +01:00
Enrico Turri
55a4b99e44 Fixed bug into Camera::set_target() 2019-11-07 11:48:59 +01:00
Enrico Turri
a624590b36 Fixed conflicts after merge with master 2019-11-07 09:55:44 +01:00
Enrico Turri
f94f75d481 ENABLE_THUMBNAIL_GENERATOR -> Render thumbnails using shader 2019-11-01 12:19:27 +01:00
Enrico Turri
bf8fcabb29 ENABLE_THUMBNAIL_GENERATOR -> Use orthographic camera when rendering thumbnails 2019-10-31 17:03:33 +01:00
Enrico Turri
636e446da1 ENABLE_THUMBNAIL_GENERATOR -> Changes to zoom factor and centering algorithm when rendering thumbnails 2019-10-31 16:40:38 +01:00
Enrico Turri
e6403a74ef ENABLE_3DCONNEXION_DEVICES tech set as default 2019-10-11 15:51:36 +02:00
Enrico Turri
f4654e376e ENABLE_3DCONNEXION_DEVICES -> Slightly increased camera target movement limits 2019-10-10 10:49:47 +02:00
Enrico Turri
587effbedf ENABLE_3DCONNEXION_DEVICES -> Refactored Mouse3DController to be unaware of current active GLCanvas3D 2019-10-03 11:38:31 +02:00
Enrico Turri
8078e00c13 Fixed automatic update of perspective camera 2019-08-03 09:07:38 +02:00
Enrico Turri
a07088a8d9 #2561 - Fixed freezing of perspective camera when zooming-in 2019-06-26 14:25:05 +02:00
Enrico Turri
992170c5f6 1) Perspective camera set as default camera type
2) Camera type selection added to Preferences dialog
2019-06-24 15:55:14 +02:00
Enrico Turri
8b3d88bc0a Adaptive perspective camera frustrum 2019-06-24 09:38:46 +02:00
Enrico Turri
b7f67369c9 Serialized camera type and fixed Mac build 2019-06-20 10:02:52 +02:00
Enrico Turri
da8179d9c7 More camera related functionalities moved from GLCanvas3D to Camera 2019-06-19 14:18:51 +02:00
Enrico Turri
a3e6412113 Enabled perspective camera 2019-06-19 13:01:18 +02:00
Enrico Turri
ac8de0bcaf Follow-up of 1a91add2e6 -> Improvements to tighter camera frustrum to reduce z-fighting 2019-06-14 15:37:29 +02:00
Enrico Turri
1a91add2e6 Tighter camera frustrum to reduce z-fighting 2019-06-14 10:38:09 +02:00
Enrico Turri
a99466ef1d Method Camera::apply_projection() called at every rendered frame 2019-06-13 10:24:19 +02:00
Enrico Turri
f0b228c4d2 Added support for distance between camera position and camera target 2019-06-13 09:12:44 +02:00
Enrico Turri
783a527109 Added imgui debug dialog for camera statistics 2019-05-20 09:39:57 +02:00
Enrico Turri
8c6304688d Camera refactoring: Frustrum calculations moved into Camera class 2019-05-16 15:54:11 +02:00
Enrico Turri
3a5485a179 Flip X mouse deltas if bed is upside down (when camera up vector has negative Z) 2019-04-30 15:09:25 +02:00
Enrico Turri
d87b478d60 Camera refactoring
1) All camera related OpenGL calls moved into class

2) The Camera class now stores the view matrix, the projection matrix and the viewport

3) The Camera class now exposes methods to get the camera orientation vectors, the camera position, the view matrix, the projection matrix and the viewport

4) All the code operating on the camera or requiring camera data has been modified to use the new methods
2019-04-01 10:00:10 +02:00
Enrico Turri
b5217918cf Code cleanup 2019-03-08 12:03:31 +01:00
Enrico Turri
aa4c44dbea Use unique camera shared by 3d view and preview (experimental) 2019-03-08 12:03:17 +01:00