Supported Options
=================

.. note::

    This list is non-exhaustive. More documentation will be added over time.


Hydra Viewport
--------------

Supported in `setOption()`
^^^^^^^^^^^^^^^^^^^^^^^^^^

 `"Global.Selection.SubdivisionLevel"`
  Sets the subdivision level for selected geometry. Accepts a StringAttribute with the subdivision
  level as the value (contrary to the use of a StringAttribute, the value should be a number).

 `"Global.View.Display Mode"`
  Sets the display mode for geometry in the viewport. Accepts a StringAttribute with one of the 
  following values set:

   - `"Points"`
   - `"Wireframe"`
   - `"PointsSolid"`
   - `"Flat Shaded"`

 `"Viewport.BackgroundColor"`
  Sets the background color of the viewport. Accepts a FloatAttribute with 4 values representing
  the RGBA of the background.

 `"Viewport.MultisampleCount"`
  Sets the number of samples to be used in the viewport's framebuffer. Accepts an IntAttribute
  with a single value.

.. _hydra-scene-layer-options:

Hydra Scene Viewport Layer
--------------------------

Supported in `setOption()`
^^^^^^^^^^^^^^^^^^^^^^^^^^

 `"EnabledPurposes"`
  Sets which purposes should be enabled in the layer. Accepts a StringAttribute containing any 
  purpose token strings to be enabled. Clears any currently enabled purposes before enabling the
  new ones.

 `"EnabledSkydome"`
  Sets whether the skydome should be enabled/disabled. Accepts an IntAttribute with `0` or `1`,
  for disabled or enabled, respectively.

 `"Global.Select.Display"`
  Sets the selection display mode. Accepts a StringAttribute with a single value specifying the
  mode. Possible values are `"Fill"` or `"Outline"`.

 `"ViewportLayer.ExcludedLocationsPicking"`
  Sets any locations which should be excluded from picking. Accepts a StringAttribute with a
  value per location.

 `"ViewportLayer.Redraw"`
  Sets whether a redraw should be forced at the next update. Accepts a IntAttribute with `0` or
  `1`, for don't draw or force draw, respectively.

 `"ViewportLayer.ShadowMode"`
  Sets the shadow mode. Accepts an IntAttribute representing the mode. Possible values:
   - `0` : No shadows
   - `1` : Shadows for all lights
   - `2` : Shadows for selected lights

Hydra Viewer Delegate
---------------------

Supported in `setOption()`
^^^^^^^^^^^^^^^^^^^^^^^^^^

 `"Global.Select.Display"`
  See :ref:`hydra-scene-layer-options`.

 `"Global.Select.Mode"`
  Sets the select mode. Accepts a StringAttribute with the value `"Faces"` or `"Objects"`.

 `"PurposeState"`
  Enables/disables a purpose. Accepts a Group attribute with a `"purpose"` child StringAttribute,
  which contains the name of the purpose to set, and an `"isEnabled"` child IntAttribute which
  should be either `0` or `1` to disable or enable the purpose, respectively.

 `"RenderDelegateState"`
  Sets the render delegate state. Accepts an IntAttribute representing the state. Possible values:

   - `0` : Active
   - `1` : Paused
   - `2` : Stopped
   
 `"RendererPlugin"`
  Sets the renderer plugin. Accepts a StringAttribute with the desired renderer plugin name as the
  value.

 `"RendererPluginSetting"`
  Sets a render setting. Accepts a GroupAttribute with a `"key"` child, which has the name of the
  setting, and a `"value"` child, which has the desired value of the setting.

 `"ViewerDelegate.ClearFaceSelection"`
  Clears current face selection. Value is ignored. 

 `"ViewerDelegate.FaceSelection"`
  Sets which faces are selected. Accepts a GroupAttribute of 0 or 1 children. No children deselects
  the face, otherwise the child's name is the face's location path, the value is an IntAttribute of
  the face index.

 `"ViewerDelegate.FaceSelectionColor"`
  Sets the face selection color. Accepts a FloatAttribute with 3 or 4 values representing the
  RGB(A).

 `"ViewerDelegate.FaceSelectModeColor"`
  Sets the face select mode color. Accepts a FloatAttribute with 3 or 4 values representing the
  RGB(A).

 `"ViewerDelegate.SelectionColor"`
  Sets the selection color. Accepts a FloatAttribute with 3 or 4 values representing the RGB(A).

 `"ViewerDelegate.SelectionEnabled"`
  Enables/disables selection. Accepts an IntAttribute of `0` or `1` to disable or enable,
  respectively.

 `"ViewerDelegate.ShadowMode"`
  Sets the shadow mode. Accepts an IntAttribute representing the mode. Possible values:

   - `0` : No shadows
   - `1` : Shadows for all lights
   - `2` : Shadows for selected lights

 `"ViewerDelegate.UseBasicMaterials"`
  Enables/disables default basic materials. Accepts an IntAttribute of `0` or `1` to disable or
  enable, respectively.

 `"ViewerDelegate.UseDefaultLighting"`
  Enables/disables default lighting. Accepts an IntAttribute of `0` or `1` to disable or enable,
  respectively.

 `"ViewerDelegate.VolumesVisible"`
  Sets volume visibility. Accepts an IntAttribute of `0` or `1` for invisible or visible,
  respectively.

Supported in `getOption()`
^^^^^^^^^^^^^^^^^^^^^^^^^^

 `"AddStandardLocatorsVDC"`
  Whether the StandardLocatorsVDC is added. Currently always true. 

 `"Global.Select.Mode"`
  Gets the select mode. Possible values are `"Faces"` or `"Objects"`.

 `"Hydra.SubdivisionLevels"`
  Gets the current subdivision level for the selected locations. Will return an IntAttribute with
  the subdivision level. If the subdivision levels for the currently selected levels are not
  uniform, will return `-1`.

 `"Purposes"`
  Get all possible purposes. Returns a StringAttribute.

 `"RenderDelegateStateInfo"`
  Gets the state info for the render delegate. Returns a GroupAttribute containing the current
  state of the render delegate, and whether pause or stop are supported.

 `"RendererPlugins"`
  Gets the registered Render Delegate plugins. Returns a GroupAttribute, with a child for each
  plugin, containing the ref count and name for each.
  
 `"RendererPluginSettings"`
  Gets all render settings for the currently enabled Render Delegate. Returns a Group attribute
  containing the name, type, default value, and current value (if set), for each setting.