iscene_element.h File Reference
Description
Base class for all scene elements.
Code Example
iscene_element.h
//*****************************************************************************
// Copyright 1986, 2016 NVIDIA Corporation. All rights reserved.
//*****************************************************************************
//*****************************************************************************
#ifndef MI_NEURAYLIB_ISCENE_ELEMENT_H
#define MI_NEURAYLIB_ISCENE_ELEMENT_H
#include <mi/neuraylib/iattribute_set.h>
#include <mi/neuraylib/version.h>
namespace mi {
namespace neuraylib {
enum Element_type
{
#ifndef MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_INSTANCE = 0,
ELEMENT_TYPE_GROUP = 1,
ELEMENT_TYPE_OPTIONS = 2,
ELEMENT_TYPE_CAMERA = 3,
ELEMENT_TYPE_LIGHT = 4,
#endif // MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_LIGHTPROFILE = 5,
#ifndef MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_MATERIAL = 6, // mi::neuraylib::IMaterial
#endif // MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_TEXTURE = 7,
ELEMENT_TYPE_IMAGE = 8,
#ifndef MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_SHADER = 9, // mi::neuraylib::IShader
ELEMENT_TYPE_TRIANGLE_MESH = 10,
ELEMENT_TYPE_ATTRIBUTE_CONTAINER = 16,
ELEMENT_TYPE_POLYGON_MESH = 18,
ELEMENT_TYPE_SHADER_CLASS = 19, // mi::neuraylib::IShader_class
ELEMENT_TYPE_SUBDIVISION_SURFACE = 23,
ELEMENT_TYPE_FREEFORM_SURFACE = 24,
ELEMENT_TYPE_SHADER_GRAPH_CLASS = 26, // mi::neuraylib::IShader_graph_class
ELEMENT_TYPE_SHADER_GRAPH = 27, // mi::neuraylib::IShader_graph
ELEMENT_TYPE_COMPOUND_SHADER_CLASS = 28, // mi::neuraylib::ICompound_shader_class
#endif // MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_MDL_MODULE = 29,
ELEMENT_TYPE_MDL_FUNCTION_DEFINITION = 30,
ELEMENT_TYPE_MDL_FUNCTION_CALL = 31,
ELEMENT_TYPE_MDL_MATERIAL_DEFINITION = 32,
ELEMENT_TYPE_MDL_MATERIAL_INSTANCE = 33,
ELEMENT_TYPE_MDL_COMPILED_MATERIAL = 34,
ELEMENT_TYPE_BSDF_MEASUREMENT = 35,
#ifndef MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_IRRADIANCE_PROBES = 36,
ELEMENT_TYPE_DECAL = 37,
ELEMENT_TYPE_ON_DEMAND_MESH = 38,
#endif // MI_SKIP_WITH_MDL_SDK_DOXYGEN
ELEMENT_TYPE_FORCE_32_BIT = 0xffffffffU
};
mi_static_assert( sizeof( Element_type)== sizeof( Uint32));
enum Shader_type {
VOLUME_SHADER = 0,
ENVIRONMENT_SHADER = 1,
SURFACE_SHADER = 2,
DISPLACEMENT_SHADER = 3,
LIGHT_SHADER = 4,
SHADER_TYPE_FORCE_32_BIT = 0xffffffffU
};
mi_static_assert( sizeof( Shader_type) == sizeof( Uint32));
class IScene_element :
public base::Interface_declare<0x8a2a4da9,0xe323,0x452c,0xb8,0xda,0x92,0x45,0x67,0x85,0xd7,0x78,
neuraylib::IAttribute_set>
{
public:
virtual Element_type
get_element_type() const = 0;
};
// end group mi_neuray_scene_element
} // namespace neuraylib
#ifdef MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
using neuraylib::DISPLACEMENT_SHADER;
using neuraylib::ELEMENT_TYPE_ATTRIBUTE_CONTAINER;
using neuraylib::ELEMENT_TYPE_BSDF_MEASUREMENT;
using neuraylib::ELEMENT_TYPE_CAMERA;
using neuraylib::ELEMENT_TYPE_COMPOUND_SHADER_CLASS;
using neuraylib::ELEMENT_TYPE_DECAL;
using neuraylib::ELEMENT_TYPE_FORCE_32_BIT;
using neuraylib::ELEMENT_TYPE_FREEFORM_SURFACE;
using neuraylib::ELEMENT_TYPE_GROUP;
using neuraylib::ELEMENT_TYPE_IMAGE;
using neuraylib::ELEMENT_TYPE_INSTANCE;
using neuraylib::ELEMENT_TYPE_IRRADIANCE_PROBES;
using neuraylib::ELEMENT_TYPE_LIGHT;
using neuraylib::ELEMENT_TYPE_LIGHTPROFILE;
using neuraylib::ELEMENT_TYPE_MATERIAL;
using neuraylib::ELEMENT_TYPE_MDL_COMPILED_MATERIAL;
using neuraylib::ELEMENT_TYPE_MDL_FUNCTION_CALL;
using neuraylib::ELEMENT_TYPE_MDL_FUNCTION_DEFINITION;
using neuraylib::ELEMENT_TYPE_MDL_MATERIAL_DEFINITION;
using neuraylib::ELEMENT_TYPE_MDL_MATERIAL_INSTANCE;
using neuraylib::ELEMENT_TYPE_MDL_MODULE;
using neuraylib::ELEMENT_TYPE_ON_DEMAND_MESH;
using neuraylib::ELEMENT_TYPE_OPTIONS;
using neuraylib::ELEMENT_TYPE_POLYGON_MESH;
using neuraylib::ELEMENT_TYPE_SHADER;
using neuraylib::ELEMENT_TYPE_SHADER_CLASS;
using neuraylib::ELEMENT_TYPE_SHADER_GRAPH;
using neuraylib::ELEMENT_TYPE_SHADER_GRAPH_CLASS;
using neuraylib::ELEMENT_TYPE_SUBDIVISION_SURFACE;
using neuraylib::ELEMENT_TYPE_TEXTURE;
using neuraylib::ELEMENT_TYPE_TRIANGLE_MESH;
using neuraylib::ENVIRONMENT_SHADER;
using neuraylib::Element_type;
using neuraylib::IAttribute_set;
using neuraylib::IScene_element;
using neuraylib::LIGHT_SHADER;
using neuraylib::SHADER_TYPE_FORCE_32_BIT;
using neuraylib::SURFACE_SHADER;
using neuraylib::Shader_type;
using neuraylib::VOLUME_SHADER;
#endif // MI_NEURAYLIB_DEPRECATED_NAMESPACE_MI_TRANSITION
} // namespace mi
#endif // MI_NEURAYLIB_ISCENE_ELEMENT_H
Namespaces
- namespace
- Common namespace for APIs of NVIDIA Advanced Rendering Center GmbH. More...
- namespace
- Namespace for the neuray API. More...
Classes
- class
- Common base interface for all scene elements. More...
Enumerations
- enum {ELEMENT_TYPE_INSTANCE = 0, ELEMENT_TYPE_GROUP = 1, ELEMENT_TYPE_OPTIONS = 2, ELEMENT_TYPE_CAMERA = 3, ELEMENT_TYPE_LIGHT = 4, ELEMENT_TYPE_LIGHTPROFILE = 5, ELEMENT_TYPE_MATERIAL = 6, ELEMENT_TYPE_TEXTURE = 7, ELEMENT_TYPE_IMAGE = 8, ELEMENT_TYPE_SHADER = 9, ELEMENT_TYPE_TRIANGLE_MESH = 10, ELEMENT_TYPE_ATTRIBUTE_CONTAINER = 16, ELEMENT_TYPE_POLYGON_MESH = 18, ELEMENT_TYPE_SHADER_CLASS = 19, ELEMENT_TYPE_SUBDIVISION_SURFACE = 23, ELEMENT_TYPE_FREEFORM_SURFACE = 24, ELEMENT_TYPE_SHADER_GRAPH_CLASS = 26, ELEMENT_TYPE_SHADER_GRAPH = 27, ELEMENT_TYPE_COMPOUND_SHADER_CLASS = 28, ELEMENT_TYPE_MDL_MODULE = 29, ELEMENT_TYPE_MDL_FUNCTION_DEFINITION = 30, ELEMENT_TYPE_MDL_FUNCTION_CALL = 31, ELEMENT_TYPE_MDL_MATERIAL_DEFINITION = 32, ELEMENT_TYPE_MDL_MATERIAL_INSTANCE = 33, ELEMENT_TYPE_MDL_COMPILED_MATERIAL = 34, ELEMENT_TYPE_BSDF_MEASUREMENT = 35, ELEMENT_TYPE_IRRADIANCE_PROBES = 36, ELEMENT_TYPE_DECAL = 37, ELEMENT_TYPE_ON_DEMAND_MESH = 38, ELEMENT_TYPE_FORCE_32_BIT = 0xffffffffU }
- Distinguishes scene elements. More...