NVIDIA Iray API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
mi::ITexture_surface Class Referenceabstract

A texture surface associated with freeform surfaces. More...

Inheritance diagram for mi::ITexture_surface:
Inheritance graph
[legend]

Public Member Functions

virtual Sint32  set_texture_coordinates_size (Parameter_space_dimension dim, Uint32 count)=0
  Sets the size of the texture coordinates. More...
 
virtual Uint32  get_texture_coordinates_size (Parameter_space_dimension dim) const =0
  Returns the size of the texture coordinates. More...
 
virtual Sint32  set_texture_coordinate_length (Uint32 length)=0
  Sets the length of the texture coordinates. More...
 
virtual Uint32  get_texture_coordinate_length () const =0
  Returns the length of the texture coordinates. More...
 
virtual Sint32  set_texture_coordinate (Uint32 index_u, Uint32 index_v, const Float32 *f, Uint32 n)=0
  Sets a texture coordinate. More...
 
virtual Sint32  get_texture_coordinate (Uint32 index_u, Uint32 index_v, Float32 *f, Uint32 n) const =0
  Returns a texture coordinate. More...
 
virtual Sint32  set_texture_coordinate (Uint32 index_u, Uint32 index_v, const Float64 *d, Uint32 n)=0
  Sets a texture coordinate. More...
 
virtual Sint32  get_texture_coordinate (Uint32 index_u, Uint32 index_v, Float64 *d, Uint32 n) const =0
  Returns a texture coordinate. More...
 

Additional Inherited Members

- Public Types inherited from mi::base::Interface_declare< 0x5d39fdcb, 0x9a3d, 0x42ed, 0xb3, 0x90, 0xc3, 0x20, 0x3d, 0x31, 0xa9, 0x9d >
typedef Interface_declare< id1,
id2, id3, id4, id5, id6, id7,
id8, id9, id10, id11,
IInterface
Self
  Own type. More...
 
typedef Uuid_t< id1, id2, id3,
id4, id5, id6, id7, id8, id9,
id10, id11 > 
IID
  Declares the interface ID (IID) of this interface. More...
 
- Static Public Member Functions inherited from mi::base::Interface_declare< 0x5d39fdcb, 0x9a3d, 0x42ed, 0xb3, 0x90, 0xc3, 0x20, 0x3d, 0x31, 0xa9, 0x9d >
static bool  compare_iid (const Uuid &iid)
  Compares the interface ID iid against the interface ID of this interface and of its ancestors. More...
 

Detailed Description

A texture surface associated with freeform surfaces.

Texture surfaces for freeform surfaces are similar to texture spaces for triangle meshes, polygon meshes, and subdivision surfaces (see the mesh attribute mi::ATTR_TEXTURE). In contrast to these meshes one cannot attach the texture coordinates to the control points of the freeform surface since the surface in general does not pass through the control points.

Instead, an equidistant grid of texture coordinates is mapped onto the parameter space of the surface. Whenever the tessellator creates a new vertex, its UV parameters are used to compute a bilinear interpolation of the surrounding texture coordinates. The result defines the texture coordinate associated with the new vertex.

See Also
mi::ISurface

Member Function Documentation

virtual Sint32 mi::ITexture_surface::get_texture_coordinate ( Uint32  index_u,
Uint32  index_v,
Float32 f,
Uint32  n 
) const
pure virtual

Returns a texture coordinate.

Parameters
index_u The index of the texture coordinate in u-direction.
index_v The index of the texture coordinate in v-direction.
f The current value of the texture coordinate.
n The length of the array f.
Returns
  • 0: Success.
  • -1: index_u or index_v is out of bounds.
  • -2: The parameter n does not match the length of the texture coordinates.
virtual Sint32 mi::ITexture_surface::get_texture_coordinate ( Uint32  index_u,
Uint32  index_v,
Float64 d,
Uint32  n 
) const
pure virtual

Returns a texture coordinate.

Parameters
index_u The index of the texture coordinate in u-direction.
index_v The index of the texture coordinate in v-direction.
d The current value of the texture coordinate.
n The length of the array d.
Returns
  • 0: Success.
  • -1: index_u or index_v is out of bounds.
  • -2: The parameter n does not match the length of the texture coordinates.
virtual Uint32 mi::ITexture_surface::get_texture_coordinate_length ( ) const
pure virtual

Returns the length of the texture coordinates.

Returns
The current length.
virtual Uint32 mi::ITexture_surface::get_texture_coordinates_size ( Parameter_space_dimension  dim) const
pure virtual

Returns the size of the texture coordinates.

Parameters
dim The affected dimension.
Returns
The current size in that direction (or 0 in case of an invalid dimension).
virtual Sint32 mi::ITexture_surface::set_texture_coordinate ( Uint32  index_u,
Uint32  index_v,
const Float32 f,
Uint32  n 
)
pure virtual

Sets a texture coordinate.

Parameters
index_u The index of the texture coordinate in u-direction.
index_v The index of the texture coordinate in v-direction.
f The new value of the texture coordinate.
n The length of the array f.
Returns
  • 0: Success.
  • -1: index_u or index_v is out of bounds.
  • -2: The parameter n does not match the length of the texture coordinates.
virtual Sint32 mi::ITexture_surface::set_texture_coordinate ( Uint32  index_u,
Uint32  index_v,
const Float64 d,
Uint32  n 
)
pure virtual

Sets a texture coordinate.

Parameters
index_u The index of the texture coordinate in u-direction.
index_v The index of the texture coordinate in v-direction.
d The new value of the texture coordinate.
n The length of the array d.
Returns
  • 0: Success.
  • -1: index_u or index_v is out of bounds.
  • -2: The parameter n does not match the length of the texture coordinates.
virtual Sint32 mi::ITexture_surface::set_texture_coordinate_length ( Uint32  length)
pure virtual

Sets the length of the texture coordinates.

Parameters
length The new length.
Returns
  • 0: Success.
  • -1: Invalid length (must be at least 1).
virtual Sint32 mi::ITexture_surface::set_texture_coordinates_size ( Parameter_space_dimension  dim,
Uint32  count 
)
pure virtual

Sets the size of the texture coordinates.

Parameters
dim The affected dimension.
count The new size in that direction (must be at least 2).
Returns
  • 0: Success.
  • -1: Invalid dimension.
  • -2: Invalid count.