.. _group__a3d__graphics__module:

########
Graphics
########

Query and manipulate scene and rendering information.

The graphics group provides the essential set of tools for describing a rendering scene, such as texturing, lighting or view information. The following entities are presents in this modules, along with their public data and access functions:


- ``A3DGraphAmbientLightData``
- \ ``A3DGraphCameraData``
- \ ``A3DGraphDirectionalLightData``
- \ ``A3DGraphHatchingPatternLineData``
- \ ``A3DGraphicsData``
- \ ``A3DGraphPointLightData``
- \ ``A3DGraphSceneDisplayParametersData``
- \ ``A3DGraphSpotLightData``
- \ ``A3DMiscCascadedAttributesData``

\ The module also provides a set of indexed data:


- ``A3DGraphDottingPatternData``
- \ ``A3DGraphHatchingPatternData``
- \ ``A3DGraphLinePatternData``
- \ ``A3DGraphMaterialData``
- \ ``A3DGraphPictureData``
- \ ``A3DGraphRgbColorData``
- \ ``A3DGraphSolidPatternData``
- \ ``A3DGraphStyleData``
- \ ``A3DGraphVPicturePatternData``

\ Any entity of the given type can be used as an ``A3DRootBaseWithGraphics``\ .

HOOPS Exchange provides a global container (``A3DGlobalData``\ ) which references each of these data using indexed lists. Thus, structures such as ``A3DGraphRgbColorData``\ are obtained using an non-typed numerical index.

Yet, these data act as front-end for internal entities which are still referenced to by handles. The purpose of obtaining the underlying entity of an indexed data depends on the context and is generally an uncommon operation. As an example, the full PBR (Physically-Based Rendering) features is provided as an extension of ``A3DGraphMaterialData``\ throughout its underlying entity. To retrieve the underlying entity of an indexed data, see ``A3DMiscPointerFromIndexGet``\ .

**Parameters**


   **pGraphics**\ : A handle to the graphics entity to fetch data from.

   **pData**\ : The ``A3DGraphicsData``\ to fill in.


**Returns**


   ``A3D_SUCCESS``\ or an error code in case of failure.


.. rst-class:: kind-group kind-topic

.. rubric:: Topics
   :class: kind-group-title


.. rst-class:: api-xref-list


* :ref:`Bit Field for Behavior on Graphics <group__a3d__graphicsbits>`
* :ref:`Display Style <group__a3d__style>`
* :ref:`Textures <group__a3d__textures>`

.. rst-class:: kind-group kind-record

.. rubric:: Structures
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:struct:`~A3DGraphicsData`
* :c:struct:`~A3DGraphStyleData`
* :c:struct:`~A3DGraphRgbColorData`
* :c:struct:`~A3DGraphLinePatternData`
* :c:struct:`~A3DGraphMaterialData`
* :c:struct:`~A3DGraphPictureData`
* :c:struct:`~A3DGraphDottingPatternData`
* :c:struct:`~A3DGraphHatchingPatternLineData`
* :c:struct:`~A3DGraphHatchingPatternData`
* :c:struct:`~A3DGraphSolidPatternData`
* :c:struct:`~A3DGraphVPicturePatternData`
* :c:struct:`~A3DGraphAmbientLightData`
* :c:struct:`~A3DGraphPointLightData`
* :c:struct:`~A3DGraphSpotLightData`
* :c:struct:`~A3DMiscCascadedAttributesData`
* :c:struct:`~A3DGraphDirectionalLightData`

.. rst-class:: kind-group kind-enumeration

.. rubric:: Enumerations
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:enum:`~A3DEPictureDataFormat`

.. rst-class:: kind-group kind-function

.. rubric:: Functions
   :class: kind-group-title


.. rst-class:: api-xref-list


* :c:func:`~A3DGraphicsGet`
* :c:func:`~A3DGraphicsCreate`
* :c:func:`~A3DGraphicsDelete`
* :c:func:`~A3DGlobalGetGraphStyleData`
* :c:func:`~A3DGlobalInsertGraphStyle`
* :c:func:`~A3DGlobalGetGraphRgbColorData`
* :c:func:`~A3DGlobalInsertGraphRgbColor`
* :c:func:`~A3DGlobalGetGraphLinePatternData`
* :c:func:`~A3DGlobalInsertGraphLinePattern`
* :c:func:`~A3DGlobalGetGraphMaterialData`
* :c:func:`~A3DGlobalInsertGraphMaterial`
* :c:func:`~A3DGlobalGetGraphPictureData`
* :c:func:`~A3DGlobalInsertGraphPicture`
* :c:func:`~A3DGlobalGetGraphDottingPatternData`
* :c:func:`~A3DGlobalInsertGraphDottingPattern`
* :c:func:`~A3DGlobalGetGraphHatchingPatternData`
* :c:func:`~A3DGlobalInsertGraphHatchingPattern`
* :c:func:`~A3DGlobalGetGraphSolidPatternData`
* :c:func:`~A3DGlobalInsertGraphSolidPattern`
* :c:func:`~A3DGlobalGetGraphVPicturePatternData`
* :c:func:`~A3DGlobalInsertGraphVPicturePattern`
* :c:func:`~A3DGraphCameraGet`
* :c:func:`~A3DGraphCameraCreate`
* :c:func:`~A3DGraphAmbientLightGet`
* :c:func:`~A3DGraphAmbientLightCreate`
* :c:func:`~A3DGraphPointLightGet`
* :c:func:`~A3DGraphPointLightCreate`
* :c:func:`~A3DGraphSpotLightGet`
* :c:func:`~A3DGraphSpotLightCreate`
* :c:func:`~A3DGraphDirectionalLightGet`
* :c:func:`~A3DGraphDirectionalLightCreate`
* :c:func:`~A3DGraphSceneDisplayParametersGet`
* :c:func:`~A3DGraphSceneDisplayParametersCreate`
* :c:func:`~A3DMiscCascadedAttributesCreate`
* :c:func:`~A3DMiscCascadedAttributesDelete`
* :c:func:`~A3DMiscCascadedAttributesGet`
* :c:func:`~A3DMiscCascadedAttributesPush`
* :c:func:`~A3DMiscCascadedAttributesPushTessFace`
* :c:func:`~A3DMiscCascadedAttributesEntityReferencePush`
* :c:func:`~A3DMiscPointerFromIndexGet`
* :c:func:`~A3DMiscRootBaseInsertAttribute`

.. toctree::
   :maxdepth: 1
   :hidden:

   a3d_graphicsbits
   a3d_style
   a3d_textures
   ../structures/A3DGraphicsData
   ../structures/A3DGraphStyleData
   ../structures/A3DGraphRgbColorData
   ../structures/A3DGraphLinePatternData
   ../structures/A3DGraphMaterialData
   ../structures/A3DGraphPictureData
   ../structures/A3DGraphDottingPatternData
   ../structures/A3DGraphHatchingPatternLineData
   ../structures/A3DGraphHatchingPatternData
   ../structures/A3DGraphSolidPatternData
   ../structures/A3DGraphVPicturePatternData
   ../structures/A3DGraphAmbientLightData
   ../structures/A3DGraphPointLightData
   ../structures/A3DGraphSpotLightData
   ../structures/A3DMiscCascadedAttributesData
   ../structures/A3DGraphDirectionalLightData
   ../enums/A3DEPictureDataFormat
   ../functions/A3DGraphicsGet
   ../functions/A3DGraphicsCreate
   ../functions/A3DGraphicsDelete
   ../functions/A3DGlobalGetGraphStyleData
   ../functions/A3DGlobalInsertGraphStyle
   ../functions/A3DGlobalGetGraphRgbColorData
   ../functions/A3DGlobalInsertGraphRgbColor
   ../functions/A3DGlobalGetGraphLinePatternData
   ../functions/A3DGlobalInsertGraphLinePattern
   ../functions/A3DGlobalGetGraphMaterialData
   ../functions/A3DGlobalInsertGraphMaterial
   ../functions/A3DGlobalGetGraphPictureData
   ../functions/A3DGlobalInsertGraphPicture
   ../functions/A3DGlobalGetGraphDottingPatternData
   ../functions/A3DGlobalInsertGraphDottingPattern
   ../functions/A3DGlobalGetGraphHatchingPatternData
   ../functions/A3DGlobalInsertGraphHatchingPattern
   ../functions/A3DGlobalGetGraphSolidPatternData
   ../functions/A3DGlobalInsertGraphSolidPattern
   ../functions/A3DGlobalGetGraphVPicturePatternData
   ../functions/A3DGlobalInsertGraphVPicturePattern
   ../functions/A3DGraphCameraGet
   ../functions/A3DGraphCameraCreate
   ../functions/A3DGraphAmbientLightGet
   ../functions/A3DGraphAmbientLightCreate
   ../functions/A3DGraphPointLightGet
   ../functions/A3DGraphPointLightCreate
   ../functions/A3DGraphSpotLightGet
   ../functions/A3DGraphSpotLightCreate
   ../functions/A3DGraphDirectionalLightGet
   ../functions/A3DGraphDirectionalLightCreate
   ../functions/A3DGraphSceneDisplayParametersGet
   ../functions/A3DGraphSceneDisplayParametersCreate
   ../functions/A3DMiscCascadedAttributesCreate
   ../functions/A3DMiscCascadedAttributesDelete
   ../functions/A3DMiscCascadedAttributesGet
   ../functions/A3DMiscCascadedAttributesPush
   ../functions/A3DMiscCascadedAttributesPushTessFace
   ../functions/A3DMiscCascadedAttributesEntityReferencePush
   ../functions/A3DMiscPointerFromIndexGet
   ../functions/A3DMiscRootBaseInsertAttribute


