KiCad PCB EDA Suite
Loading...
Searching...
No Matches
TRACK_BALL Class Reference

#include <track_ball.h>

Inheritance diagram for TRACK_BALL:
CAMERA

Public Member Functions

 TRACK_BALL (float aInitialDistance)
 
 TRACK_BALL (SFVEC3F aInitPos, SFVEC3F aLookat, PROJECTION_TYPE aProjectionType)
 
virtual ~TRACK_BALL ()
 
void Drag (const wxPoint &aNewMousePosition) override
 Calculate a new mouse drag position.
 
void Pan (const wxPoint &aNewMousePosition) override
 
void Pan (const SFVEC3F &aDeltaOffsetInc) override
 
void Pan_T1 (const SFVEC3F &aDeltaOffsetInc) override
 
void Reset_T1 () override
 
void SetT0_and_T1_current_T () override
 This will set T0 and T1 with the current values.
 
void Interpolate (float t) override
 It will update the matrix to interpolate between T0 and T1 values.
 
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 SFVEC3FGetRight () const
 
const SFVEC3FGetUp () const
 
const SFVEC3FGetDir () const
 
const SFVEC3FGetPos () const
 
const SFVEC2FGetFocalLen () const
 
float GetNear () const
 
float GetFar () const
 
const CAMERA_FRUSTUMGetFrustum () const
 
const SFVEC3FGetLookAtPos () 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 SFVEC3FGetLookAtPos_T1 () const
 
const SFVEC3FGetCameraPos () const
 
const SFVEC3FGetCameraInitPos () const
 
float GetCameraMinDimension () const
 
virtual void Reset ()
 Reset the camera to initial state.
 
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)
 
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< SFVEC3Fm_right_nX
 Precalc values array used to calc ray for each pixel, for X and Y axis of each new camera position.
 
std::vector< SFVEC3Fm_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.
 

Private Member Functions

void initQuat ()
 

Private Attributes

double m_quat_t0 [4]
 interpolate quaternions of the trackball
 
double m_quat_t1 [4]
 

Detailed Description

Definition at line 32 of file track_ball.h.

Constructor & Destructor Documentation

◆ TRACK_BALL() [1/2]

TRACK_BALL::TRACK_BALL ( float aInitialDistance)
explicit

Definition at line 38 of file track_ball.cpp.

References CAMERA::CAMERA(), initQuat(), and CAMERA::m_logTrace.

◆ TRACK_BALL() [2/2]

TRACK_BALL::TRACK_BALL ( SFVEC3F aInitPos,
SFVEC3F aLookat,
PROJECTION_TYPE aProjectionType )
explicit

Definition at line 45 of file track_ball.cpp.

References CAMERA::CAMERA(), initQuat(), and CAMERA::m_logTrace.

◆ ~TRACK_BALL()

virtual TRACK_BALL::~TRACK_BALL ( )
inlinevirtual

Definition at line 38 of file track_ball.h.

Member Function Documentation

◆ Drag()

void TRACK_BALL::Drag ( const wxPoint & aNewMousePosition)
overridevirtual

◆ GetCameraInitPos()

const SFVEC3F & CAMERA::GetCameraInitPos ( ) const
inlineinherited

Definition at line 166 of file camera.h.

References m_camera_pos_init.

◆ GetCameraMinDimension()

float CAMERA::GetCameraMinDimension ( ) const
inherited

Definition at line 482 of file camera.cpp.

References m_camera_pos_init, and m_frustum.

◆ GetCameraPos()

const SFVEC3F & CAMERA::GetCameraPos ( ) const
inlineinherited

Definition at line 165 of file camera.h.

References m_camera_pos.

◆ GetCurMousePosition()

const wxPoint & CAMERA::GetCurMousePosition ( )
inlineinherited

Get the current mouse position.

Definition at line 193 of file camera.h.

References m_lastPosition.

◆ GetDir()

const SFVEC3F & CAMERA::GetDir ( ) const
inlineinherited

Definition at line 131 of file camera.h.

References m_dir.

Referenced by RotateScreen().

◆ GetFar()

float CAMERA::GetFar ( ) const
inlineinherited

Definition at line 135 of file camera.h.

References m_frustum.

◆ GetFocalLen()

const SFVEC2F & CAMERA::GetFocalLen ( ) const
inlineinherited

Definition at line 133 of file camera.h.

References m_focalLen.

◆ GetFrustum()

const CAMERA_FRUSTUM & CAMERA::GetFrustum ( ) const
inlineinherited

Definition at line 136 of file camera.h.

References m_frustum.

◆ GetLookAtPos()

const SFVEC3F & CAMERA::GetLookAtPos ( ) const
inlineinherited

Definition at line 137 of file camera.h.

References m_lookat_pos.

◆ GetLookAtPos_T1()

const SFVEC3F & CAMERA::GetLookAtPos_T1 ( ) const
inlineinherited

Definition at line 163 of file camera.h.

References m_lookat_pos_t1.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ GetMaxZoom()

float CAMERA::GetMaxZoom ( )
inlineinherited

Definition at line 226 of file camera.h.

References m_maxZoom.

◆ GetMinZoom()

float CAMERA::GetMinZoom ( )
inlineinherited

Definition at line 219 of file camera.h.

References m_minZoom.

◆ GetNear()

float CAMERA::GetNear ( ) const
inlineinherited

Definition at line 134 of file camera.h.

References m_frustum.

◆ GetPos()

const SFVEC3F & CAMERA::GetPos ( ) const
inlineinherited

Definition at line 132 of file camera.h.

References m_pos.

◆ GetProjection()

PROJECTION_TYPE CAMERA::GetProjection ( )
inlineinherited

Definition at line 201 of file camera.h.

References m_projectionType.

◆ GetProjectionMatrix()

const glm::mat4 & CAMERA::GetProjectionMatrix ( ) const
inherited

Definition at line 470 of file camera.cpp.

References m_projectionMatrix.

◆ GetProjectionMatrixInv()

const glm::mat4 & CAMERA::GetProjectionMatrixInv ( ) const
inherited

Definition at line 476 of file camera.cpp.

References m_projectionMatrixInv.

◆ GetRight()

const SFVEC3F & CAMERA::GetRight ( ) const
inlineinherited

Definition at line 129 of file camera.h.

References m_right.

◆ GetRotationMatrix()

glm::mat4 CAMERA::GetRotationMatrix ( ) const
inherited

Get the rotation matrix to be applied in a transformation camera.

Returns
the rotation matrix of the camera

Definition at line 237 of file camera.cpp.

References m_rotationMatrix, and m_rotationMatrixAux.

Referenced by RotateScreen().

◆ GetUp()

const SFVEC3F & CAMERA::GetUp ( ) const
inlineinherited

Definition at line 130 of file camera.h.

References m_up.

◆ GetViewMatrix()

const glm::mat4 & CAMERA::GetViewMatrix ( ) const
inherited

Definition at line 506 of file camera.cpp.

References m_viewMatrix.

◆ GetViewMatrix_Inv()

const glm::mat4 & CAMERA::GetViewMatrix_Inv ( ) const
inherited

Definition at line 544 of file camera.cpp.

References m_viewMatrixInverse.

◆ GetZoom()

float CAMERA::GetZoom ( ) const
inlineinherited

Definition at line 217 of file camera.h.

References m_zoom.

◆ initQuat()

void TRACK_BALL::initQuat ( )
private

Definition at line 53 of file track_ball.cpp.

References m_quat_t0, m_quat_t1, and trackball().

Referenced by TRACK_BALL(), and TRACK_BALL().

◆ Interpolate()

void TRACK_BALL::Interpolate ( float t)
overridevirtual

It will update the matrix to interpolate between T0 and T1 values.

Parameters
tthe interpolation time, between 0.0f and 1.0f (it will clamp if >1).

Reimplemented from CAMERA.

Definition at line 148 of file track_ball.cpp.

References BEZIER, BezierBlend(), EASING_IN_OUT, CAMERA::Interpolate(), LINEAR, CAMERA::m_interpolation_mode, m_quat_t0, m_quat_t1, CAMERA::m_rotationMatrix, and QuadricEasingInOut().

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ MakeRay() [1/2]

void CAMERA::MakeRay ( const SFVEC2F & aWindowPos,
SFVEC3F & aOutOrigin,
SFVEC3F & aOutDirection ) const
inherited

Make a ray based on a windows screen position, it will interpolate based on the aWindowPos.

Parameters
aWindowPosthe windows buffer position (float value).
aOutOriginout origin position of the ray.
aOutDirectionout direction.

Definition at line 426 of file camera.cpp.

References m_dir, m_frustum, m_pos, m_projectionType, m_right_nX, m_up_nY, m_windowSize, ORTHO, and PERSPECTIVE.

◆ MakeRay() [2/2]

void CAMERA::MakeRay ( const SFVEC2I & aWindowPos,
SFVEC3F & aOutOrigin,
SFVEC3F & aOutDirection ) const
inherited

Make a ray based on a windows screen position.

Parameters
aWindowPosthe windows buffer position.
aOutOriginout origin position of the ray.
aOutDirectionout direction

Definition at line 404 of file camera.cpp.

References m_dir, m_frustum, m_pos, m_projectionType, m_right_nX, m_up_nY, m_windowSize, ORTHO, and PERSPECTIVE.

Referenced by MakeRayAtCurrentMousePosition(), RAYPACKET::RAYPACKET(), RAYPACKET::RAYPACKET(), RAYPACKET::RAYPACKET(), RAYPACKET_InitRays(), and RAYPACKET_InitRays_with2DDisplacement().

◆ MakeRayAtCurrentMousePosition()

void CAMERA::MakeRayAtCurrentMousePosition ( SFVEC3F & aOutOrigin,
SFVEC3F & aOutDirection ) const
inherited

Make a ray based on the latest mouse position.

Parameters
aOutOriginout origin position of the ray.
aOutDirectionout direction.

Definition at line 458 of file camera.cpp.

References m_lastPosition, m_windowSize, and MakeRay().

◆ Pan() [1/2]

void TRACK_BALL::Pan ( const SFVEC3F & aDeltaOffsetInc)
overridevirtual

◆ Pan() [2/2]

void TRACK_BALL::Pan ( const wxPoint & aNewMousePosition)
overridevirtual

◆ Pan_T1()

void TRACK_BALL::Pan_T1 ( const SFVEC3F & aDeltaOffsetInc)
overridevirtual

Implements CAMERA.

Definition at line 121 of file track_ball.cpp.

References CAMERA::m_camera_pos, and CAMERA::m_camera_pos_t1.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ ParametersChanged()

bool CAMERA::ParametersChanged ( )
inherited
Returns
true if some of the parameters in camera was changed, it will reset the flag.

Definition at line 726 of file camera.cpp.

References m_parametersChanged.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ ParametersChangedQuery()

bool CAMERA::ParametersChangedQuery ( ) const
inlineinherited
Returns
true if some of the parameters in camera was changed, it will NOT reset the flag.

Definition at line 273 of file camera.h.

References m_parametersChanged.

◆ rebuildProjection()

◆ Reset()

◆ Reset_T1()

void TRACK_BALL::Reset_T1 ( )
overridevirtual

Reimplemented from CAMERA.

Definition at line 126 of file track_ball.cpp.

References m_quat_t1, CAMERA::Reset_T1(), and trackball().

◆ ResetXYpos()

void CAMERA::ResetXYpos ( )
inherited

Definition at line 488 of file camera.cpp.

References m_camera_pos, m_parametersChanged, updateFrustum(), and updateViewMatrix().

Referenced by Pan_T1().

◆ ResetXYpos_T1()

void CAMERA::ResetXYpos_T1 ( )
inherited

Definition at line 499 of file camera.cpp.

References m_camera_pos_t1.

Referenced by Pan_T1().

◆ RotateScreen()

void CAMERA::RotateScreen ( float aAngleInRadians)
inherited

Rotates the camera in screen plane.

Definition at line 647 of file camera.cpp.

References GetDir(), GetRotationMatrix(), SetRotationMatrix(), and updateRotationMatrix().

◆ RotateX()

void CAMERA::RotateX ( float aAngleInRadians)
inherited

Definition at line 655 of file camera.cpp.

References m_rotate_aux, and updateRotationMatrix().

◆ RotateX_T1()

void CAMERA::RotateX_T1 ( float aAngleInRadians)
inherited

Definition at line 676 of file camera.cpp.

References m_rotate_aux_t1.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and ViewCommand_T1().

◆ RotateY()

void CAMERA::RotateY ( float aAngleInRadians)
inherited

Definition at line 662 of file camera.cpp.

References m_rotate_aux, and updateRotationMatrix().

◆ RotateY_T1()

void CAMERA::RotateY_T1 ( float aAngleInRadians)
inherited

Definition at line 682 of file camera.cpp.

References m_rotate_aux_t1.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and ViewCommand_T1().

◆ RotateZ()

void CAMERA::RotateZ ( float aAngleInRadians)
inherited

Definition at line 669 of file camera.cpp.

References m_rotate_aux, and updateRotationMatrix().

◆ RotateZ_T1()

void CAMERA::RotateZ_T1 ( float aAngleInRadians)
inherited

Definition at line 688 of file camera.cpp.

References m_rotate_aux_t1.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender(), and ViewCommand_T1().

◆ SetBoardLookAtPos()

void CAMERA::SetBoardLookAtPos ( const SFVEC3F & aBoardPos)
inherited

◆ SetCurMousePosition()

void CAMERA::SetCurMousePosition ( const wxPoint & aPosition)
inherited

Update the current mouse position without make any new calculations on camera.

Definition at line 550 of file camera.cpp.

References m_lastPosition.

◆ SetCurWindowSize()

bool CAMERA::SetCurWindowSize ( const wxSize & aSize)
inherited

Update the windows size of the camera.

Returns
true if the windows size changed since last time.

Definition at line 567 of file camera.cpp.

References m_windowSize, and rebuildProjection().

Referenced by EDA_3D_VIEWER_FRAME::captureScreenshot(), and PCBNEW_JOBS_HANDLER::JobExportRender().

◆ SetInterpolateMode()

void CAMERA::SetInterpolateMode ( CAMERA_INTERPOLATION aInterpolateMode)
inlineinherited

Definition at line 260 of file camera.h.

References m_interpolation_mode.

◆ SetLookAtPos_T1()

void CAMERA::SetLookAtPos_T1 ( const SFVEC3F & aLookAtPos)
inlineinherited

Definition at line 158 of file camera.h.

References m_lookat_pos_t1.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ SetMaxZoom()

void CAMERA::SetMaxZoom ( float maxZoom)
inlineinherited

Definition at line 227 of file camera.h.

References m_maxZoom, and zoomChanged().

◆ SetMinZoom()

void CAMERA::SetMinZoom ( float minZoom)
inlineinherited

Definition at line 220 of file camera.h.

References m_minZoom, and zoomChanged().

◆ SetProjection()

void CAMERA::SetProjection ( PROJECTION_TYPE aProjection)
inlineinherited

Definition at line 202 of file camera.h.

References m_projectionType.

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ SetRotationMatrix()

void CAMERA::SetRotationMatrix ( const glm::mat4 & aRotation)
inherited

Set the rotation matrix to be applied in a transformation camera, without making any new calculations on camera.

Parameters
aRotationis the total rotation matrix of the camera.

Definition at line 243 of file camera.cpp.

References m_parametersChanged, m_rotationMatrix, and m_rotationMatrixAux.

Referenced by RotateScreen(), and SetViewMatrix().

◆ SetT0_and_T1_current_T()

void TRACK_BALL::SetT0_and_T1_current_T ( )
overridevirtual

This will set T0 and T1 with the current values.

Reimplemented from CAMERA.

Definition at line 134 of file track_ball.cpp.

References m_quat_t0, m_quat_t1, CAMERA::m_rotationMatrix, and CAMERA::SetT0_and_T1_current_T().

Referenced by PCBNEW_JOBS_HANDLER::JobExportRender().

◆ SetViewMatrix()

void CAMERA::SetViewMatrix ( glm::mat4 aViewMatrix)
inherited

Set the affine matrix to be applied to a transformation camera.

Parameters
aViewMatrixis the affine matrix of the camera. The affine matrix maps coordinates in the world frame to those in the camera frame.

Definition at line 512 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().

◆ ToggleProjection()

void CAMERA::ToggleProjection ( )
inherited

Definition at line 556 of file camera.cpp.

References m_projectionType, ORTHO, PERSPECTIVE, and rebuildProjection().

◆ Update()

void CAMERA::Update ( )
inlineinherited

Update the camera.

Definition at line 305 of file camera.h.

References updateFrustum().

◆ updateFrustum()

◆ updateRotationMatrix()

void CAMERA::updateRotationMatrix ( )
protectedinherited

◆ updateViewMatrix()

◆ ViewCommand_T1()

bool CAMERA::ViewCommand_T1 ( VIEW3D_TYPE aRequestedView)
inherited

◆ Zoom()

bool CAMERA::Zoom ( float aFactor)
inherited

Definition at line 594 of file camera.cpp.

References m_camera_pos, m_maxZoom, m_minZoom, m_zoom, rebuildProjection(), updateViewMatrix(), and zoom.

◆ Zoom_T1()

bool CAMERA::Zoom_T1 ( float aFactor)
inherited

◆ zoomChanged()

void CAMERA::zoomChanged ( )
protectedinherited

◆ ZoomReset()

void CAMERA::ZoomReset ( )
inherited

Member Data Documentation

◆ DEFAULT_MAX_ZOOM

const float CAMERA::DEFAULT_MAX_ZOOM = 2.0f
staticinherited

Definition at line 102 of file camera.h.

Referenced by CAMERA(), and RENDER_3D_RAYTRACE_BASE::Reload().

◆ DEFAULT_MIN_ZOOM

const float CAMERA::DEFAULT_MIN_ZOOM = 0.020f
staticinherited

Definition at line 101 of file camera.h.

Referenced by CAMERA().

◆ m_board_lookat_pos_init

SFVEC3F CAMERA::m_board_lookat_pos_init
protectedinherited

Default boardlookat position (the board center).

Definition at line 363 of file camera.h.

Referenced by CAMERA(), Reset(), Reset_T1(), and SetBoardLookAtPos().

◆ m_camera_pos

◆ m_camera_pos_init

SFVEC3F CAMERA::m_camera_pos_init
protectedinherited

◆ m_camera_pos_t0

SFVEC3F CAMERA::m_camera_pos_t0
protectedinherited

Definition at line 357 of file camera.h.

Referenced by Interpolate(), Reset(), and SetT0_and_T1_current_T().

◆ m_camera_pos_t1

SFVEC3F CAMERA::m_camera_pos_t1
protectedinherited

◆ m_dir

SFVEC3F CAMERA::m_dir
protectedinherited

Definition at line 350 of file camera.h.

Referenced by GetDir(), MakeRay(), MakeRay(), and updateFrustum().

◆ m_focalLen

SFVEC2F CAMERA::m_focalLen
protectedinherited

Definition at line 353 of file camera.h.

Referenced by GetFocalLen(), and rebuildProjection().

◆ m_frustum

CAMERA_FRUSTUM CAMERA::m_frustum
protectedinherited

◆ m_interpolation_mode

CAMERA_INTERPOLATION CAMERA::m_interpolation_mode
protectedinherited

Definition at line 369 of file camera.h.

Referenced by CAMERA(), TRACK_BALL::Interpolate(), and SetInterpolateMode().

◆ m_lastPosition

wxPoint CAMERA::m_lastPosition
protectedinherited

The last mouse position in the screen.

Definition at line 336 of file camera.h.

Referenced by TRACK_BALL::Drag(), GetCurMousePosition(), MakeRayAtCurrentMousePosition(), TRACK_BALL::Pan(), Reset(), and SetCurMousePosition().

◆ m_lookat_pos

SFVEC3F CAMERA::m_lookat_pos
protectedinherited

◆ m_lookat_pos_t0

SFVEC3F CAMERA::m_lookat_pos_t0
protectedinherited

Definition at line 361 of file camera.h.

Referenced by Interpolate(), Reset(), and SetT0_and_T1_current_T().

◆ m_lookat_pos_t1

SFVEC3F CAMERA::m_lookat_pos_t1
protectedinherited

◆ m_maxZoom

float CAMERA::m_maxZoom
protectedinherited

◆ m_minZoom

float CAMERA::m_minZoom
protectedinherited

Possible 3D zoom range.

Definition at line 325 of file camera.h.

Referenced by CAMERA(), GetMinZoom(), SetMinZoom(), SetViewMatrix(), Zoom(), Zoom_T1(), and zoomChanged().

◆ m_parametersChanged

bool CAMERA::m_parametersChanged
protectedinherited

Set to true if any of the parameters in the camera was changed.

Definition at line 387 of file camera.h.

Referenced by TRACK_BALL::Drag(), Interpolate(), TRACK_BALL::Pan(), TRACK_BALL::Pan(), ParametersChanged(), ParametersChangedQuery(), Reset(), ResetXYpos(), SetBoardLookAtPos(), SetRotationMatrix(), and updateRotationMatrix().

◆ m_pos

SFVEC3F CAMERA::m_pos
protectedinherited

Definition at line 351 of file camera.h.

Referenced by GetPos(), MakeRay(), MakeRay(), and updateFrustum().

◆ m_projectionMatrix

glm::mat4 CAMERA::m_projectionMatrix
protectedinherited

Definition at line 342 of file camera.h.

Referenced by GetProjectionMatrix(), rebuildProjection(), and Reset().

◆ m_projectionMatrixInv

glm::mat4 CAMERA::m_projectionMatrixInv
protectedinherited

Definition at line 343 of file camera.h.

Referenced by GetProjectionMatrixInv(), rebuildProjection(), and Reset().

◆ m_projectionType

PROJECTION_TYPE CAMERA::m_projectionType
protectedinherited

◆ m_quat_t0

double TRACK_BALL::m_quat_t0[4]
private

interpolate quaternions of the trackball

Definition at line 62 of file track_ball.h.

Referenced by initQuat(), Interpolate(), and SetT0_and_T1_current_T().

◆ m_quat_t1

double TRACK_BALL::m_quat_t1[4]
private

Definition at line 63 of file track_ball.h.

Referenced by initQuat(), Interpolate(), Reset_T1(), and SetT0_and_T1_current_T().

◆ m_right

SFVEC3F CAMERA::m_right
protectedinherited

Definition at line 348 of file camera.h.

Referenced by GetRight(), and updateFrustum().

◆ m_right_nX

std::vector< SFVEC3F > CAMERA::m_right_nX
protectedinherited

Precalc values array used to calc ray for each pixel, for X and Y axis of each new camera position.

Definition at line 381 of file camera.h.

Referenced by MakeRay(), MakeRay(), and updateFrustum().

◆ m_rotate_aux

SFVEC3F CAMERA::m_rotate_aux
protectedinherited

Stores the rotation angle auxiliary.

Definition at line 365 of file camera.h.

Referenced by Interpolate(), Reset(), RotateX(), RotateY(), RotateZ(), SetT0_and_T1_current_T(), and updateRotationMatrix().

◆ m_rotate_aux_t0

SFVEC3F CAMERA::m_rotate_aux_t0
protectedinherited

Definition at line 366 of file camera.h.

Referenced by Interpolate(), Reset(), Reset_T1(), and SetT0_and_T1_current_T().

◆ m_rotate_aux_t1

SFVEC3F CAMERA::m_rotate_aux_t1
protectedinherited

◆ m_rotationMatrix

glm::mat4 CAMERA::m_rotationMatrix
protectedinherited

◆ m_rotationMatrixAux

glm::mat4 CAMERA::m_rotationMatrixAux
protectedinherited

◆ m_scr_nX

std::vector< float > CAMERA::m_scr_nX
protectedinherited

Precalc values array used to calc ray for each pixel (constant for the same window size).

Definition at line 374 of file camera.h.

Referenced by rebuildProjection(), Reset(), and updateFrustum().

◆ m_scr_nY

std::vector< float > CAMERA::m_scr_nY
protectedinherited

Definition at line 375 of file camera.h.

Referenced by rebuildProjection(), Reset(), and updateFrustum().

◆ m_up

SFVEC3F CAMERA::m_up
protectedinherited

Definition at line 349 of file camera.h.

Referenced by GetUp(), and updateFrustum().

◆ m_up_nY

std::vector< SFVEC3F > CAMERA::m_up_nY
protectedinherited

Definition at line 382 of file camera.h.

Referenced by MakeRay(), MakeRay(), and updateFrustum().

◆ m_viewMatrix

glm::mat4 CAMERA::m_viewMatrix
protectedinherited

Definition at line 340 of file camera.h.

Referenced by GetViewMatrix(), Reset(), SetViewMatrix(), updateFrustum(), and updateViewMatrix().

◆ m_viewMatrixInverse

glm::mat4 CAMERA::m_viewMatrixInverse
protectedinherited

Definition at line 341 of file camera.h.

Referenced by GetViewMatrix_Inv(), Reset(), and updateFrustum().

◆ m_windowSize

SFVEC2I CAMERA::m_windowSize
protectedinherited

The window size that this camera is working.

Definition at line 331 of file camera.h.

Referenced by CAMERA(), TRACK_BALL::Drag(), MakeRay(), MakeRay(), MakeRayAtCurrentMousePosition(), TRACK_BALL::Pan(), rebuildProjection(), SetCurWindowSize(), and updateFrustum().

◆ m_zoom

float CAMERA::m_zoom
protectedinherited

3D zoom value – Z-distance is scaled by it

Definition at line 318 of file camera.h.

Referenced by GetZoom(), Interpolate(), rebuildProjection(), Reset(), SetT0_and_T1_current_T(), SetViewMatrix(), Zoom(), Zoom_T1(), zoomChanged(), and ZoomReset().

◆ m_zoom_t0

float CAMERA::m_zoom_t0
protectedinherited

Definition at line 319 of file camera.h.

Referenced by Interpolate(), Reset(), and SetT0_and_T1_current_T().

◆ m_zoom_t1

float CAMERA::m_zoom_t1
protectedinherited

Definition at line 320 of file camera.h.

Referenced by Interpolate(), Reset(), Reset_T1(), SetT0_and_T1_current_T(), and Zoom_T1().


The documentation for this class was generated from the following files: