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

The class that implements the accessors and mutators required for 3D navigation in an EDA_3D_CANVAS using a SpaceMouse. More...

#include <nl_3d_viewer_plugin_impl.h>

Inheritance diagram for NL_3D_VIEWER_PLUGIN_IMPL:
NL_FOOTPRINT_PROPERTIES_PLUGIN_IMPL

Public Member Functions

 NL_3D_VIEWER_PLUGIN_IMPL (EDA_3D_CANVAS *aCanvas, const std::string &aProfileHint)
 Initializes a new instance of the NL_3DVIEWER_PLUGIN.
 
virtual ~NL_3D_VIEWER_PLUGIN_IMPL ()
 
void SetFocus (bool aFocus=true)
 Set the connection to the 3Dconnexion driver to the focus state so that 3DMouse data is routed here.
 
EDA_3D_CANVASGetCanvas () const
 Get the m_canvas pointer.
 
void Connect ()
 Connect plugin implementation to the driver.
 

Private Member Functions

virtual void exportCommandsAndImages ()
 Export the invocable actions and images to the 3Dconnexion UI.
 
long GetCameraMatrix (navlib::matrix_t &aMatrix) const override
 
long GetPointerPosition (navlib::point_t &aPosition) const override
 
long GetViewExtents (navlib::box_t &aExtents) const override
 
long GetViewFOV (double &aFov) const override
 
long GetViewFrustum (navlib::frustum_t &aFrustum) const override
 
long GetIsViewPerspective (navlib::bool_t &aPerspective) const override
 
long SetCameraMatrix (const navlib::matrix_t &aMatrix) override
 
long SetViewExtents (const navlib::box_t &aExtents) override
 
long SetViewFOV (double aFov) override
 
long SetViewFrustum (const navlib::frustum_t &aFrustum) override
 
long GetModelExtents (navlib::box_t &aExtents) const override
 
long GetSelectionExtents (navlib::box_t &aExtents) const override
 
long GetSelectionTransform (navlib::matrix_t &aTransform) const override
 
long GetIsSelectionEmpty (navlib::bool_t &aEmpty) const override
 
long SetSelectionTransform (const navlib::matrix_t &aMatrix) override
 
long GetPivotPosition (navlib::point_t &aPosition) const override
 
long IsUserPivot (navlib::bool_t &aUserPivot) const override
 
long SetPivotPosition (const navlib::point_t &aPosition) override
 
long GetPivotVisible (navlib::bool_t &aVisible) const override
 
long SetPivotVisible (bool aVisible) override
 
long GetHitLookAt (navlib::point_t &aPosition) const override
 
long SetHitAperture (double aAperture) override
 
long SetHitDirection (const navlib::vector_t &aDirection) override
 
long SetHitLookFrom (const navlib::point_t &aPosition) override
 
long SetHitSelectionOnly (bool aSelectionOnly) override
 
long SetActiveCommand (std::string aCommandId) override
 
long SetSettingsChanged (long aChangeNumber) override
 
long SetMotionFlag (bool aValue) override
 
long SetTransaction (long aValue) override
 
long SetCameraTarget (const navlib::point_t &aPosition) override
 
long GetFrontView (navlib::matrix_t &aMatrix) const override
 
long GetCoordinateSystem (navlib::matrix_t &aMatrix) const override
 
long GetIsViewRotatable (navlib::bool_t &isRotatable) const override
 

Private Attributes

EDA_3D_CANVASm_canvas
 
TRACK_BALLm_camera
 
bool m_capIsMoving
 
double m_newWidth
 
SFVEC3F m_rayOrigin
 
SFVEC3F m_rayDirection
 
glm::mat4 m_cameraMatrix
 

Static Private Attributes

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

Detailed Description

The class that implements the accessors and mutators required for 3D navigation in an EDA_3D_CANVAS using a SpaceMouse.

Definition at line 57 of file nl_3d_viewer_plugin_impl.h.

Constructor & Destructor Documentation

◆ NL_3D_VIEWER_PLUGIN_IMPL()

NL_3D_VIEWER_PLUGIN_IMPL::NL_3D_VIEWER_PLUGIN_IMPL ( EDA_3D_CANVAS aCanvas,
const std::string &  aProfileHint 
)

Initializes a new instance of the NL_3DVIEWER_PLUGIN.

Parameters
aCanvasis the viewport to be navigated.
aProfileHinttells the 3DConnexion UI which profile to use.

Definition at line 76 of file nl_3d_viewer_plugin_impl.cpp.

References HIDPI_GL_3D_CANVAS::GetCamera(), m_camera, and m_canvas.

◆ ~NL_3D_VIEWER_PLUGIN_IMPL()

NL_3D_VIEWER_PLUGIN_IMPL::~NL_3D_VIEWER_PLUGIN_IMPL ( )
virtual

Definition at line 88 of file nl_3d_viewer_plugin_impl.cpp.

Member Function Documentation

◆ Connect()

void NL_3D_VIEWER_PLUGIN_IMPL::Connect ( )

Connect plugin implementation to the driver.

Definition at line 107 of file nl_3d_viewer_plugin_impl.cpp.

References exportCommandsAndImages().

◆ exportCommandsAndImages()

void NL_3D_VIEWER_PLUGIN_IMPL::exportCommandsAndImages ( )
privatevirtual

◆ GetCameraMatrix()

long NL_3D_VIEWER_PLUGIN_IMPL::GetCameraMatrix ( navlib::matrix_t &  aMatrix) const
overrideprivate

Definition at line 246 of file nl_3d_viewer_plugin_impl.cpp.

References CAMERA::GetViewMatrix(), m_camera, and m_cameraMatrix.

◆ GetCanvas()

EDA_3D_CANVAS * NL_3D_VIEWER_PLUGIN_IMPL::GetCanvas ( ) const

Get the m_canvas pointer.

Definition at line 101 of file nl_3d_viewer_plugin_impl.cpp.

References m_canvas.

Referenced by NL_FOOTPRINT_PROPERTIES_PLUGIN_IMPL::GetModelExtents().

◆ GetCoordinateSystem()

long NL_3D_VIEWER_PLUGIN_IMPL::GetCoordinateSystem ( navlib::matrix_t &  aMatrix) const
overrideprivate

Definition at line 658 of file nl_3d_viewer_plugin_impl.cpp.

◆ GetFrontView()

long NL_3D_VIEWER_PLUGIN_IMPL::GetFrontView ( navlib::matrix_t &  aMatrix) const
overrideprivate

Definition at line 651 of file nl_3d_viewer_plugin_impl.cpp.

◆ GetHitLookAt()

long NL_3D_VIEWER_PLUGIN_IMPL::GetHitLookAt ( navlib::point_t &  aPosition) const
overrideprivate

◆ GetIsSelectionEmpty()

long NL_3D_VIEWER_PLUGIN_IMPL::GetIsSelectionEmpty ( navlib::bool_t &  aEmpty) const
overrideprivate

Definition at line 436 of file nl_3d_viewer_plugin_impl.cpp.

References empty().

◆ GetIsViewPerspective()

long NL_3D_VIEWER_PLUGIN_IMPL::GetIsViewPerspective ( navlib::bool_t &  aPerspective) const
overrideprivate

Definition at line 311 of file nl_3d_viewer_plugin_impl.cpp.

References CAMERA::GetProjection(), and m_camera.

◆ GetIsViewRotatable()

long NL_3D_VIEWER_PLUGIN_IMPL::GetIsViewRotatable ( navlib::bool_t &  isRotatable) const
overrideprivate

Definition at line 666 of file nl_3d_viewer_plugin_impl.cpp.

◆ GetModelExtents()

long NL_3D_VIEWER_PLUGIN_IMPL::GetModelExtents ( navlib::box_t &  aExtents) const
overrideprivate

◆ GetPivotPosition()

long NL_3D_VIEWER_PLUGIN_IMPL::GetPivotPosition ( navlib::point_t &  aPosition) const
overrideprivate

Definition at line 450 of file nl_3d_viewer_plugin_impl.cpp.

References CAMERA::GetLookAtPos(), and m_camera.

◆ GetPivotVisible()

long NL_3D_VIEWER_PLUGIN_IMPL::GetPivotVisible ( navlib::bool_t &  aVisible) const
overrideprivate

◆ GetPointerPosition()

long NL_3D_VIEWER_PLUGIN_IMPL::GetPointerPosition ( navlib::point_t &  aPosition) const
overrideprivate

◆ GetSelectionExtents()

long NL_3D_VIEWER_PLUGIN_IMPL::GetSelectionExtents ( navlib::box_t &  aExtents) const
overrideprivate

Definition at line 424 of file nl_3d_viewer_plugin_impl.cpp.

◆ GetSelectionTransform()

long NL_3D_VIEWER_PLUGIN_IMPL::GetSelectionTransform ( navlib::matrix_t &  aTransform) const
overrideprivate

Definition at line 430 of file nl_3d_viewer_plugin_impl.cpp.

◆ GetViewExtents()

long NL_3D_VIEWER_PLUGIN_IMPL::GetViewExtents ( navlib::box_t &  aExtents) const
overrideprivate

◆ GetViewFOV()

long NL_3D_VIEWER_PLUGIN_IMPL::GetViewFOV ( double &  aFov) const
overrideprivate

◆ GetViewFrustum()

long NL_3D_VIEWER_PLUGIN_IMPL::GetViewFrustum ( navlib::frustum_t &  aFrustum) const
overrideprivate

◆ IsUserPivot()

long NL_3D_VIEWER_PLUGIN_IMPL::IsUserPivot ( navlib::bool_t &  aUserPivot) const
overrideprivate

Definition at line 460 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetActiveCommand()

◆ SetCameraMatrix()

long NL_3D_VIEWER_PLUGIN_IMPL::SetCameraMatrix ( const navlib::matrix_t &  aMatrix)
overrideprivate

◆ SetCameraTarget()

long NL_3D_VIEWER_PLUGIN_IMPL::SetCameraTarget ( const navlib::point_t &  aPosition)
overrideprivate

Definition at line 645 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetFocus()

void NL_3D_VIEWER_PLUGIN_IMPL::SetFocus ( bool  aFocus = true)

Set the connection to the 3Dconnexion driver to the focus state so that 3DMouse data is routed here.

Parameters
aFocusis true to set the connection active.

Definition at line 94 of file nl_3d_viewer_plugin_impl.cpp.

References m_logTrace.

◆ SetHitAperture()

long NL_3D_VIEWER_PLUGIN_IMPL::SetHitAperture ( double  aAperture)
overrideprivate

Definition at line 523 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetHitDirection()

long NL_3D_VIEWER_PLUGIN_IMPL::SetHitDirection ( const navlib::vector_t &  aDirection)
overrideprivate

Definition at line 529 of file nl_3d_viewer_plugin_impl.cpp.

References m_rayDirection.

◆ SetHitLookFrom()

long NL_3D_VIEWER_PLUGIN_IMPL::SetHitLookFrom ( const navlib::point_t &  aPosition)
overrideprivate

Definition at line 537 of file nl_3d_viewer_plugin_impl.cpp.

References m_rayOrigin.

◆ SetHitSelectionOnly()

long NL_3D_VIEWER_PLUGIN_IMPL::SetHitSelectionOnly ( bool  aSelectionOnly)
overrideprivate

Definition at line 545 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetMotionFlag()

long NL_3D_VIEWER_PLUGIN_IMPL::SetMotionFlag ( bool  aValue)
overrideprivate

Definition at line 622 of file nl_3d_viewer_plugin_impl.cpp.

References m_capIsMoving.

◆ SetPivotPosition()

long NL_3D_VIEWER_PLUGIN_IMPL::SetPivotPosition ( const navlib::point_t &  aPosition)
overrideprivate

◆ SetPivotVisible()

long NL_3D_VIEWER_PLUGIN_IMPL::SetPivotVisible ( bool  aVisible)
overrideprivate

◆ SetSelectionTransform()

long NL_3D_VIEWER_PLUGIN_IMPL::SetSelectionTransform ( const navlib::matrix_t &  aMatrix)
overrideprivate

Definition at line 444 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetSettingsChanged()

long NL_3D_VIEWER_PLUGIN_IMPL::SetSettingsChanged ( long  aChangeNumber)
overrideprivate

Definition at line 616 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetTransaction()

long NL_3D_VIEWER_PLUGIN_IMPL::SetTransaction ( long  aValue)
overrideprivate

◆ SetViewExtents()

long NL_3D_VIEWER_PLUGIN_IMPL::SetViewExtents ( const navlib::box_t &  aExtents)
overrideprivate

◆ SetViewFOV()

long NL_3D_VIEWER_PLUGIN_IMPL::SetViewFOV ( double  aFov)
overrideprivate

Definition at line 401 of file nl_3d_viewer_plugin_impl.cpp.

◆ SetViewFrustum()

long NL_3D_VIEWER_PLUGIN_IMPL::SetViewFrustum ( const navlib::frustum_t &  aFrustum)
overrideprivate

Definition at line 407 of file nl_3d_viewer_plugin_impl.cpp.

Member Data Documentation

◆ m_camera

◆ m_cameraMatrix

glm::mat4 NL_3D_VIEWER_PLUGIN_IMPL::m_cameraMatrix
mutableprivate

Definition at line 141 of file nl_3d_viewer_plugin_impl.h.

Referenced by GetCameraMatrix(), SetCameraMatrix(), and SetViewExtents().

◆ m_canvas

◆ m_capIsMoving

bool NL_3D_VIEWER_PLUGIN_IMPL::m_capIsMoving
private

Definition at line 134 of file nl_3d_viewer_plugin_impl.h.

Referenced by SetMotionFlag().

◆ m_newWidth

double NL_3D_VIEWER_PLUGIN_IMPL::m_newWidth
private

Definition at line 135 of file nl_3d_viewer_plugin_impl.h.

◆ m_rayDirection

SFVEC3F NL_3D_VIEWER_PLUGIN_IMPL::m_rayDirection
private

Definition at line 137 of file nl_3d_viewer_plugin_impl.h.

Referenced by GetHitLookAt(), and SetHitDirection().

◆ m_rayOrigin

SFVEC3F NL_3D_VIEWER_PLUGIN_IMPL::m_rayOrigin
private

Definition at line 136 of file nl_3d_viewer_plugin_impl.h.

Referenced by GetHitLookAt(), and SetHitLookFrom().


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