.. _custom-navigation-example:

#######################################################################################
Visualization: Create a Custom Navigation Handler to Support a Custom Navigation Scheme
#######################################################################################

The :class:`cee::vis::Camera` has an input handler that handles user input (mouse and keyboard events) and manipulates 
the camera based on these events. This is used to move the camera around the scene to inspect the model.

In this example we will show how to create a custom navigation scheme by subclassing the :class:`cee::vis::CameraInputHandler`.


.. image:: ../images/tut_customnavigation.png
    :height: 300 
    :align: center


.. literalinclude:: ../../../../EnvisionDesktop/Tutorials/CustomNavigation.cpp
    :language: cpp
    :lines: 39-114