Adding a new mouse navigation option to FreeCAD: Difference between revisions

From FreeCAD Documentation
mNo edit summary
Line 21: Line 21:
== Relevant source files ==
== Relevant source files ==


At the time of writing this documentation the relevant source code files required are located at:
At the time of writing this documentation the relevant source code files are located at:
* {{FileName|src/Gui/NavigationStyle.(h,cpp)}}
* {{FileName|src/Gui/NavigationStyle.(h,cpp)}}
* {{FileName|src/Gui/(Foo)NavigationStyle.cpp}} ''Foo'' is a placeholder for the different mouse/navigation modes, for example: Revit, Inventor, OpenCascade, Touchpad, CAD etc...
* {{FileName|src/Gui/(Foo)NavigationStyle.cpp}} ''Foo'' is a placeholder for the different mouse/navigation modes, for example: Revit, Inventor, OpenCascade, Touchpad, CAD etc...

Revision as of 09:59, 14 November 2021

This tutorial is still a WIP. Feel free to help improve it
Tutorial
Topic
Adding new navigation option to FreeCAD
Level
Advanced
Time to complete
Authors
Kunda1
FreeCAD version
0.19.x and above
Example files
See also
None

Introduction

This tutorial attempts to help developers understand how to add their own custom 'mouse' models to FreeCAD. There are currently several options within FreeCAD to customize navigation, they are listed in the Mouse navigation page. Some of the options include: Revit, OpenCascade, Inventor, Touchpad etc...

Prerequisite

  • Familiarity with C++ syntax
  • Ability to compile FreeCAD from source

Relevant source files

At the time of writing this documentation the relevant source code files are located at:

  • src/Gui/NavigationStyle.(h,cpp)
  • src/Gui/(Foo)NavigationStyle.cpp Foo is a placeholder for the different mouse/navigation modes, for example: Revit, Inventor, OpenCascade, Touchpad, CAD etc...
  • src/Gui/CMakeLists.txt - Add your new mouse/navigation mode here so it's picked up by the compiler
  • src/Gui/SoFCDB.cpp

Historical code commits

We can refer to previous code commits that added different mouse modes for orientation. Here are a few:

Source code

Template:Tutorials navi