#######################
|HPSNOW| User interface
#######################

Menus
=====

**File:**

    * *Open*: Open .hsf, .hmf, or .obj files
    * *Save*: Save the converted data to .red Luminate file
    * *Exit*: Exit the application

**Operators:**

    * *Zoom Fit*: Reset the camera to see the full loaded object
    * *Zoom Area*: Zoom in on a selected region by defining the region in a click-and-drag to draw a rectangle in the |HPSNOW| view
    * *Orbit*: Navigate the body of a model by using the left mouse button to orbit it
    * *Pan*: Allows you to pan the model using the left mouse button
    * *Walk*: Allows you to traverse into the scene using the mouse to control movements
    * *Point*: Allows you to select and highlight a segment of geometry
    * *Fly*: Allows you to fly enter into the scene using the mouse to control movements

**Settings:**

    * *Lighting*: Allows you to change the lighting present in the environment and load the environment map 
    * *Rendering*: Allows you to change Luminate light rendering parameters (refer to the Luminate Documentation `here <https://docs.techsoft3d.com/luminate/latest/api/namespaceRED.html#_CPPv4N3RED7OPTIONSE>`__ for more details)
    * *Materials*: Allows you to change the material affected to the selected geometry present
    * *Parameterization*: Allows you to change the parameterization of the selected geometry present (use it to apply texture on a part) 

**Help:**

    * *About*: Information about the demo application


+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
|       Icon Image                  | Description of Icon Purpose                                                        |
|                                   |                                                                                    |
+===================================+====================================================================================+
|                                   |                                                                                    |
| .. image:: images/open.png        | **Open**: Open an .hsf, .hmf, or .obj file                                         |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/zoom_fit.png    | **Zoom Fit**: Reset the camera to see the full loaded object                       |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/zoom_area.png   | **Zoom Area**: Zoom in on a selected region by defining the region in a            |
|                                   |                                                                                    |
|                                   | click-and-drag to draw a rectangle in the |HPSNOW| view                            |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/orbit.png       | **Orbit**: Navigate the body of a model by using the left mouse button to orbit it |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/pan.png         | **Pan**: Allow to pan the model using the left mouse button                        |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/walk.png        | **Walk**: Allows you to traverse into the scene using the mouse to control         |
|                                   |                                                                                    |
|                                   | movements                                                                          |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/point.png       | **Point**: Allows you to select and highlight a segment of geometry                |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/fly.png         | **Fly**: Allows you to fly enter into the scene using the mouse to control         |
|                                   |                                                                                    |
|                                   | movements                                                                          |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/lighting.png    | **Lighting**: Allows you to change the lighting present in the environment and     |
|                                   |                                                                                    |
|                                   | load the environment map                                                           |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/rendering.png   | **Rendering**: Allows you to change Luminate light rendering parameters            |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/materials.png   | **Materials**: Allows you to change Luminate light rendering parameters            |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/parameter.png   | **Parameterization**:Allows you to change the parameterization of the selected     |
|                                   |                                                                                    |
|                                   | geometry present (use it to apply texture on a part)                               |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/up_vector.png   | **Up Vector**: Allows you to specify the up vector of the scene and rotate it      |
|                                   |                                                                                    |
|                                   | accordingly                                                                        |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+
|                                   |                                                                                    |
| .. image:: images/scene_scale.png | **Scene Scale**: Allows you to change the scaling of the scene                     |
|                                   |                                                                                    |
+-----------------------------------+------------------------------------------------------------------------------------+


Rendering Views
===============

.. figure:: images/hps_rendering_views.png 
    :align: center

    **The left render view is the real time rendering and the right render view is the path tracing rendering. Only the left render view allows you to manipulate the camera with the mouse. Note that the zoom functionality is always accessible using the mouse wheel, even if the camera is in *orbit* or *pan* mode.**


Status Bar
==========

.. figure:: images/status_bar.png 
    :align: center

    **The status bar shows the estimate time remaining and the current progress of the Luminate rendering**

Widgets
=======

**Material Widget:**

.. image:: images/material_widget.png 
    :align: center

The Material Widget allows you to select a material library and change the material affected to the selected segment of the geometry. The option ``Override material``, as shown in the image above, allows you to detach a segment from a shared material and apply the new material solely to it. By default, the current material will be replaced, and all of the segments using the same material will be affected. The option ``Preserve colors``, as shown in the image above, will use the color from |HPSNOW| as a diffuse color in the new material. This allows you to use the specifications of the selected material while maintaining the initial color of the segment.


**Parameterization Widget:**

.. image:: images/param_widget.png 
    :align: center

The Parameterization Widget allows you to apply a new texture parameterization on the selected segment of the geometry. The widget also allows you to select between a few modes of parameterization (i.e. planar; spherical, cylindrical, cylindrical cap, box) and specify the scale and orientation of the parameterization.

**Rendering Options Widget:**

.. image:: images/rendering_options_widget.png 
    :align: center

The Rendering Options Widget allows you to change all the rendering parameters available within Luminate. The main parameters at the top, under ``Frame Tracing Feedback``, allows you to select the rendering mode between ray tracing and path tracing. We will not go in detail about all the parameters in this section, but you can refer to the Luminate Documentation `here <https://docs.techsoft3d.com/luminate/latest/api/namespaceRED.html#_CPPv4N3RED7OPTIONSE>`__ for more information on these parameters. 

.. note::
    
    Not all parameters are taken into account, depending on the frame tracing feedback method chosen.

**Lighting Widget:**

.. image:: images/lighting_widget.png 
    :align: center

The Lighting Widget allows you to select and change between two environment types. The default environment type is the Sun and skylight, however you can also use an environment map.

.. image:: images/lighting_widget_2.png
    :align: center

The Lighting Widget also allows the creation of lights based on the position and orientation of the camera. The default parameters can be edited, and can include:

    * Color
    * Shape
    * Position
    * Orientation
    * Scale

After its creation, you can select a light and edit its parameters, clone it, or decide to remove it from the scene.
