KiCad PCB EDA Suite
Loading...
Searching...
No Matches
nl_pl_editor_plugin.cpp
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright (C) 2024 3Dconnexion
5 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
6 *
7 * This program is free software: you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License as published by the
9 * Free Software Foundation, either version 3 of the License, or (at your
10 * option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program. If not, see <https://www.gnu.org/licenses/>.
19 */
20
21#include "nl_pl_editor_plugin.h"
23
24#include <advanced_config.h>
25#include <kiplatform/drivers.h>
26#include <navlib_safe_init.h>
27
28
30{
31 if( ADVANCED_CFG::GetCfg().m_Use3DConnexionDriver
34 {
35 m_impl = std::make_unique<NL_PL_EDITOR_PLUGIN_IMPL>();
36 }
37}
38
39
41
42
44{
45 if( m_impl )
46 m_impl->SetFocus( focus );
47}
48
49
51{
52 if( m_impl )
53 m_impl->SetCanvas( aViewport );
54}
static const ADVANCED_CFG & GetCfg()
Get the singleton instance's config, which is shared by all consumers.
NL_PL_EDITOR_PLUGIN()
Initializes a new instance of the NL_PL_EDITOR_PLUGIN.
std::unique_ptr< NL_PL_EDITOR_PLUGIN_IMPL > m_impl
void SetCanvas(EDA_DRAW_PANEL_GAL *aViewport)
Sets the viewport controlled by the SpaceMouse.
virtual ~NL_PL_EDITOR_PLUGIN()
void SetFocus(bool aFocus)
Set the connection to the 3Dconnexion driver to the focus state so that 3DMouse data is routed to thi...
bool Valid3DConnexionDriverVersion()
Get the driver version for a given driver name.
bool NavlibDriverCrashed()
Returns true if a previous SafeNavlibInit call detected a driver crash.
Safe initialization wrapper for the 3Dconnexion navlib SDK.