======= Product ======= .. py:currentmodule:: p3dsdk .. py:class:: Product .. py:method:: id :property: The id of the product. :type: str, read-only .. py:method:: name :property: The name of the product. :type: str :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: favorite_camera_1 :property: The favorite camera 1. :type: Camera or None :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: favorite_camera_2 :property: The favorite camera 2. :type: Camera or None :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: favorite_camera_3 :property: The favorite camera 3. :type: Camera or None :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: favorite_camera_4 :property: The favorite camera 4. :type: Camera or None :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: active_aspect_layer :property: The active :py:obj:`AspectLayer` of this product. :type: AspectLayer :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: active_environment_layer :property: The active :py:obj:`EnvironmentLayer` of this product. :type: EnvironmentLayer :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: ssao_enabled :property: Whether the SSAO is enabled. :type: bool :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: ssao_intensity :property: The SSAO intensity. :type: float :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. :raises ValueError: If trying to set a negative intensity. .. py:method:: ssao_lightmaps_enabled :property: Whether the lightmaps are enabled when SSAO is enabled. :type: bool :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: ssao_apply_transparent_surfaces :property: Whether the SSAO is applied to transparent surfaces. :type: bool :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: ssao_radius :property: The SSAO radius when searching for occluders. :type: float :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. :raises ValueError: If trying to set a negative radius. .. py:method:: ssao_steps :property: The number of steps to use when computing SSAO. :type: int :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. :raises ValueError: If trying to set a number of steps not between 1 and 500. .. py:method:: ssao_bias :property: The SSAO bias. :type: float :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. :raises ValueError: If trying to set a bias less than 1. .. py:method:: duplicate() Duplicate this product. :returns: The duplicated product. :rtype: Product :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: remove() Delete this product. :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: find_aspect_layer(id) Find an :py:obj:`AspectLayer` by id. :param id: :py:obj:`AspectLayer` id to find. :type id: str :returns: The :py:obj:`AspectLayer` found or :py:obj:`None` if not found. :rtype: AspectLayer or None .. py:method:: list_aspect_layers(recursive = True) List all the :py:obj:`AspectLayer`. :param recursive: If :py:obj:`True`, list all aspect layers in the hierarchy, otherwise only aspect layers at the root are returned. :type recursive: bool :returns: The list of :py:obj:`AspectLayer` in this product. :rtype: list(AspectLayer) .. py:method:: find_aspect_layer_group(id) Find an :py:obj:`AspectLayerGroup` by id. :param id: :py:obj:`AspectLayerGroup` id to find. :type id: str :returns: The :py:obj:`AspectLayerGroup` found or :py:obj:`None` if not found. :rtype: AspectLayerGroup or None .. py:method:: list_aspect_layer_groups(recursive = True) List all the :py:obj:`AspectLayerGroup`. :param recursive: If :py:obj:`True`, list all aspect layer groups in the hierarchy, otherwise only aspect layer groups at the root are returned. :type recursive: bool :returns: The list of :py:obj:`AspectLayerGroup` in this product. :rtype: list(AspectLayerGroup) .. py:method:: create_aspect_layer_group(name) Create a new :py:obj:`AspectLayerGrup` in this product. :param name: Name of the :py:obj:`AspectLayerGroup`. :type name: str :returns: The newly created :py:obj:`AspectLayerGroup`. :rtype: AspectLayerGroup :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: create_aspect_layer(name) Create a new :py:obj:`AspectLayer` in this product. :param name: Name of the :py:obj:`AspectLayer`. :type name: str :returns: The newly created :py:obj:`AspectLayer`. :rtype: AspectLayer :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: list_environment_layers() List all the :py:obj:`EnvironmentLayer`. :returns: The list of :py:obj:`EnvironmentLayer` in this product. :rtype: list(EnvironmentLayer) .. py:method:: create_environment_layer(name) Create a new :py:obj:`EnvironmentLayer` in this product. :param name: Name of the :py:obj:`EnvironmentLayer`. :type name: str :returns: The newly created :py:obj:`EnvironmentLayer`. :rtype: EnvironmentLayer :raises ReadOnlyError: If :py:obj:`Database` is in read only mode. .. py:method:: list_configuration_parameters() List all the :py:obj:`ConfigurationParameter`. :returns: The list of :py:obj:`ConfigurationParameter` in this product. :rtype: list(ConfigurationParameter) .. py:method:: list_configuration_presets() List all the :py:obj:`ConfigurationPreset`. :returns: The list of :py:obj:`Configuration` in this product. :rtype: list(ConfigurationPreset) .. py:method:: create_configuration_preset(name) Create a new :py:obj:`ConfigurationPreset` in this product. :param name: Name of the :py:obj:`ConfigurationPreset`. :type name: str :returns: The newly created :py:obj:`ConfigurationPreset`. :rtype: ConfigurationPreset :raises ReadOnlyError: If :py:obj:`Database` is in read only mode.