mi::shader::Interface Struct Reference
Top level C++ mental ray interface extensions. More...
#include <mi_shader_if.h>
List of
all members.
|
Public Member Functions
|
virtual Options * |
getOptions (miTag
string_options) |
|
Access to string options.
|
virtual miTag |
createFramebuffer
() |
|
Framebuffer factory
function.
|
virtual miTag |
copyFramebuffer
(miTag old_buffer_tag) |
|
Creates a copy of the framebuffer
collection.
|
virtual LightList * |
createLightList
(miState *state, miTag *slist=0, int n=0) |
|
Deprecated. Used internally by LightIterator to
create a light list.
|
virtual void |
release () |
|
release (delete) the instance of the
interface
|
virtual LightList * |
createLightList
(miState *state, const miVector &axis, miScalar spread_cos,
miTag *slist=0, int n=0) |
|
Used internally by LightIterator to
create a light list.
|
Static Public Member Functions
|
Interface * |
get (int
version=mi_ray_interface_version) |
|
acquire an instance of the interface
|
Detailed Description
Top level C++ mental ray interface extensions.
This class is the top level access to the C++ shader interface
extensions. All other C++ extensions like mi::shader::Options and
mi::shader::LightIterator
are accessible through this class.
An instance of the Interface must be
acquired by calling mi_get_shader_interface() or the
static method Interface::get().
When the interface is no more needed, it must be released by
calling Interface::release():
The C++ interface extensions are implemented as virtual
functions in this interface struct in order to avoid linking and
symbol lookup problems. The interface is defined in the header file
mi_shader_if.h.
Member Function Documentation
virtual miTag
mi::shader::Interface::copyFramebuffer |
( |
miTag |
old_buffer_tag |
) |
[virtual] |
|
|
Creates a copy of the framebuffer collection.
- Parameters:
-
|
old_buffer_tag |
A database tag for the framebuffer to copy |
- Returns:
- a database tag for a copy of framebuffer collection.
|
virtual miTag
mi::shader::Interface::createFramebuffer |
( |
|
) |
[virtual] |
|
|
Framebuffer factory
function.
- Returns:
- a database tag for an empty framebuffer collection.
|
virtual LightList*
mi::shader::Interface::createLightList |
( |
miState * |
state, |
|
|
const miVector & |
axis, |
|
|
miScalar |
spread_cos, |
|
|
miTag * |
slist =
0 , |
|
|
int |
n = 0 |
|
) |
[virtual] |
|
|
Used internally by LightIterator to
create a light list.
This may be used to generate light iterators. This method is
needed by the LightIterator::LightIterator()
constructor. Usually there is no need to invoke this method
directly.
- Parameters:
-
|
state |
provided the method with the current rendering state. From the
state the current instance light list may be deduced. |
|
axis |
specifies the axis for the light cone. The value should be
normalized. |
|
spread_cos |
specifies the cosine of the angle to the light cone axis. |
|
slist |
is an optional list of light tags. If provided, this list will
be used instead of the default instance light list. |
|
n |
gives the number of light tags in the optional light list. |
- Returns:
- the method returns a pointer to a LightList.
|
virtual LightList*
mi::shader::Interface::createLightList |
( |
miState * |
state, |
|
|
miTag * |
slist =
0 , |
|
|
int |
n = 0 |
|
) |
[virtual] |
|
|
Deprecated. Used internally by LightIterator to
create a light list.
This may be used to generate light iterators. This method is
needed by the LightIterator::LightIterator()
constructor. Usually there is no need to invoke this method
directly.
- Parameters:
-
|
state |
provided the method with the current rendering state. From the
state the current instance light list may be deduced. |
|
slist |
is an optional list of light tags. If provided, this list will
be used instead of the default instance light list. |
|
n |
gives the number of light tags in the optional light list. |
- Returns:
- the method returns a pointer to a LightList.
|
Interface*
mi::shader::Interface::get |
( |
int |
version =
mi_ray_interface_version |
) |
[inline, static] |
|
|
acquire an instance of the interface
This static method is equivalent to the function mi_get_shader_interface(), see
there fore more information. This static function can be used as
follows:
- Parameters:
-
|
version |
is the version number of the requested interface class, usually
no version argument needs to be passed. |
- Returns:
- The returned pointer points to an object in mental ray which
contains the interface functions as virtual methods (hence it is
possible to call the interface routines from a dynamically loaded
library without resolving the routine in a symbol table). The
caller may not attempt to modify or delete the returned object but
should call the mi::shader::Interface::release()
method when done.
|
virtual Options*
mi::shader::Interface::getOptions |
( |
miTag |
string_options |
) |
[virtual] |
|
|
Access to string options.
This may later be extended to also access all other options from
the miOptions structure. This function can be used as follows:
Options *stringOptions = interface->getOptions(options->string_options);
- Parameters:
-
|
string_options |
is the tag of the string options, taken from the string_options
field of the miOptions structure to be read or modified. It must be
valid throughout the use of the Options instance. |
- Returns:
- A pointer to an interface class. The Options::release()
method should be called when done.
|
virtual void
mi::shader::Interface::release |
( |
|
) |
[virtual] |
|
The documentation for this struct was generated from the following
file:
Copyright © 1986-2007 by mental images GmbH