HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RAY_Procedural.h File Reference
#include "RAY_API.h"
#include <SYS/SYS_Types.h>
#include <GA/GA_Handle.h>
#include <GU/GU_DetailHandle.h>
#include <UT/UT_BoundingBox.h>
#include <UT/UT_String.h>
#include <UT/UT_StringHolder.h>
#include <UT/UT_SharedPtr.h>
#include <UT/UT_IntrusivePtr.h>
+ Include dependency graph for RAY_Procedural.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  RAY_ProceduralArg
 Parameter definition for arguments to RAY_Procedural. More...
 
class  RAY_ROProceduralGeo
 Reference counted geometry handle for procedurals. More...
 
class  RAY_ProceduralGeo
 
struct  RAY_PrimitiveMaterialAttributes
 
class  RAY_ProceduralChild
 Class representing a child object of the current procedural. More...
 
class  RAY_Procedural
 Procedural primitive for mantra (RAY) More...
 

Typedefs

typedef voidRAY_Handle
 Aliases for different handle types. More...
 
typedef voidRAY_ObjectHandle
 A handle for objects. Can also be used anywhere a RAY_Handle is expected. More...
 
typedef voidRAY_MaterialHandle
 A handle for materials. Can also be used anywhere a RAY_Handle is expected. More...
 
typedef voidRAY_LightHandle
 A handle for lights. Can also be used anywhere a RAY_Handle is expected. More...
 
using RAY_ProceduralChildPtr = UT_IntrusivePtr< RAY_ProceduralChild >
 

Functions

SYS_VISIBILITY_EXPORT
RAY_Procedural
allocProcedural (const char *name)
 Mantra procedural primitives. More...
 
SYS_VISIBILITY_EXPORT const
RAY_ProceduralArg
getProceduralArgs (const char *n)
 Dynamic load entry point to query arguments for a procedural. More...
 
SYS_VISIBILITY_EXPORT void registerProcedural (RAY_ProceduralFactory *factory)
 Modern interface to register procedurals. More...
 

Typedef Documentation

typedef void* RAY_Handle

Aliases for different handle types.

A generic handle that can be used by RAY_Procedural::import and RAY_Procedural::importAll.

Definition at line 81 of file RAY_Procedural.h.

A handle for lights. Can also be used anywhere a RAY_Handle is expected.

Definition at line 90 of file RAY_Procedural.h.

A handle for materials. Can also be used anywhere a RAY_Handle is expected.

Definition at line 87 of file RAY_Procedural.h.

A handle for objects. Can also be used anywhere a RAY_Handle is expected.

Definition at line 84 of file RAY_Procedural.h.

Function Documentation

SYS_VISIBILITY_EXPORT RAY_Procedural* allocProcedural ( const char *  name)

Mantra procedural primitives.

When a procedural is defined as a dynamic object, the allocProcedural() function is called to build a new instance of the procedural. The name passed in will be the name defined by the table entry. This can be used for: a) Error checking – you can verify that you're name is what you expect. However, this isn't mandatory. b) To have more than one procedural defined per C++ class. Using the name, you can create procedurals of different types.

The argument list for the procedural is specified by a list of arguments. The getProceduralArgs() method should return a pointer to an array of RAY_ProceduralArg's. The list should be terminated by an entry with default arguments (i.e. null pointers). For example: Arguments can then be queried using the argValue() methods in the proceduralDynamic load entry point to create an instance

SYS_VISIBILITY_EXPORT const RAY_ProceduralArg* getProceduralArgs ( const char *  n)

Dynamic load entry point to query arguments for a procedural.

SYS_VISIBILITY_EXPORT void registerProcedural ( RAY_ProceduralFactory factory)