KiCad PCB EDA Suite
|
A class used to derive camera objects from. More...
#include <camera.h>
Public Member Functions | |
CAMERA (float aInitialDistance) | |
Initialize a camera. | |
CAMERA (SFVEC3F aInitPos, SFVEC3F aLookat, PROJECTION_TYPE aProjectionType) | |
virtual | ~CAMERA () |
glm::mat4 | GetRotationMatrix () const |
Get the rotation matrix to be applied in a transformation camera. | |
const glm::mat4 & | GetViewMatrix () const |
const glm::mat4 & | GetViewMatrix_Inv () const |
const glm::mat4 & | GetProjectionMatrix () const |
const glm::mat4 & | GetProjectionMatrixInv () const |
const SFVEC3F & | GetRight () const |
const SFVEC3F & | GetUp () const |
const SFVEC3F & | GetDir () const |
const SFVEC3F & | GetPos () const |
const SFVEC2F & | GetFocalLen () const |
float | GetNear () const |
float | GetFar () const |
const CAMERA_FRUSTUM & | GetFrustum () const |
const SFVEC3F & | GetLookAtPos () const |
void | SetRotationMatrix (const glm::mat4 &aRotation) |
Set the rotation matrix to be applied in a transformation camera, without making any new calculations on camera. | |
void | SetViewMatrix (glm::mat4 aViewMatrix) |
Set the affine matrix to be applied to a transformation camera. | |
void | SetBoardLookAtPos (const SFVEC3F &aBoardPos) |
void | SetLookAtPos_T1 (const SFVEC3F &aLookAtPos) |
const SFVEC3F & | GetLookAtPos_T1 () const |
const SFVEC3F & | GetCameraPos () const |
const SFVEC3F & | GetCameraInitPos () const |
float | GetCameraMinDimension () const |
virtual void | Drag (const wxPoint &aNewMousePosition)=0 |
Calculate a new mouse drag position. | |
virtual void | Pan (const wxPoint &aNewMousePosition)=0 |
virtual void | Pan (const SFVEC3F &aDeltaOffsetInc)=0 |
virtual void | Pan_T1 (const SFVEC3F &aDeltaOffsetInc)=0 |
virtual void | Reset () |
Reset the camera to initial state. | |
virtual void | Reset_T1 () |
void | ResetXYpos () |
void | ResetXYpos_T1 () |
const wxPoint & | GetCurMousePosition () |
Get the current mouse position. | |
void | SetCurMousePosition (const wxPoint &aPosition) |
Update the current mouse position without make any new calculations on camera. | |
void | ToggleProjection () |
PROJECTION_TYPE | GetProjection () |
void | SetProjection (PROJECTION_TYPE aProjection) |
bool | SetCurWindowSize (const wxSize &aSize) |
Update the windows size of the camera. | |
void | ZoomReset () |
bool | Zoom (float aFactor) |
bool | Zoom_T1 (float aFactor) |
float | GetZoom () const |
float | GetMinZoom () |
void | SetMinZoom (float minZoom) |
float | GetMaxZoom () |
void | SetMaxZoom (float maxZoom) |
bool | ViewCommand_T1 (VIEW3D_TYPE aRequestedView) |
void | RotateScreen (float aAngleInRadians) |
Rotates the camera in screen plane. | |
void | RotateX (float aAngleInRadians) |
void | RotateY (float aAngleInRadians) |
void | RotateZ (float aAngleInRadians) |
void | RotateX_T1 (float aAngleInRadians) |
void | RotateY_T1 (float aAngleInRadians) |
void | RotateZ_T1 (float aAngleInRadians) |
virtual void | SetT0_and_T1_current_T () |
This will set T0 and T1 with the current values. | |
virtual void | Interpolate (float t) |
It will update the matrix to interpolate between T0 and T1 values. | |
void | SetInterpolateMode (CAMERA_INTERPOLATION aInterpolateMode) |
bool | ParametersChanged () |
bool | ParametersChangedQuery () const |
void | MakeRay (const SFVEC2I &aWindowPos, SFVEC3F &aOutOrigin, SFVEC3F &aOutDirection) const |
Make a ray based on a windows screen position. | |
void | MakeRay (const SFVEC2F &aWindowPos, SFVEC3F &aOutOrigin, SFVEC3F &aOutDirection) const |
Make a ray based on a windows screen position, it will interpolate based on the aWindowPos. | |
void | MakeRayAtCurrentMousePosition (SFVEC3F &aOutOrigin, SFVEC3F &aOutDirection) const |
Make a ray based on the latest mouse position. | |
void | Update () |
Update the camera. | |
Static Public Attributes | |
static const float | DEFAULT_MIN_ZOOM = 0.020f |
static const float | DEFAULT_MAX_ZOOM = 2.0f |
Protected Member Functions | |
void | zoomChanged () |
void | rebuildProjection () |
void | updateFrustum () |
void | updateViewMatrix () |
void | updateRotationMatrix () |
Protected Attributes | |
float | m_zoom |
3D zoom value – Z-distance is scaled by it | |
float | m_zoom_t0 |
float | m_zoom_t1 |
float | m_minZoom |
Possible 3D zoom range. | |
float | m_maxZoom |
SFVEC2I | m_windowSize |
The window size that this camera is working. | |
wxPoint | m_lastPosition |
The last mouse position in the screen. | |
glm::mat4 | m_rotationMatrix |
glm::mat4 | m_rotationMatrixAux |
glm::mat4 | m_viewMatrix |
glm::mat4 | m_viewMatrixInverse |
glm::mat4 | m_projectionMatrix |
glm::mat4 | m_projectionMatrixInv |
PROJECTION_TYPE | m_projectionType |
CAMERA_FRUSTUM | m_frustum |
SFVEC3F | m_right |
SFVEC3F | m_up |
SFVEC3F | m_dir |
SFVEC3F | m_pos |
SFVEC2F | m_focalLen |
SFVEC3F | m_camera_pos_init |
SFVEC3F | m_camera_pos |
SFVEC3F | m_camera_pos_t0 |
SFVEC3F | m_camera_pos_t1 |
SFVEC3F | m_lookat_pos |
SFVEC3F | m_lookat_pos_t0 |
SFVEC3F | m_lookat_pos_t1 |
SFVEC3F | m_board_lookat_pos_init |
Default boardlookat position (the board center). | |
SFVEC3F | m_rotate_aux |
Stores the rotation angle auxiliary. | |
SFVEC3F | m_rotate_aux_t0 |
SFVEC3F | m_rotate_aux_t1 |
CAMERA_INTERPOLATION | m_interpolation_mode |
std::vector< float > | m_scr_nX |
Precalc values array used to calc ray for each pixel (constant for the same window size). | |
std::vector< float > | m_scr_nY |
std::vector< SFVEC3F > | m_right_nX |
Precalc values array used to calc ray for each pixel, for X and Y axis of each new camera position. | |
std::vector< SFVEC3F > | m_up_nY |
bool | m_parametersChanged |
Set to true if any of the parameters in the camera was changed. | |
Static Protected Attributes | |
static const wxChar * | m_logTrace = wxT( "KI_TRACE_CAMERA" ) |
Trace mask used to enable or disable the trace output of this class. | |
A class used to derive camera objects from.
It must be derived by other classes to implement a real camera object.
|
explicit |
Initialize a camera.
aInitialDistance | Initial Z-distance to the board |
Definition at line 54 of file camera.cpp.
|
explicit |
Definition at line 61 of file camera.cpp.
References DEFAULT_MAX_ZOOM, DEFAULT_MIN_ZOOM, m_board_lookat_pos_init, m_camera_pos_init, m_interpolation_mode, m_logTrace, m_maxZoom, m_minZoom, m_projectionType, m_windowSize, and Reset().
|
pure virtual |
Calculate a new mouse drag position.
Implemented in TRACK_BALL.
Referenced by HIDPI_GL_3D_CANVAS::OnMouseMoveCamera().
|
inline |
Definition at line 170 of file camera.h.
Referenced by RENDER_3D_RAYTRACE_BASE::Reload().
float CAMERA::GetCameraMinDimension | ( | ) | const |
Definition at line 485 of file camera.cpp.
References m_camera_pos_init, m_frustum, and CAMERA_FRUSTUM::tang.
|
inline |
Definition at line 169 of file camera.h.
Referenced by EDA_3D_CANVAS::DisplayStatus().
|
inline |
|
inline |
Definition at line 135 of file camera.h.
Referenced by RENDER_3D_RAYTRACE_GL::Redraw(), RENDER_3D_RAYTRACE_RAM::Redraw(), RENDER_3D_RAYTRACE_BASE::render(), and RotateScreen().
|
inline |
Definition at line 140 of file camera.h.
Referenced by NL_3D_VIEWER_PLUGIN_IMPL::GetViewExtents(), NL_3D_VIEWER_PLUGIN_IMPL::GetViewFOV(), NL_3D_VIEWER_PLUGIN_IMPL::GetViewFrustum(), and NL_3D_VIEWER_PLUGIN_IMPL::SetViewExtents().
|
inline |
Definition at line 141 of file camera.h.
Referenced by NL_3D_VIEWER_PLUGIN_IMPL::GetPivotPosition(), and NL_3D_VIEWER_PLUGIN_IMPL::SetCameraMatrix().
|
inline |
Definition at line 167 of file camera.h.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and EDA_3D_CANVAS::render_pivot().
|
inline |
Definition at line 136 of file camera.h.
Referenced by RENDER_3D_OPENGL::Redraw(), and RENDER_3D_OPENGL::renderTransparentModels().
|
inline |
Definition at line 205 of file camera.h.
Referenced by NL_3D_VIEWER_PLUGIN_IMPL::GetIsViewPerspective(), EDA_3D_CANVAS::GetProjectionMode(), NL_3D_VIEWER_PLUGIN_IMPL::GetViewExtents(), NL_3D_VIEWER_PLUGIN_IMPL::GetViewFrustum(), NL_3D_VIEWER_PLUGIN_IMPL::SetCameraMatrix(), and EDA_3D_VIEWER_FRAME::setupUIConditions().
const glm::mat4 & CAMERA::GetProjectionMatrix | ( | ) | const |
Definition at line 473 of file camera.cpp.
References m_projectionMatrix.
Referenced by EDA_3D_MODEL_VIEWER::OnPaint(), RENDER_3D_OPENGL::Redraw(), EDA_3D_CANVAS::render3dmousePivot(), and EDA_3D_CANVAS::render_pivot().
const glm::mat4 & CAMERA::GetProjectionMatrixInv | ( | ) | const |
Definition at line 479 of file camera.cpp.
References m_projectionMatrixInv.
glm::mat4 CAMERA::GetRotationMatrix | ( | ) | const |
Get the rotation matrix to be applied in a transformation camera.
Definition at line 241 of file camera.cpp.
References m_rotationMatrix, and m_rotationMatrixAux.
Referenced by EDA_3D_MODEL_VIEWER::OnPaint(), RENDER_3D_OPENGL::render3dArrows(), and RotateScreen().
const glm::mat4 & CAMERA::GetViewMatrix | ( | ) | const |
Definition at line 509 of file camera.cpp.
References m_viewMatrix.
Referenced by NL_3D_VIEWER_PLUGIN_IMPL::GetCameraMatrix(), EDA_3D_MODEL_VIEWER::OnPaint(), APPEARANCE_CONTROLS_3D::onUpdateViewportsCb(), APPEARANCE_CONTROLS_3D::onViewportChanged(), RENDER_3D_OPENGL::Redraw(), EDA_3D_CANVAS::render3dmousePivot(), EDA_3D_CANVAS::render_pivot(), NL_3D_VIEWER_PLUGIN_IMPL::SetCameraMatrix(), and NL_3D_VIEWER_PLUGIN_IMPL::SetViewExtents().
const glm::mat4 & CAMERA::GetViewMatrix_Inv | ( | ) | const |
Definition at line 547 of file camera.cpp.
References m_viewMatrixInverse.
|
inline |
Definition at line 221 of file camera.h.
Referenced by EDA_3D_CANVAS::DisplayStatus(), EDA_3D_CANVAS::DoRePaint(), HIDPI_GL_3D_CANVAS::OnMouseWheelCamera(), EDA_3D_CANVAS::SetView3D(), and NL_3D_VIEWER_PLUGIN_IMPL::SetViewExtents().
|
virtual |
It will update the matrix to interpolate between T0 and T1 values.
t | the interpolation time, between 0.0f and 1.0f (it will clamp if >1). |
Reimplemented in TRACK_BALL.
Definition at line 711 of file camera.cpp.
References m_camera_pos, m_camera_pos_t0, m_camera_pos_t1, m_lookat_pos, m_lookat_pos_t0, m_lookat_pos_t1, m_parametersChanged, m_rotate_aux, m_rotate_aux_t0, m_rotate_aux_t1, m_zoom, m_zoom_t0, m_zoom_t1, rebuildProjection(), and updateRotationMatrix().
Referenced by EDA_3D_CANVAS::DoRePaint(), TRACK_BALL::Interpolate(), and EDA_3D_CANVAS::request_start_moving_camera().
void CAMERA::MakeRay | ( | const SFVEC2F & | aWindowPos, |
SFVEC3F & | aOutOrigin, | ||
SFVEC3F & | aOutDirection | ||
) | const |
Make a ray based on a windows screen position, it will interpolate based on the aWindowPos.
aWindowPos | the windows buffer position (float value). |
aOutOrigin | out origin position of the ray. |
aOutDirection | out direction. |
Definition at line 429 of file camera.cpp.
References m_dir, m_frustum, m_pos, m_projectionType, m_right_nX, m_up_nY, m_windowSize, and CAMERA_FRUSTUM::nc.
void CAMERA::MakeRay | ( | const SFVEC2I & | aWindowPos, |
SFVEC3F & | aOutOrigin, | ||
SFVEC3F & | aOutDirection | ||
) | const |
Make a ray based on a windows screen position.
aWindowPos | the windows buffer position. |
aOutOrigin | out origin position of the ray. |
aOutDirection | out direction |
Definition at line 407 of file camera.cpp.
References m_dir, m_frustum, m_pos, m_projectionType, m_right_nX, m_up_nY, m_windowSize, and CAMERA_FRUSTUM::nc.
Referenced by MakeRayAtCurrentMousePosition(), RAYPACKET::RAYPACKET(), RAYPACKET_InitRays(), and RAYPACKET_InitRays_with2DDisplacement().
Make a ray based on the latest mouse position.
aOutOrigin | out origin position of the ray. |
aOutDirection | out direction. |
Definition at line 461 of file camera.cpp.
References m_lastPosition, m_windowSize, and MakeRay().
Referenced by NL_3D_VIEWER_PLUGIN_IMPL::GetPointerPosition(), and EDA_3D_CANVAS::getRayAtCurrentMousePosition().
|
pure virtual |
Implemented in TRACK_BALL.
|
pure virtual |
Implemented in TRACK_BALL.
Referenced by HIDPI_GL_3D_CANVAS::OnMouseMoveCamera(), HIDPI_GL_3D_CANVAS::OnMouseWheelCamera(), EDA_3D_CANVAS::OnPanGesture(), and EDA_3D_CANVAS::OnZoomGesture().
|
pure virtual |
Implemented in TRACK_BALL.
Referenced by EDA_3D_CANVAS::SetView3D().
bool CAMERA::ParametersChanged | ( | ) |
Definition at line 729 of file camera.cpp.
References m_parametersChanged.
Referenced by EDA_3D_CANVAS::DoRePaint(), PCBNEW_JOBS_HANDLER::JobExportRender(), RENDER_3D_RAYTRACE_GL::Redraw(), and RENDER_3D_RAYTRACE_RAM::Redraw().
|
inline |
|
protected |
Definition at line 255 of file camera.cpp.
References CAMERA_FRUSTUM::angle, CAMERA_FRUSTUM::farD, CAMERA_FRUSTUM::fh, CAMERA_FRUSTUM::fw, m_camera_pos_init, m_focalLen, m_frustum, m_maxZoom, m_projectionMatrix, m_projectionMatrixInv, m_projectionType, m_scr_nX, m_scr_nY, m_windowSize, m_zoom, CAMERA_FRUSTUM::nearD, CAMERA_FRUSTUM::nh, CAMERA_FRUSTUM::nw, CAMERA_FRUSTUM::ratio, CAMERA_FRUSTUM::tang, and updateFrustum().
Referenced by Interpolate(), Reset(), SetCurWindowSize(), ToggleProjection(), Zoom(), zoomChanged(), and ZoomReset().
|
virtual |
Reset the camera to initial state.
Definition at line 78 of file camera.cpp.
References m_board_lookat_pos_init, m_camera_pos, m_camera_pos_init, m_camera_pos_t0, m_camera_pos_t1, m_lastPosition, m_lookat_pos, m_lookat_pos_t0, m_lookat_pos_t1, m_parametersChanged, m_projectionMatrix, m_projectionMatrixInv, m_rotate_aux, m_rotate_aux_t0, m_rotate_aux_t1, m_rotationMatrix, m_rotationMatrixAux, m_scr_nX, m_scr_nY, m_viewMatrix, m_viewMatrixInverse, m_zoom, m_zoom_t0, m_zoom_t1, rebuildProjection(), updateRotationMatrix(), and updateViewMatrix().
Referenced by CAMERA().
|
virtual |
Reimplemented in TRACK_BALL.
Definition at line 161 of file camera.cpp.
References m_board_lookat_pos_init, m_camera_pos_init, m_camera_pos_t1, m_lookat_pos_t1, m_rotate_aux_t0, m_rotate_aux_t1, and m_zoom_t1.
Referenced by TRACK_BALL::Reset_T1(), EDA_3D_CANVAS::SetView3D(), and ViewCommand_T1().
void CAMERA::ResetXYpos | ( | ) |
Definition at line 491 of file camera.cpp.
References m_camera_pos, m_parametersChanged, updateFrustum(), and updateViewMatrix().
void CAMERA::ResetXYpos_T1 | ( | ) |
Definition at line 502 of file camera.cpp.
References m_camera_pos_t1.
Referenced by EDA_3D_CANVAS::move_pivot_based_on_cur_mouse_position().
void CAMERA::RotateScreen | ( | float | aAngleInRadians | ) |
Rotates the camera in screen plane.
Definition at line 650 of file camera.cpp.
References GetDir(), GetRotationMatrix(), SetRotationMatrix(), and updateRotationMatrix().
Referenced by EDA_3D_CANVAS::OnRotateGesture().
void CAMERA::RotateX | ( | float | aAngleInRadians | ) |
Definition at line 658 of file camera.cpp.
References m_rotate_aux, and updateRotationMatrix().
Referenced by EDA_3D_CONTROLLER::RotateView().
void CAMERA::RotateX_T1 | ( | float | aAngleInRadians | ) |
Definition at line 679 of file camera.cpp.
References m_rotate_aux_t1.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and ViewCommand_T1().
void CAMERA::RotateY | ( | float | aAngleInRadians | ) |
Definition at line 665 of file camera.cpp.
References m_rotate_aux, and updateRotationMatrix().
Referenced by EDA_3D_CONTROLLER::RotateView().
void CAMERA::RotateY_T1 | ( | float | aAngleInRadians | ) |
Definition at line 685 of file camera.cpp.
References m_rotate_aux_t1.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and ViewCommand_T1().
void CAMERA::RotateZ | ( | float | aAngleInRadians | ) |
Definition at line 672 of file camera.cpp.
References m_rotate_aux, and updateRotationMatrix().
Referenced by EDA_3D_CONTROLLER::RotateView().
void CAMERA::RotateZ_T1 | ( | float | aAngleInRadians | ) |
Definition at line 691 of file camera.cpp.
References m_rotate_aux_t1.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and ViewCommand_T1().
void CAMERA::SetBoardLookAtPos | ( | const SFVEC3F & | aBoardPos | ) |
Definition at line 182 of file camera.cpp.
References m_board_lookat_pos_init, m_lookat_pos, m_parametersChanged, updateFrustum(), and updateViewMatrix().
Referenced by RENDER_3D_OPENGL::reload(), and RENDER_3D_RAYTRACE_BASE::Reload().
void CAMERA::SetCurMousePosition | ( | const wxPoint & | aPosition | ) |
Update the current mouse position without make any new calculations on camera.
Definition at line 553 of file camera.cpp.
References m_lastPosition.
Referenced by EDA_3D_MODEL_VIEWER::OnMouseMove(), HIDPI_GL_3D_CANVAS::OnMouseMoveCamera(), EDA_3D_MODEL_VIEWER::OnMouseWheel(), HIDPI_GL_3D_CANVAS::OnMouseWheelCamera(), EDA_3D_CANVAS::OnPanGesture(), EDA_3D_CANVAS::OnRotateGesture(), and EDA_3D_CANVAS::OnZoomGesture().
bool CAMERA::SetCurWindowSize | ( | const wxSize & | aSize | ) |
Update the windows size of the camera.
Definition at line 570 of file camera.cpp.
References m_windowSize, and rebuildProjection().
Referenced by EDA_3D_CANVAS::DoRePaint(), PCBNEW_JOBS_HANDLER::JobExportRender(), EDA_3D_MODEL_VIEWER::OnMouseMove(), HIDPI_GL_3D_CANVAS::OnMouseMoveCamera(), and EDA_3D_MODEL_VIEWER::OnPaint().
|
inline |
Definition at line 264 of file camera.h.
Referenced by EDA_3D_CANVAS::move_pivot_based_on_cur_mouse_position(), and EDA_3D_CANVAS::SetView3D().
|
inline |
Definition at line 162 of file camera.h.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), EDA_3D_CANVAS::move_pivot_based_on_cur_mouse_position(), and NL_3D_VIEWER_PLUGIN_IMPL::SetPivotPosition().
|
inline |
Definition at line 231 of file camera.h.
Referenced by RENDER_3D_RAYTRACE_BASE::Reload().
|
inline |
Definition at line 224 of file camera.h.
Referenced by RENDER_3D_RAYTRACE_BASE::Reload().
|
inline |
Definition at line 206 of file camera.h.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and EDA_3D_CANVAS::SetProjectionMode().
void CAMERA::SetRotationMatrix | ( | const glm::mat4 & | aRotation | ) |
Set the rotation matrix to be applied in a transformation camera, without making any new calculations on camera.
aRotation | is the total rotation matrix of the camera. |
Definition at line 247 of file camera.cpp.
References m_parametersChanged, m_rotationMatrix, and m_rotationMatrixAux.
Referenced by RotateScreen(), and SetViewMatrix().
|
virtual |
This will set T0 and T1 with the current values.
Reimplemented in TRACK_BALL.
Definition at line 697 of file camera.cpp.
References m_camera_pos, m_camera_pos_t0, m_camera_pos_t1, m_lookat_pos, m_lookat_pos_t0, m_lookat_pos_t1, m_rotate_aux, m_rotate_aux_t0, m_rotate_aux_t1, m_zoom, m_zoom_t0, and m_zoom_t1.
Referenced by EDA_3D_CANVAS::move_pivot_based_on_cur_mouse_position(), TRACK_BALL::SetT0_and_T1_current_T(), EDA_3D_CANVAS::SetView3D(), and ViewCommand_T1().
void CAMERA::SetViewMatrix | ( | glm::mat4 | aViewMatrix | ) |
Set the affine matrix to be applied to a transformation camera.
aViewMatrix | is the affine matrix of the camera. The affine matrix maps coordinates in the world frame to those in the camera frame. |
Definition at line 515 of file camera.cpp.
References m_camera_pos, m_camera_pos_init, m_logTrace, m_lookat_pos, m_maxZoom, m_minZoom, m_rotationMatrix, m_rotationMatrixAux, m_viewMatrix, m_zoom, and SetRotationMatrix().
Referenced by APPEARANCE_CONTROLS_3D::doApplyViewport(), and NL_3D_VIEWER_PLUGIN_IMPL::SetCameraMatrix().
void CAMERA::ToggleProjection | ( | ) |
Definition at line 559 of file camera.cpp.
References m_projectionType, and rebuildProjection().
Referenced by EDA_3D_CONTROLLER::ToggleOrtho(), and PANEL_PREVIEW_3D_MODEL::View3DISO().
|
inline |
Update the camera.
Definition at line 309 of file camera.h.
Referenced by NL_3D_VIEWER_PLUGIN_IMPL::SetCameraMatrix().
|
protected |
Definition at line 348 of file camera.cpp.
References CAMERA_FRUSTUM::farD, CAMERA_FRUSTUM::fbl, CAMERA_FRUSTUM::fbr, CAMERA_FRUSTUM::fc, CAMERA_FRUSTUM::fh, CAMERA_FRUSTUM::ftl, CAMERA_FRUSTUM::ftr, CAMERA_FRUSTUM::fw, m_dir, m_frustum, m_pos, m_right, m_right_nX, m_scr_nX, m_scr_nY, m_up, m_up_nY, m_viewMatrix, m_viewMatrixInverse, m_windowSize, CAMERA_FRUSTUM::nbl, CAMERA_FRUSTUM::nbr, CAMERA_FRUSTUM::nc, CAMERA_FRUSTUM::nearD, CAMERA_FRUSTUM::nh, CAMERA_FRUSTUM::ntl, CAMERA_FRUSTUM::ntr, and CAMERA_FRUSTUM::nw.
Referenced by TRACK_BALL::Drag(), TRACK_BALL::Pan(), rebuildProjection(), ResetXYpos(), SetBoardLookAtPos(), and updateRotationMatrix().
|
protected |
Definition at line 220 of file camera.cpp.
References m_parametersChanged, m_rotate_aux, m_rotationMatrixAux, normalise2PI(), updateFrustum(), and updateViewMatrix().
Referenced by Interpolate(), Reset(), RotateScreen(), RotateX(), RotateY(), and RotateZ().
|
protected |
Definition at line 212 of file camera.cpp.
References m_camera_pos, m_lookat_pos, m_rotationMatrix, m_rotationMatrixAux, and m_viewMatrix.
Referenced by TRACK_BALL::Drag(), TRACK_BALL::Pan(), Reset(), ResetXYpos(), SetBoardLookAtPos(), updateRotationMatrix(), Zoom(), zoomChanged(), and ZoomReset().
bool CAMERA::ViewCommand_T1 | ( | VIEW3D_TYPE | aRequestedView | ) |
Definition at line 110 of file camera.cpp.
References Reset_T1(), RotateX_T1(), RotateY_T1(), RotateZ_T1(), and SetT0_and_T1_current_T().
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and EDA_3D_CANVAS::SetView3D().
bool CAMERA::Zoom | ( | float | aFactor | ) |
Definition at line 597 of file camera.cpp.
References m_camera_pos, m_maxZoom, m_minZoom, m_zoom, rebuildProjection(), updateViewMatrix(), and zoom.
Referenced by EDA_3D_CANVAS::OnMagnify(), EDA_3D_MODEL_VIEWER::OnMouseWheel(), HIDPI_GL_3D_CANVAS::OnMouseWheelCamera(), EDA_3D_CANVAS::OnZoomGesture(), and NL_3D_VIEWER_PLUGIN_IMPL::SetViewExtents().
bool CAMERA::Zoom_T1 | ( | float | aFactor | ) |
Definition at line 628 of file camera.cpp.
References m_camera_pos_init, m_camera_pos_t1, m_maxZoom, m_minZoom, m_zoom, and m_zoom_t1.
Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and EDA_3D_CANVAS::SetView3D().
|
protected |
Definition at line 197 of file camera.cpp.
References m_camera_pos, m_camera_pos_init, m_maxZoom, m_minZoom, m_zoom, rebuildProjection(), and updateViewMatrix().
void CAMERA::ZoomReset | ( | ) |
Definition at line 586 of file camera.cpp.
References m_camera_pos, m_camera_pos_init, m_zoom, rebuildProjection(), and updateViewMatrix().
|
static |
Definition at line 106 of file camera.h.
Referenced by CAMERA(), and RENDER_3D_RAYTRACE_BASE::Reload().
|
static |
|
protected |
Default boardlookat position (the board center).
Definition at line 367 of file camera.h.
Referenced by CAMERA(), Reset(), Reset_T1(), and SetBoardLookAtPos().
|
protected |
Definition at line 360 of file camera.h.
Referenced by Interpolate(), TRACK_BALL::Pan(), TRACK_BALL::Pan_T1(), Reset(), ResetXYpos(), SetT0_and_T1_current_T(), SetViewMatrix(), updateViewMatrix(), Zoom(), zoomChanged(), and ZoomReset().
|
protected |
Definition at line 359 of file camera.h.
Referenced by CAMERA(), GetCameraMinDimension(), rebuildProjection(), Reset(), Reset_T1(), SetViewMatrix(), Zoom_T1(), zoomChanged(), and ZoomReset().
|
protected |
Definition at line 361 of file camera.h.
Referenced by Interpolate(), Reset(), and SetT0_and_T1_current_T().
|
protected |
Definition at line 362 of file camera.h.
Referenced by Interpolate(), TRACK_BALL::Pan_T1(), Reset(), Reset_T1(), ResetXYpos_T1(), SetT0_and_T1_current_T(), and Zoom_T1().
|
protected |
Definition at line 354 of file camera.h.
Referenced by MakeRay(), and updateFrustum().
|
protected |
Definition at line 357 of file camera.h.
Referenced by rebuildProjection().
|
protected |
Definition at line 350 of file camera.h.
Referenced by GetCameraMinDimension(), MakeRay(), TRACK_BALL::Pan(), rebuildProjection(), and updateFrustum().
|
protected |
Definition at line 373 of file camera.h.
Referenced by CAMERA(), and TRACK_BALL::Interpolate().
|
protected |
The last mouse position in the screen.
Definition at line 340 of file camera.h.
Referenced by TRACK_BALL::Drag(), MakeRayAtCurrentMousePosition(), TRACK_BALL::Pan(), Reset(), and SetCurMousePosition().
|
protected |
Definition at line 364 of file camera.h.
Referenced by Interpolate(), Reset(), SetBoardLookAtPos(), SetT0_and_T1_current_T(), SetViewMatrix(), and updateViewMatrix().
|
protected |
Definition at line 365 of file camera.h.
Referenced by Interpolate(), Reset(), and SetT0_and_T1_current_T().
|
protected |
Definition at line 366 of file camera.h.
Referenced by Interpolate(), Reset(), Reset_T1(), and SetT0_and_T1_current_T().
|
protected |
Definition at line 330 of file camera.h.
Referenced by CAMERA(), rebuildProjection(), SetViewMatrix(), Zoom(), Zoom_T1(), and zoomChanged().
|
protected |
Possible 3D zoom range.
Definition at line 329 of file camera.h.
Referenced by CAMERA(), SetViewMatrix(), Zoom(), Zoom_T1(), and zoomChanged().
|
protected |
Set to true if any of the parameters in the camera was changed.
Definition at line 391 of file camera.h.
Referenced by TRACK_BALL::Drag(), Interpolate(), TRACK_BALL::Pan(), ParametersChanged(), Reset(), ResetXYpos(), SetBoardLookAtPos(), SetRotationMatrix(), and updateRotationMatrix().
|
protected |
Definition at line 355 of file camera.h.
Referenced by MakeRay(), and updateFrustum().
|
protected |
Definition at line 346 of file camera.h.
Referenced by GetProjectionMatrix(), rebuildProjection(), and Reset().
|
protected |
Definition at line 347 of file camera.h.
Referenced by GetProjectionMatrixInv(), rebuildProjection(), and Reset().
|
protected |
Definition at line 348 of file camera.h.
Referenced by CAMERA(), MakeRay(), TRACK_BALL::Pan(), rebuildProjection(), and ToggleProjection().
|
protected |
Definition at line 352 of file camera.h.
Referenced by updateFrustum().
|
protected |
Precalc values array used to calc ray for each pixel, for X and Y axis of each new camera position.
Definition at line 385 of file camera.h.
Referenced by MakeRay(), and updateFrustum().
|
protected |
Stores the rotation angle auxiliary.
Definition at line 369 of file camera.h.
Referenced by Interpolate(), Reset(), RotateX(), RotateY(), RotateZ(), SetT0_and_T1_current_T(), and updateRotationMatrix().
|
protected |
Definition at line 370 of file camera.h.
Referenced by Interpolate(), Reset(), Reset_T1(), and SetT0_and_T1_current_T().
|
protected |
Definition at line 371 of file camera.h.
Referenced by Interpolate(), Reset(), Reset_T1(), RotateX_T1(), RotateY_T1(), RotateZ_T1(), and SetT0_and_T1_current_T().
|
protected |
Definition at line 342 of file camera.h.
Referenced by TRACK_BALL::Drag(), GetRotationMatrix(), TRACK_BALL::Interpolate(), Reset(), SetRotationMatrix(), TRACK_BALL::SetT0_and_T1_current_T(), SetViewMatrix(), and updateViewMatrix().
|
protected |
Definition at line 343 of file camera.h.
Referenced by GetRotationMatrix(), Reset(), SetRotationMatrix(), SetViewMatrix(), updateRotationMatrix(), and updateViewMatrix().
|
protected |
Precalc values array used to calc ray for each pixel (constant for the same window size).
Definition at line 378 of file camera.h.
Referenced by rebuildProjection(), Reset(), and updateFrustum().
|
protected |
Definition at line 379 of file camera.h.
Referenced by rebuildProjection(), Reset(), and updateFrustum().
|
protected |
Definition at line 353 of file camera.h.
Referenced by updateFrustum().
|
protected |
Definition at line 386 of file camera.h.
Referenced by MakeRay(), and updateFrustum().
|
protected |
Definition at line 344 of file camera.h.
Referenced by GetViewMatrix(), Reset(), SetViewMatrix(), updateFrustum(), and updateViewMatrix().
|
protected |
Definition at line 345 of file camera.h.
Referenced by GetViewMatrix_Inv(), Reset(), and updateFrustum().
|
protected |
The window size that this camera is working.
Definition at line 335 of file camera.h.
Referenced by CAMERA(), TRACK_BALL::Drag(), MakeRay(), MakeRayAtCurrentMousePosition(), TRACK_BALL::Pan(), rebuildProjection(), SetCurWindowSize(), and updateFrustum().
|
protected |
3D zoom value – Z-distance is scaled by it
Definition at line 322 of file camera.h.
Referenced by Interpolate(), rebuildProjection(), Reset(), SetT0_and_T1_current_T(), SetViewMatrix(), Zoom(), Zoom_T1(), zoomChanged(), and ZoomReset().
|
protected |
Definition at line 323 of file camera.h.
Referenced by Interpolate(), Reset(), and SetT0_and_T1_current_T().
|
protected |
Definition at line 324 of file camera.h.
Referenced by Interpolate(), Reset(), Reset_T1(), SetT0_and_T1_current_T(), and Zoom_T1().