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

Implement a canvas based on a wxGLCanvas. More...

#include <eda_3d_canvas.h>

Inheritance diagram for EDA_3D_CANVAS:
HIDPI_GL_3D_CANVAS HIDPI_GL_CANVAS

Public Member Functions

 EDA_3D_CANVAS (wxWindow *aParent, const wxGLAttributes &aGLAttribs, BOARD_ADAPTER &aSettings, CAMERA &aCamera, S3D_CACHE *a3DCachePointer)
 Create a new 3D Canvas with an attribute list.
 
 ~EDA_3D_CANVAS ()
 
void SetEventDispatcher (TOOL_DISPATCHER *aEventDispatcher)
 Set a dispatcher that processes events and forwards them to tools.
 
void SetStatusBar (wxStatusBar *aStatusBar)
 
void SetInfoBar (WX_INFOBAR *aInfoBar)
 
void ReloadRequest (BOARD *aBoard=nullptr, S3D_CACHE *aCachePointer=nullptr)
 
bool IsReloadRequestPending () const
 Query if there is a pending reload request.
 
RENDER_3D_BASEGetCurrentRender () const
 
void RenderRaytracingRequest ()
 Request to render the current view in Raytracing mode.
 
void GetScreenshot (wxImage &aDstImage)
 Request a screenshot and output it to the aDstImage.
 
bool SetView3D (VIEW3D_TYPE aRequestedView)
 Select a specific 3D view or operation.
 
void SetAnimationEnabled (bool aEnable)
 Enable or disable camera animation when switching to a pre-defined view.
 
bool GetAnimationEnabled () const
 
void SetMovingSpeedMultiplier (int aMultiplier)
 Set the camera animation moving speed multiplier option.
 
int GetMovingSpeedMultiplier () const
 
int GetProjectionMode () const
 
void SetProjectionMode (int aMode)
 
void RenderEngineChanged ()
 Notify that the render engine was changed.
 
void DisplayStatus ()
 Update the status bar with the position information.
 
void Request_refresh (bool aRedrawImmediately=true)
 Schedule a refresh update of the canvas.
 
void OnEvent (wxEvent &aEvent)
 Used to forward events to the canvas from popups, etc.
 
const BOARD_ADAPTERGetBoardAdapter () const
 Get information used to display 3D board.
 
bool GetRenderPivot ()
 Get a value indicating whether to render the pivot.
 
void SetRenderPivot (bool aValue)
 Set aValue indicating whether to render the pivot.
 
bool GetRender3dmousePivot ()
 Get a value indicating whether to render the 3dmouse pivot.
 
void SetRender3dmousePivot (bool aValue)
 Set aValue indicating whether to render the 3dmouse pivot.
 
void Set3dmousePivotPos (const SFVEC3F &aPos)
 Set the position of the the 3dmouse pivot.
 
void DoRePaint ()
 The actual function to repaint the canvas.
 
void OnCloseWindow (wxCloseEvent &event)
 
CAMERAGetCamera ()
 Get the canvas camera.
 
void OnMouseMoveCamera (wxMouseEvent &event)
 
void OnMouseWheelCamera (wxMouseEvent &event, bool aPan)
 
virtual wxSize GetNativePixelSize () const
 
wxPoint GetNativePosition (const wxPoint &aPoint) const
 Convert the given point from client coordinates to native pixel coordinates.
 
double GetScaleFactor () const
 Get the current scale factor.
 
void SetVcSettings (const KIGFX::VC_SETTINGS &aVcSettings)
 

Public Attributes

bool m_mouse_is_moving
 
bool m_mouse_was_moved
 
bool m_camera_is_moving
 
CAMERAm_camera
 

Static Public Attributes

static const float m_delta_move_step_factor = 0.7f
 

Protected Attributes

KIGFX::VC_SETTINGS m_settings
 < Current VIEW_CONTROLS settings.
 

Private Member Functions

void OnPaint (wxPaintEvent &aEvent)
 
void OnEraseBackground (wxEraseEvent &event)
 
void OnRefreshRequest (wxEvent &aEvent)
 
void OnMouseWheel (wxMouseEvent &event)
 
void OnMagnify (wxMouseEvent &event)
 
void OnMouseMove (wxMouseEvent &event)
 
void OnLeftDown (wxMouseEvent &event)
 
void OnLeftUp (wxMouseEvent &event)
 
void OnMiddleUp (wxMouseEvent &event)
 
void OnMiddleDown (wxMouseEvent &event)
 
void OnTimerTimeout_Editing (wxTimerEvent &event)
 
void OnResize (wxSizeEvent &event)
 
void OnTimerTimeout_Redraw (wxTimerEvent &event)
 
void OnZoomGesture (wxZoomGestureEvent &event)
 
void OnPanGesture (wxPanGestureEvent &event)
 
void OnRotateGesture (wxRotateGestureEvent &event)
 
void stop_editingTimeOut_Timer ()
 Stop the editing time so it will not timeout.
 
void restart_editingTimeOut_Timer ()
 Reset the editing timer.
 
void request_start_moving_camera (float aMovingSpeed=2.0f, bool aRenderPivot=true)
 Start a camera movement.
 
void move_pivot_based_on_cur_mouse_position ()
 This function hits a ray to the board and start a movement.
 
void render_pivot (float t, float aScale)
 Render the pivot cursor.
 
void render3dmousePivot (float aScale)
 Render the 3dmouse pivot cursor.
 
bool initializeOpenGL ()
 
void releaseOpenGL ()
 Free created targets and openGL context.
 
RAY getRayAtCurrentMousePosition ()
 

Private Attributes

TOOL_DISPATCHERm_eventDispatcher
 
wxStatusBar * m_parentStatusBar
 
WX_INFOBARm_parentInfoBar
 
wxGLContext * m_glRC
 
bool m_is_opengl_initialized
 
bool m_is_opengl_version_supported
 
wxTimer m_editing_timeout_timer
 
wxTimer m_redraw_trigger_timer
 
std::atomic_flag m_is_currently_painting
 
bool m_render_pivot
 
float m_camera_moving_speed
 
int64_t m_strtime_camera_movement
 
bool m_animation_enabled
 
int m_moving_speed_multiplier
 
BOARD_ADAPTERm_boardAdapter
 
RENDER_3D_BASEm_3d_render
 
RENDER_3D_RAYTRACE_GLm_3d_render_raytracing
 
RENDER_3D_OPENGLm_3d_render_opengl
 
bool m_opengl_supports_raytracing
 
bool m_render_raytracing_was_requested
 
ACCELERATOR_3Dm_accelerator3DShapes
 
BOARD_ITEMm_currentRollOverItem
 
bool m_render3dmousePivot = false
 
SFVEC3F m_3dmousePivotPos
 
double m_gestureLastZoomFactor = 1.0
 < Used to track gesture events.
 
double m_gestureLastAngle = 0.0
 

Static Private Attributes

static const wxChar * m_logTrace = wxT( "KI_TRACE_EDA_3D_CANVAS" )
 Trace mask used to enable or disable the trace output of this class.
 

Detailed Description

Implement a canvas based on a wxGLCanvas.

Definition at line 50 of file eda_3d_canvas.h.

Constructor & Destructor Documentation

◆ EDA_3D_CANVAS()

EDA_3D_CANVAS::EDA_3D_CANVAS ( wxWindow *  aParent,
const wxGLAttributes &  aGLAttribs,
BOARD_ADAPTER aSettings,
CAMERA aCamera,
S3D_CACHE a3DCachePointer 
)

Create a new 3D Canvas with an attribute list.

Parameters
aParentthe parent creator of this canvas.
aGLAttribsopenGL attributes created by OGL_ATT_LIST::GetAttributesList.
aBoardThe board.
aSettingsthe settings options to be used by this canvas.

Definition at line 90 of file eda_3d_canvas.cpp.

References OnEvent(), OnTimerTimeout_Editing(), and OnTimerTimeout_Redraw().

◆ ~EDA_3D_CANVAS()

EDA_3D_CANVAS::~EDA_3D_CANVAS ( )

Definition at line 175 of file eda_3d_canvas.cpp.

References m_accelerator3DShapes, m_logTrace, and releaseOpenGL().

Member Function Documentation

◆ DisplayStatus()

◆ DoRePaint()

void EDA_3D_CANVAS::DoRePaint ( )

The actual function to repaint the canvas.

It is usually called by OnPaint() but because it does not use a wxPaintDC it can be called outside a wxPaintEvent

Definition at line 360 of file eda_3d_canvas.cpp.

References _, GL_CONTEXT_MANAGER::CreateCtx(), DisplayStatus(), EDA_3D_VIEWER_SETTINGS::RENDER_SETTINGS::engine, INFOBAR_REPORTER::Finalize(), GL_CONTEXT_MANAGER::Get(), HIDPI_GL_CANVAS::GetNativePixelSize(), GetRunningMicroSecs(), CAMERA::GetZoom(), initializeOpenGL(), CAMERA::Interpolate(), RENDER_3D_BASE::IsReloadRequestPending(), GL_CONTEXT_MANAGER::LockCtx(), m_3d_render, m_3d_render_opengl, m_3d_render_raytracing, m_boardAdapter, HIDPI_GL_3D_CANVAS::m_camera, HIDPI_GL_3D_CANVAS::m_camera_is_moving, m_camera_moving_speed, BOARD_ADAPTER::m_Cfg, m_glRC, m_is_currently_painting, m_is_opengl_initialized, m_is_opengl_version_supported, m_logTrace, HIDPI_GL_3D_CANVAS::m_mouse_is_moving, HIDPI_GL_3D_CANVAS::m_mouse_was_moved, m_opengl_supports_raytracing, m_parentInfoBar, m_parentStatusBar, EDA_3D_VIEWER_SETTINGS::m_Render, m_render3dmousePivot, m_render_pivot, m_render_raytracing_was_requested, m_strtime_camera_movement, CAMERA::ParametersChanged(), RENDER_3D_BASE::Redraw(), RENDER_3D_RAYTRACE_BASE::Reload(), render3dmousePivot(), render_pivot(), STATUSBAR_REPORTER::Report(), INFOBAR_REPORTER::Report(), Request_refresh(), restart_editingTimeOut_Timer(), RPT_SEVERITY_ERROR, scale, CAMERA::SetCurWindowSize(), RENDER_3D_BASE::SetCurWindowSize(), and GL_CONTEXT_MANAGER::UnlockCtx().

Referenced by OnPaint(), and EDA_3D_VIEWER_FRAME::takeScreenshot().

◆ GetAnimationEnabled()

bool EDA_3D_CANVAS::GetAnimationEnabled ( ) const
inline

Definition at line 130 of file eda_3d_canvas.h.

References m_animation_enabled.

Referenced by EDA_3D_VIEWER_FRAME::SaveSettings().

◆ GetBoardAdapter()

const BOARD_ADAPTER & EDA_3D_CANVAS::GetBoardAdapter ( ) const
inline

◆ GetCamera()

CAMERA * HIDPI_GL_3D_CANVAS::GetCamera ( )
inlineinherited

Get the canvas camera.

Definition at line 62 of file hidpi_gl_3D_canvas.h.

Referenced by NL_3D_VIEWER_PLUGIN_IMPL::NL_3D_VIEWER_PLUGIN_IMPL().

◆ GetCurrentRender()

RENDER_3D_BASE * EDA_3D_CANVAS::GetCurrentRender ( ) const
inline
Returns
the current render ( a RENDER_3D_RAYTRACE_GL* or a RENDER_3D_OPENGL* render )

Definition at line 104 of file eda_3d_canvas.h.

References m_3d_render.

Referenced by APPEARANCE_CONTROLS_3D::OnLayerVisibilityChanged().

◆ GetMovingSpeedMultiplier()

int EDA_3D_CANVAS::GetMovingSpeedMultiplier ( ) const
inline

Definition at line 138 of file eda_3d_canvas.h.

References m_moving_speed_multiplier.

Referenced by EDA_3D_VIEWER_FRAME::SaveSettings().

◆ GetNativePixelSize()

wxSize HIDPI_GL_CANVAS::GetNativePixelSize ( ) const
virtualinherited

◆ GetNativePosition()

wxPoint HIDPI_GL_CANVAS::GetNativePosition ( const wxPoint &  aPoint) const
inherited

Convert the given point from client coordinates to native pixel coordinates.

Definition at line 54 of file hidpi_gl_canvas.cpp.

References HIDPI_GL_CANVAS::GetScaleFactor().

Referenced by EDA_3D_MODEL_VIEWER::OnMouseMove(), HIDPI_GL_3D_CANVAS::OnMouseMoveCamera(), and HIDPI_GL_3D_CANVAS::OnMouseWheelCamera().

◆ GetProjectionMode()

int EDA_3D_CANVAS::GetProjectionMode ( ) const
inline

◆ getRayAtCurrentMousePosition()

RAY EDA_3D_CANVAS::getRayAtCurrentMousePosition ( )
private

◆ GetRender3dmousePivot()

bool EDA_3D_CANVAS::GetRender3dmousePivot ( )
inline

Get a value indicating whether to render the 3dmouse pivot.

Definition at line 186 of file eda_3d_canvas.h.

References m_render3dmousePivot.

Referenced by NL_3D_VIEWER_PLUGIN_IMPL::GetPivotVisible().

◆ GetRenderPivot()

bool EDA_3D_CANVAS::GetRenderPivot ( )
inline

Get a value indicating whether to render the pivot.

Definition at line 174 of file eda_3d_canvas.h.

References m_render_pivot.

◆ GetScaleFactor()

◆ GetScreenshot()

void EDA_3D_CANVAS::GetScreenshot ( wxImage &  aDstImage)

Request a screenshot and output it to the aDstImage.

Parameters
aDstImage- Screenshot destination image

Definition at line 301 of file eda_3d_canvas.cpp.

References OglGetScreenshot().

Referenced by EDA_3D_VIEWER_FRAME::takeScreenshot().

◆ initializeOpenGL()

bool EDA_3D_CANVAS::initializeOpenGL ( )
private

◆ IsReloadRequestPending()

bool EDA_3D_CANVAS::IsReloadRequestPending ( ) const
inline

Query if there is a pending reload request.

Returns
true if it wants to reload, false if there is no reload pending.

Definition at line 93 of file eda_3d_canvas.h.

References RENDER_3D_BASE::IsReloadRequestPending(), and m_3d_render.

Referenced by EDA_3D_VIEWER_FRAME::OnActivate().

◆ move_pivot_based_on_cur_mouse_position()

void EDA_3D_CANVAS::move_pivot_based_on_cur_mouse_position ( )
private

◆ OnCloseWindow()

void EDA_3D_CANVAS::OnCloseWindow ( wxCloseEvent &  event)

◆ OnEraseBackground()

void EDA_3D_CANVAS::OnEraseBackground ( wxEraseEvent &  event)
private

Definition at line 602 of file eda_3d_canvas.cpp.

References m_logTrace.

◆ OnEvent()

void EDA_3D_CANVAS::OnEvent ( wxEvent &  aEvent)

Used to forward events to the canvas from popups, etc.

Definition at line 591 of file eda_3d_canvas.cpp.

References TOOL_DISPATCHER::DispatchWxEvent(), m_eventDispatcher, and Refresh().

Referenced by EDA_3D_CANVAS().

◆ OnLeftDown()

◆ OnLeftUp()

void EDA_3D_CANVAS::OnLeftUp ( wxMouseEvent &  event)
private

◆ OnMagnify()

void EDA_3D_CANVAS::OnMagnify ( wxMouseEvent &  event)
private

◆ OnMiddleDown()

void EDA_3D_CANVAS::OnMiddleDown ( wxMouseEvent &  event)
private

Definition at line 862 of file eda_3d_canvas.cpp.

References stop_editingTimeOut_Timer().

◆ OnMiddleUp()

void EDA_3D_CANVAS::OnMiddleUp ( wxMouseEvent &  event)
private

◆ OnMouseMove()

◆ OnMouseMoveCamera()

◆ OnMouseWheel()

◆ OnMouseWheelCamera()

◆ OnPaint()

void EDA_3D_CANVAS::OnPaint ( wxPaintEvent &  aEvent)
private

Definition at line 353 of file eda_3d_canvas.cpp.

References DoRePaint().

◆ OnPanGesture()

void EDA_3D_CANVAS::OnPanGesture ( wxPanGestureEvent &  event)
private

◆ OnRefreshRequest()

void EDA_3D_CANVAS::OnRefreshRequest ( wxEvent &  aEvent)
private

Definition at line 926 of file eda_3d_canvas.cpp.

References Refresh().

◆ OnResize()

void EDA_3D_CANVAS::OnResize ( wxSizeEvent &  event)
private

Definition at line 216 of file eda_3d_canvas.cpp.

References Request_refresh().

◆ OnRotateGesture()

void EDA_3D_CANVAS::OnRotateGesture ( wxRotateGestureEvent &  event)
private

◆ OnTimerTimeout_Editing()

void EDA_3D_CANVAS::OnTimerTimeout_Editing ( wxTimerEvent &  event)
private

◆ OnTimerTimeout_Redraw()

void EDA_3D_CANVAS::OnTimerTimeout_Redraw ( wxTimerEvent &  event)
private

Definition at line 914 of file eda_3d_canvas.cpp.

References m_redraw_trigger_timer, and Request_refresh().

Referenced by EDA_3D_CANVAS().

◆ OnZoomGesture()

◆ releaseOpenGL()

void EDA_3D_CANVAS::releaseOpenGL ( )
private

◆ ReloadRequest()

◆ render3dmousePivot()

void EDA_3D_CANVAS::render3dmousePivot ( float  aScale)
private

Render the 3dmouse pivot cursor.

Parameters
aScalescale to apply on the cursor.

Definition at line 123 of file eda_3d_canvas_pivot.cpp.

References CAMERA::GetProjectionMatrix(), CAMERA::GetViewMatrix(), m_3dmousePivotPos, and HIDPI_GL_3D_CANVAS::m_camera.

Referenced by DoRePaint().

◆ render_pivot()

void EDA_3D_CANVAS::render_pivot ( float  t,
float  aScale 
)
private

Render the pivot cursor.

Parameters
ttime between 0.0 and 1.0.
aScalescale to apply on the cursor.

Definition at line 76 of file eda_3d_canvas_pivot.cpp.

References CAMERA::GetLookAtPos_T1(), CAMERA::GetProjectionMatrix(), CAMERA::GetViewMatrix(), HIDPI_GL_3D_CANVAS::m_camera, and pivot_render_triangles().

Referenced by DoRePaint().

◆ RenderEngineChanged()

◆ RenderRaytracingRequest()

void EDA_3D_CANVAS::RenderRaytracingRequest ( )

◆ Request_refresh()

◆ request_start_moving_camera()

void EDA_3D_CANVAS::request_start_moving_camera ( float  aMovingSpeed = 2.0f,
bool  aRenderPivot = true 
)
private

◆ restart_editingTimeOut_Timer()

void EDA_3D_CANVAS::restart_editingTimeOut_Timer ( )
private

◆ Set3dmousePivotPos()

void EDA_3D_CANVAS::Set3dmousePivotPos ( const SFVEC3F aPos)
inline

Set the position of the the 3dmouse pivot.

Parameters
aPosis the position of the 3dmouse rotation pivot

Definition at line 208 of file eda_3d_canvas.h.

References m_3dmousePivotPos.

Referenced by NL_3D_VIEWER_PLUGIN_IMPL::SetPivotPosition().

◆ SetAnimationEnabled()

void EDA_3D_CANVAS::SetAnimationEnabled ( bool  aEnable)
inline

Enable or disable camera animation when switching to a pre-defined view.

Definition at line 129 of file eda_3d_canvas.h.

References m_animation_enabled.

Referenced by EDA_3D_VIEWER_FRAME::applySettings(), DIALOG_FOOTPRINT_CHOOSER::build3DCanvas(), and PANEL_PREVIEW_3D_MODEL::loadSettings().

◆ SetEventDispatcher()

void EDA_3D_CANVAS::SetEventDispatcher ( TOOL_DISPATCHER aEventDispatcher)

Set a dispatcher that processes events and forwards them to tools.

#DRAW_PANEL_GAL does not take over the ownership. Passing NULL disconnects all event handlers from the DRAW_PANEL_GAL and parent frame.

Parameters
aEventDispatcheris the object that will be used for dispatching events.

Definition at line 585 of file eda_3d_canvas.cpp.

References m_eventDispatcher.

Referenced by PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL(), and EDA_3D_VIEWER_FRAME::~EDA_3D_VIEWER_FRAME().

◆ SetInfoBar()

void EDA_3D_CANVAS::SetInfoBar ( WX_INFOBAR aInfoBar)
inline

Definition at line 81 of file eda_3d_canvas.h.

References m_parentInfoBar.

Referenced by PANEL_PREVIEW_3D_MODEL::PANEL_PREVIEW_3D_MODEL().

◆ SetMovingSpeedMultiplier()

void EDA_3D_CANVAS::SetMovingSpeedMultiplier ( int  aMultiplier)
inline

Set the camera animation moving speed multiplier option.

Parameters
aMultiplierone of the possible integer options: [1,2,3,4,5].

Definition at line 137 of file eda_3d_canvas.h.

References m_moving_speed_multiplier.

Referenced by EDA_3D_VIEWER_FRAME::applySettings(), DIALOG_FOOTPRINT_CHOOSER::build3DCanvas(), and PANEL_PREVIEW_3D_MODEL::loadSettings().

◆ SetProjectionMode()

void EDA_3D_CANVAS::SetProjectionMode ( int  aMode)
inline

◆ SetRender3dmousePivot()

void EDA_3D_CANVAS::SetRender3dmousePivot ( bool  aValue)
inline

Set aValue indicating whether to render the 3dmouse pivot.

Parameters
aValuetrue will cause the pivot to be rendered on the next redraw.

Definition at line 197 of file eda_3d_canvas.h.

References m_render3dmousePivot.

Referenced by NL_3D_VIEWER_PLUGIN_IMPL::SetPivotVisible().

◆ SetRenderPivot()

void EDA_3D_CANVAS::SetRenderPivot ( bool  aValue)
inline

Set aValue indicating whether to render the pivot.

Parameters
aValuetrue will cause the pivot to be rendered on the next redraw.

Definition at line 181 of file eda_3d_canvas.h.

References m_render_pivot.

◆ SetStatusBar()

void EDA_3D_CANVAS::SetStatusBar ( wxStatusBar *  aStatusBar)
inline

Definition at line 76 of file eda_3d_canvas.h.

References m_parentStatusBar.

◆ SetVcSettings()

void HIDPI_GL_CANVAS::SetVcSettings ( const KIGFX::VC_SETTINGS aVcSettings)
inlineinherited

Definition at line 62 of file hidpi_gl_canvas.h.

Referenced by EDA_3D_VIEWER_FRAME::applySettings().

◆ SetView3D()

◆ stop_editingTimeOut_Timer()

void EDA_3D_CANVAS::stop_editingTimeOut_Timer ( )
private

Stop the editing time so it will not timeout.

Definition at line 901 of file eda_3d_canvas.cpp.

References m_editing_timeout_timer.

Referenced by OnLeftDown(), OnMiddleDown(), and request_start_moving_camera().

Member Data Documentation

◆ m_3d_render

◆ m_3d_render_opengl

RENDER_3D_OPENGL* EDA_3D_CANVAS::m_3d_render_opengl
private

Definition at line 322 of file eda_3d_canvas.h.

Referenced by DoRePaint(), OnMouseMove(), releaseOpenGL(), and RenderEngineChanged().

◆ m_3d_render_raytracing

RENDER_3D_RAYTRACE_GL* EDA_3D_CANVAS::m_3d_render_raytracing
private

◆ m_3dmousePivotPos

SFVEC3F EDA_3D_CANVAS::m_3dmousePivotPos
private

Definition at line 332 of file eda_3d_canvas.h.

Referenced by render3dmousePivot(), and Set3dmousePivotPos().

◆ m_accelerator3DShapes

ACCELERATOR_3D* EDA_3D_CANVAS::m_accelerator3DShapes
private

Definition at line 327 of file eda_3d_canvas.h.

Referenced by ~EDA_3D_CANVAS().

◆ m_animation_enabled

bool EDA_3D_CANVAS::m_animation_enabled
private

◆ m_boardAdapter

BOARD_ADAPTER& EDA_3D_CANVAS::m_boardAdapter
private

◆ m_camera

◆ m_camera_is_moving

◆ m_camera_moving_speed

float EDA_3D_CANVAS::m_camera_moving_speed
private

Definition at line 314 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and request_start_moving_camera().

◆ m_currentRollOverItem

BOARD_ITEM* EDA_3D_CANVAS::m_currentRollOverItem
private

Definition at line 329 of file eda_3d_canvas.h.

Referenced by OnMouseMove().

◆ m_delta_move_step_factor

const float HIDPI_GL_3D_CANVAS::m_delta_move_step_factor = 0.7f
staticinherited

Definition at line 56 of file hidpi_gl_3D_canvas.h.

Referenced by HIDPI_GL_3D_CANVAS::OnMouseWheelCamera(), and SetView3D().

◆ m_editing_timeout_timer

wxTimer EDA_3D_CANVAS::m_editing_timeout_timer
private

◆ m_eventDispatcher

TOOL_DISPATCHER* EDA_3D_CANVAS::m_eventDispatcher
private

Definition at line 300 of file eda_3d_canvas.h.

Referenced by OnEvent(), and SetEventDispatcher().

◆ m_gestureLastAngle

double EDA_3D_CANVAS::m_gestureLastAngle = 0.0
private

Definition at line 336 of file eda_3d_canvas.h.

Referenced by OnRotateGesture().

◆ m_gestureLastZoomFactor

double EDA_3D_CANVAS::m_gestureLastZoomFactor = 1.0
private

< Used to track gesture events.

Definition at line 335 of file eda_3d_canvas.h.

Referenced by OnZoomGesture().

◆ m_glRC

wxGLContext* EDA_3D_CANVAS::m_glRC
private

Definition at line 304 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and releaseOpenGL().

◆ m_is_currently_painting

std::atomic_flag EDA_3D_CANVAS::m_is_currently_painting
private

Definition at line 311 of file eda_3d_canvas.h.

Referenced by DoRePaint().

◆ m_is_opengl_initialized

bool EDA_3D_CANVAS::m_is_opengl_initialized
private

Definition at line 305 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and initializeOpenGL().

◆ m_is_opengl_version_supported

bool EDA_3D_CANVAS::m_is_opengl_version_supported
private

Definition at line 306 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and initializeOpenGL().

◆ m_mouse_is_moving

bool HIDPI_GL_3D_CANVAS::m_mouse_is_moving
inherited

◆ m_mouse_was_moved

◆ m_moving_speed_multiplier

int EDA_3D_CANVAS::m_moving_speed_multiplier
private

◆ m_opengl_supports_raytracing

bool EDA_3D_CANVAS::m_opengl_supports_raytracing
private

Definition at line 324 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and initializeOpenGL().

◆ m_parentInfoBar

WX_INFOBAR* EDA_3D_CANVAS::m_parentInfoBar
private

Definition at line 302 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and SetInfoBar().

◆ m_parentStatusBar

wxStatusBar* EDA_3D_CANVAS::m_parentStatusBar
private

Definition at line 301 of file eda_3d_canvas.h.

Referenced by DisplayStatus(), DoRePaint(), OnMouseMove(), and SetStatusBar().

◆ m_redraw_trigger_timer

wxTimer EDA_3D_CANVAS::m_redraw_trigger_timer
private

Definition at line 310 of file eda_3d_canvas.h.

Referenced by OnTimerTimeout_Redraw(), and Request_refresh().

◆ m_render3dmousePivot

bool EDA_3D_CANVAS::m_render3dmousePivot = false
private

Definition at line 331 of file eda_3d_canvas.h.

Referenced by DoRePaint(), GetRender3dmousePivot(), and SetRender3dmousePivot().

◆ m_render_pivot

bool EDA_3D_CANVAS::m_render_pivot
private

◆ m_render_raytracing_was_requested

bool EDA_3D_CANVAS::m_render_raytracing_was_requested
private

Definition at line 325 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and RenderRaytracingRequest().

◆ m_settings

KIGFX::VC_SETTINGS HIDPI_GL_CANVAS::m_settings
protectedinherited

< Current VIEW_CONTROLS settings.

Definition at line 66 of file hidpi_gl_canvas.h.

Referenced by HIDPI_GL_3D_CANVAS::OnMouseWheelCamera().

◆ m_strtime_camera_movement

int64_t EDA_3D_CANVAS::m_strtime_camera_movement
private

Definition at line 315 of file eda_3d_canvas.h.

Referenced by DoRePaint(), and request_start_moving_camera().


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