NVIDIA Iray API Home  Up
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Leaf nodes

Leaf nodes of the scene graph, for example, geometry, lights, or cameras. More...

Classes

class   mi::neuraylib::IAttribute_vector
  Interface representing an attribute vector for triangle meshes, polygon meshes, and subdivision surfaces. More...
 
class   mi::neuraylib::ICamera
  The camera defines the viewpoint from which the scene is rendered. More...
 
class   mi::neuraylib::IFreeform_surface
  Interface representing a freeform surface. More...
 
class   mi::neuraylib::ISurface
  A surface of a freeform surface. More...
 
class   mi::neuraylib::ICurve
  A curve used by freeform surfaces. More...
 
class   mi::neuraylib::ICurve_segment
  A curve segment used by freeform surfaces. More...
 
class   mi::neuraylib::ITexture_surface
  A texture surface associated with freeform surfaces. More...
 
class   mi::neuraylib::ILight
  Point, spot, directional and area lighting. More...
 
class   mi::neuraylib::IOn_demand_mesh
  Interface representing an on-demand mesh. More...
 
class   mi::neuraylib::IOn_demand_mesh_callback
  Abstract interface for callbacks used by on-demand meshes. More...
 
class   mi::neuraylib::IOptions
  A scene element that stores scene-specific settings. More...
 
class   mi::neuraylib::IPolygon_connectivity
  A connectivity class for polygon mesh geometry and their attributes. More...
 
class   mi::neuraylib::IPolygon_mesh
  Interface representing a polygon mesh. More...
 
class   mi::neuraylib::ISimple_mesh
  Interface representing the geometry of on-demand meshes. More...
 
class   mi::neuraylib::ISubdivision_surface
  Interface representing a subdivision surface. More...
 
struct   mi::neuraylib::Triangle_point_indices_struct
  A triangle defined by three point indices, starting at index 0. More...
 
class   mi::neuraylib::Triangle_point_indices
  A triangle defined by three point indices, starting at index 0. More...
 
class   mi::neuraylib::ITriangle_connectivity
  A connectivity class for triangle mesh geometry and their attributes. More...
 
class   mi::neuraylib::ITriangle_mesh
  Interface representing a triangle mesh. More...
 

Typedefs

typedef Identifier_struct
< HND_TRIANGLE > 
mi::neuraylib::Triangle_handle_struct
  Handle for triangles More...
 
typedef Identifier_struct
< HND_POLY > 
mi::neuraylib::Polygon_handle_struct
  Handle for polygons More...
 
typedef Identifier_struct
< HND_SURFACE > 
mi::neuraylib::Surface_handle_struct
  Handle for surfaces More...
 
typedef Identifier_struct
< HND_CURVE > 
mi::neuraylib::Curve_handle_struct
  Handle for curves More...
 
typedef Identifier_struct
< HND_CURVE_SEGMENT > 
mi::neuraylib::Curve_segment_handle_struct
  Handle for curve segments More...
 
typedef Identifier_struct
< HND_TEXTURE_SURFACE > 
mi::neuraylib::Texture_surface_handle_struct
  Handle for texture surfaces More...
 
typedef Identifier< HND_TRIANGLE >  mi::neuraylib::Triangle_handle
  Handle for triangles More...
 
typedef Identifier< HND_POLY >  mi::neuraylib::Polygon_handle
  Handle for polygons More...
 
typedef Identifier< HND_SURFACE >  mi::neuraylib::Surface_handle
  Handle for surfaces More...
 
typedef Identifier< HND_CURVE >  mi::neuraylib::Curve_handle
  Handle for curve More...
 
typedef Identifier
< HND_CURVE_SEGMENT > 
mi::neuraylib::Curve_segment_handle
  Handle for curve segments More...
 
typedef Identifier
< HND_TEXTURE_SURFACE > 
mi::neuraylib::Texture_surface_handle
  Handle for texture surfaces More...
 

Enumerations

enum   mi::neuraylib::Mesh_attribute_name { ,
  mi::neuraylib::ATTR_NORMAL = 1,
  mi::neuraylib::ATTR_MOTION = 2,
  mi::neuraylib::ATTR_DERIVATIVES = 3,
  mi::neuraylib::ATTR_MATERIAL_INDEX = 4,
  mi::neuraylib::ATTR_TEXTURE = 6,
  mi::neuraylib::ATTR_TEXTURE_NUM = 256,
  mi::neuraylib::ATTR_MAX = ATTR_TEXTURE + ATTR_TEXTURE_NUM
}
  Symbolic constants for mesh attributes. More...
 
enum   mi::neuraylib::Connectivity_map_type { mi::neuraylib::CONNECTIVITY_MAP_GENERIC }
  Symbolic constants for different connectivity types. More...
 
enum   mi::neuraylib::Basis_type {
  mi::neuraylib::BASIS_BEZIER = 0,
  mi::neuraylib::BASIS_BSPLINE = 1
}
  Different basis types that are supported by freeform surfaces. More...
 
enum   mi::neuraylib::Parameter_space_dimension {
  mi::neuraylib::DIMENSION_U = 0,
  mi::neuraylib::DIMENSION_V = 1
}
  Distinguishes the two dimensions of the parameter space of freeform surfaces. More...
 
enum   mi::neuraylib::Curve_type {
  mi::neuraylib::TRIM_CURVE = 0,
  mi::neuraylib::HOLE_CURVE = 1
}
  Different curve types that are supported by freeform surfaces. More...
 
enum   mi::neuraylib::Light_type {
  mi::neuraylib::LIGHT_POINT = 0,
  mi::neuraylib::LIGHT_INFINITE = 2
}
  Supported light types. More...
 
enum   mi::neuraylib::Light_area_shape {
  mi::neuraylib::AREA_NONE = 0,
  mi::neuraylib::AREA_RECTANGLE = 1,
  mi::neuraylib::AREA_DISC = 2,
  mi::neuraylib::AREA_SPHERE = 3,
  mi::neuraylib::AREA_CYLINDER = 4
}
  Supported area light shapes. More...
 
enum   mi::neuraylib::Vertex_feature {
  mi::neuraylib::SMOOTH_VERTEX = 0,
  mi::neuraylib::CORNER_VERTEX = 1
}
  Vertex features. More...
 

Functions

  mi::neuraylib::Identifier< name, Int_type >::Identifier ()
  Default constructor. Initializes handle with invalid value. More...
 
  mi::neuraylib::Identifier< name, Int_type >::Identifier (Int_type h)
  Constructor. Initializes handle with given integer value. More...
 
  mi::neuraylib::Identifier< name, Int_type >::Identifier (Identifier_struct< name, Int_type > h)
  Constructor from underlying storage type. More...
 
  mi::neuraylib::Identifier< name, Int_type >::operator Int_type () const
  Conversion operator to underlying integer type. More...
 
Int_type  mi::neuraylib::Identifier< name, Int_type >::operator* () const
  Dereferences the handle. Returns its integer value. More...
 
bool  mi::neuraylib::Identifier< name, Int_type >::is_valid () const
  Returns whether the handle is valid. More...
 
Identifier &  mi::neuraylib::Identifier< name, Int_type >::operator++ ()
  Pre-increment operator. More...
 
Identifier  mi::neuraylib::Identifier< name, Int_type >::operator++ (int)
  Post-increment operator. More...
 
Identifier &  mi::neuraylib::Identifier< name, Int_type >::operator-- ()
  Pre-decrement operator. More...
 
Identifier  mi::neuraylib::Identifier< name, Int_type >::operator-- (int)
  Post-decrement operator. More...
 
bool  mi::neuraylib::Identifier< name, Int_type >::operator< (const Identifier &other) const
  Less-than operator. More...
 
bool  mi::neuraylib::Identifier< name, Int_type >::operator<= (const Identifier &other) const
  Less-than-or-equal-to operator. More...
 
bool  mi::neuraylib::Identifier< name, Int_type >::operator> (const Identifier &other) const
  Greater-than operator. More...
 
bool  mi::neuraylib::Identifier< name, Int_type >::operator>= (const Identifier &other) const
  Greater-than-or-equal-to operator. More...
 

Variables

Int_type  mi::neuraylib::Identifier_struct< name, Int_type >::m_id
  The handle ID. More...
 

Detailed Description

Leaf nodes of the scene graph, for example, geometry, lights, or cameras.

Typedef Documentation

typedef Identifier<HND_CURVE> mi::neuraylib::Curve_handle

Handle for curve

See Also
the underlying POD type mi::neuraylib::Curve_handle_struct
typedef Identifier_struct<HND_CURVE> mi::neuraylib::Curve_handle_struct

Handle for curves

This POD type is the underlying storage class for mi::neuraylib::Curve_handle.

typedef Identifier<HND_CURVE_SEGMENT> mi::neuraylib::Curve_segment_handle

Handle for curve segments

See Also
the underlying POD type mi::neuraylib::Curve_segment_handle_struct
typedef Identifier_struct<HND_CURVE_SEGMENT> mi::neuraylib::Curve_segment_handle_struct

Handle for curve segments

This POD type is the underlying storage class for mi::neuraylib::Curve_segment_handle.

typedef Identifier<HND_POLY> mi::neuraylib::Polygon_handle

Handle for polygons

See Also
the underlying POD type mi::neuraylib::Polygon_handle_struct
typedef Identifier_struct<HND_POLY> mi::neuraylib::Polygon_handle_struct

Handle for polygons

This POD type is the underlying storage class for mi::neuraylib::Polygon_handle.

typedef Identifier<HND_SURFACE> mi::neuraylib::Surface_handle

Handle for surfaces

See Also
the underlying POD type mi::neuraylib::Surface_handle_struct
typedef Identifier_struct<HND_SURFACE> mi::neuraylib::Surface_handle_struct

Handle for surfaces

This POD type is the underlying storage class for mi::neuraylib::Surface_handle.

typedef Identifier<HND_TEXTURE_SURFACE> mi::neuraylib::Texture_surface_handle

Handle for texture surfaces

See Also
the underlying POD type mi::neuraylib::Texture_surface_handle_struct
typedef Identifier_struct<HND_TEXTURE_SURFACE> mi::neuraylib::Texture_surface_handle_struct

Handle for texture surfaces

This POD type is the underlying storage class for mi::neuraylib::Texture_surface_handle.

typedef Identifier<HND_TRIANGLE> mi::neuraylib::Triangle_handle

Handle for triangles

See Also
the underlying POD type mi::neuraylib::Triangle_handle_struct
typedef Identifier_struct<HND_TRIANGLE> mi::neuraylib::Triangle_handle_struct

Handle for triangles

This POD type is the underlying storage class for mi::neuraylib::Triangle_handle.

Enumeration Type Documentation

Different basis types that are supported by freeform surfaces.

Enumerator
BASIS_BEZIER 

Represents a Bezier basis.

BASIS_BSPLINE 

Represents a B-spline basis.

Symbolic constants for different connectivity types.

Connectivities may come in different types. Currently, there is only one type.

See Also
mi::neuraylib::ITriangle_mesh::create_connectivity()
mi::neuraylib::IPolygon_mesh::create_connectivity()
Enumerator
CONNECTIVITY_MAP_GENERIC 

A generic connectivity allows to map the vertices of every polygon to arbitrary indices.

These indices either represents points (for the mesh connectivity) or elements of the attribute vector (for custom connectivities).

Different curve types that are supported by freeform surfaces.

Enumerator
TRIM_CURVE 

A trim curve cuts away all parts of the surface outside the curve.

HOLE_CURVE 

A hole curve cuts away all parts of the surface inside the curve.

Supported area light shapes.

See Also
mi::neuraylib::ILight::get_area_shape(), #mi::neuraylib::ILight::set_area_shape()
Enumerator
AREA_NONE 

Not an area light.

AREA_RECTANGLE 

Rectangular shape.

AREA_DISC 

Disc shape.

AREA_SPHERE 

Sphere shape.

AREA_CYLINDER 

Cylinder shape.

Supported light types.

See Also
mi::neuraylib::ILight::get_type(), mi::neuraylib::ILight::set_type()
Enumerator
LIGHT_POINT 

Point light: emits rays in all directions from the origin.

LIGHT_INFINITE 

Directional light: no origin, all light rays parallel.

Symbolic constants for mesh attributes.

Mesh attributes are an extension of the regular attributes (see mi::neuraylib::IAttribute_set). They are only supported for scene elements that represent geometry, namely triangle meshes, polygon meshes, subdivision surfaces, and freeform surfaces. In contrast to regular attributes which exist only once per object, mesh attributes are always a vector of values with one vector element per primitive, per point, or per vertex. Note that a vector element in itself can be an array.

Mesh attributes are identified by the symbolic names of this enum. Note that there are mi::neuraylib::ATTR_TEXTURE_NUM mesh attributes for texture spaces, but not all values exist as explicit enum values. In order to use these textures spaces, you need to cast the corresponding integer in the range mi::neuraylib::ATTR_TEXTURE to mi::neuraylib::ATTR_TEXTURE + mi::neuraylib::ATTR_TEXTURE_NUM - 1 to mi::neuraylib::Mesh_attribute_name.

One mesh attribute, mi::neuraylib::ATTR_MATERIAL_INDEX, stores one vector element per primitive. That is, there is one material index for each triangle, quad, or polygon of the mesh. This attribute can be created, accessed, and edited directly from the corresponding mesh interfaces.

The remaining attributes store one vector element either per point or per vertex of the mesh. These attributes cannot be created, accessed, and edited directly from the corresponding mesh interfaces, only from a connectivity (either from the mesh connectivity, or from a custom connectivity). The connectivity maps each vertex of the mesh to an index which is used to look up the corresponding vector element. If the mesh connectivity is used, the attribute vector stores one element per point (since the mesh connectivity already defines the mapping of vertices to points). For a custom connectivity, the attribute vector allows to store one element per vertex (possibly sharing values between vertices as defined by the connectivity).

See Also
mi::neuraylib::ITriangle_mesh::create_attribute_vector()
mi::neuraylib::IPolygon_mesh::create_attribute_vector()
mi::neuraylib::ITriangle_connectivity::create_attribute_vector()
mi::neuraylib::IPolygon_connectivity::create_attribute_vector()
mi::neuraylib::IAttribute_vector
Enumerator
ATTR_NORMAL 

Surface normals of type mi::Float32_3 per point or per vertex.

ATTR_MOTION 

Motion vectors of type mi::Float32_3[] per point or per vertex.

The array size is chosen when the attribute vector is created.

ATTR_DERIVATIVES 

Surface derivatives of type mi::Float32_3[2] per point or per vertex.

ATTR_MATERIAL_INDEX 

Material index of type mi::Uint32 per primitive.

Note
For best performance it is recommended to sort the primitives by their material index such that when looping over all primitives the material index changes as infrequently as possible.
ATTR_TEXTURE 

Texture coordinates of type mi::Float32[] per point or per vertex (also called texture space).

The array size is chosen when the attribute vector is created.

Note
Texture spaces need to use consecutive mesh attribute IDs starting with mi::neuraylib::ATTR_TEXTURE.
ATTR_TEXTURE_NUM 

Total number of supported texture spaces.

ATTR_MAX 

Maximum legal attribute number + 1.

Distinguishes the two dimensions of the parameter space of freeform surfaces.

Enumerator
DIMENSION_U 

Represents the U-dimension of the parameter space.

DIMENSION_V 

Represents the V-dimension of the parameter space.

Vertex features.

Currently, two vertex features are supported, smooth vertices (the default) and corners.

See Also
mi::neuraylib::ISubdivision_surface::set_vertex_feature()
mi::neuraylib::ISubdivision_surface::get_vertex_feature()
Enumerator
SMOOTH_VERTEX 

the vertex is smooth (the default)

CORNER_VERTEX 

the vertex is a corner

Function Documentation

template<Identifier_name name, typename Int_type = Uint32>
mi::neuraylib::Identifier< name, Int_type >::Identifier ( )
inline

Default constructor. Initializes handle with invalid value.

template<Identifier_name name, typename Int_type = Uint32>
mi::neuraylib::Identifier< name, Int_type >::Identifier ( Int_type  h)
inlineexplicit

Constructor. Initializes handle with given integer value.

template<Identifier_name name, typename Int_type = Uint32>
mi::neuraylib::Identifier< name, Int_type >::Identifier ( Identifier_struct< name, Int_type >  h)
inline

Constructor from underlying storage type.

template<Identifier_name name, typename Int_type = Uint32>
bool mi::neuraylib::Identifier< name, Int_type >::is_valid ( ) const
inline

Returns whether the handle is valid.

template<Identifier_name name, typename Int_type = Uint32>
mi::neuraylib::Identifier< name, Int_type >::operator Int_type ( ) const
inline

Conversion operator to underlying integer type.

template<Identifier_name name, typename Int_type = Uint32>
Int_type mi::neuraylib::Identifier< name, Int_type >::operator* ( ) const
inline

Dereferences the handle. Returns its integer value.

template<Identifier_name name, typename Int_type = Uint32>
Identifier& mi::neuraylib::Identifier< name, Int_type >::operator++ ( )
inline

Pre-increment operator.

template<Identifier_name name, typename Int_type = Uint32>
Identifier mi::neuraylib::Identifier< name, Int_type >::operator++ ( int  )
inline

Post-increment operator.

template<Identifier_name name, typename Int_type = Uint32>
Identifier& mi::neuraylib::Identifier< name, Int_type >::operator-- ( )
inline

Pre-decrement operator.

template<Identifier_name name, typename Int_type = Uint32>
Identifier mi::neuraylib::Identifier< name, Int_type >::operator-- ( int  )
inline

Post-decrement operator.

template<Identifier_name name, typename Int_type = Uint32>
bool mi::neuraylib::Identifier< name, Int_type >::operator< ( const Identifier< name, Int_type > &  other) const
inline

Less-than operator.

template<Identifier_name name, typename Int_type = Uint32>
bool mi::neuraylib::Identifier< name, Int_type >::operator<= ( const Identifier< name, Int_type > &  other) const
inline

Less-than-or-equal-to operator.

template<Identifier_name name, typename Int_type = Uint32>
bool mi::neuraylib::Identifier< name, Int_type >::operator> ( const Identifier< name, Int_type > &  other) const
inline

Greater-than operator.

template<Identifier_name name, typename Int_type = Uint32>
bool mi::neuraylib::Identifier< name, Int_type >::operator>= ( const Identifier< name, Int_type > &  other) const
inline

Greater-than-or-equal-to operator.

Variable Documentation

template<Identifier_name name, typename Int_type = Uint32>
Int_type mi::neuraylib::Identifier_struct< name, Int_type >::m_id

The handle ID.