r3matbas
real/code/r3matbas.h
r3code
Base class of all materials
r3Ttag
R3CLID_TTAG
r3Materialbase
R3CLID_MATERIALBASE - 792
RENDER, BEGINRENDER, ENDRENDER, FINDOBJBYNAME, FINDCHILDBYNAME, REGISTERMAPPINGT, SETPREVIEWIMAGENO, ENUMCHANNELS, RENAMECHANNELREF,
PreviewImage, AlsoChangesObj, ShowPreview, FindMatByNameObj, FindMatByNameMeth, PreviewProject, Mappable, Keyframer, PreferredMapping, MapFixedSize, MapFixedProportio, NotUsed, PreferredPriority,
int R3RegisterMaterialBaseClass(R3APP *app);
R3MATBASEM_RENDER
RENDER
R3MATBASEM_RENDER
R3TAG*, R3MATBASEA_Renderer (render engine object) included in the tag list. * R3MATBASEA_ActiveNames optionally for specifying which materials to render
obj.RENDER(p3);
Creates rendering material object. This base class does it by sending * R3MATBASEM_BEGINRENDER and R3MATBASEM_ENDRENDER methods to itself.
R3MATBASEM_BEGINRENDER
BEGINRENDER
R3MATBASEM_BEGINRENDER
void*, TRUE if successful
R3INT, class id of the rendering object to be created. Define it if 0 (not yet defined by super class).
R3TAG*, tag list for creating the rendering object.
rc = obj.BEGINRENDER(0, p2, p3);
Begins rendering of the material. The object adds the rendering attributes it defines to * a tag list and inherits the method to the base class that creates the rendering object by sending * R3FRM_BEGINLIBOBJECT method to the render engine.
R3MATBASEM_ENDRENDER
ENDRENDER
R3MATBASEM_ENDRENDER
void*, TRUE if successful
rc = obj.ENDRENDER();
Ends rendering description of the material. A material object should inherit this method to this * base class which finishes creation by sending R3FRM_ENDLIBOBJECT to the render engine.
R3MATBASEM_FINDOBJBYNAME
FINDOBJBYNAME
R3MATBASEM_FINDOBJBYNAME
R3OBJ*, material, if found
char*, name of the material to search for
rc = obj.FINDOBJBYNAME(p3);
find other materials by name.
R3MATBASEM_FINDCHILDBYNAME
FINDCHILDBYNAME
R3MATBASEM_FINDCHILDBYNAME
R3INT, TRUE, if the name of a child (recursively) matches the given name -1, if a recursion loop is encountered before the named child is found FALSE otherwise
char*, name of the child material to search for
rc = obj.FINDCHILDBYNAME(p3);
search child materials (name references) for a match
R3MATBASECM_REGISTERMAPPINGT
REGISTERMAPPINGT
R3MATBASECM_REGISTERMAPPINGT
R3INT, TRUE if succeeded
R3INT, identifier for the mapping (clid)
char*, statically allocated symbolic name (pointer value is stored, don't use temporary strings)
rc = obj.REGISTERMAPPINGT(p1, p3);
Class method, for registering R3MATBASEA_PreferredMapping alternatives
R3MATBASEM_SETPREVIEWIMAGENO
SETPREVIEWIMAGENO
R3MATBASEM_SETPREVIEWIMAGENO
R3OBJ*, new image
obj.SETPREVIEWIMAGENO(p3);
Set preview image for the material without generating update events.
R3MATBASEM_ENUMCHANNELS
ENUMCHANNELS
R3MATBASEM_ENUMCHANNELS
R3OBJ*, callback object
R3INT, callback method
void*, callback context
obj.ENUMCHANNELS(p1, p2, p3);
enumerate all (static and dynamic) channel requirements R3DoA3(cbobj, cbmth, channelname, typeid (0 if unknown), context);
R3MATBASEM_RENAMECHANNELREF
RENAMECHANNELREF
R3MATBASEM_RENAMECHANNELREF
char*, old name
char*, new name
obj.RENAMECHANNELREF(p1, p3);
rename possible references to a given channel
PreviewImage
PreviewImage
R3MATBASEA_PreviewImage
Object
R3OBJ*
preview image
jsobj.SetPreviewImage(value);
value = jsobj.GetPreviewImage();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3MATBASEA_PreviewImage, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3MATBASEA_PreviewImage, &value, R3TAG_END);
AlsoChangesObj
AlsoChangesObj
R3MATBASEA_AlsoChangesObj
Object
R3OBJ*
for internal use only
jsobj.SetAlsoChangesObj(value);
value = jsobj.GetAlsoChangesObj();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3MATBASEA_AlsoChangesObj, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3MATBASEA_AlsoChangesObj, &value, R3TAG_END);
ShowPreview
ShowPreview
R3MATBASEA_ShowPreview
Boolean
R3BOOL
true if this material can be previewed
value = jsobj.GetShowPreview();
R3BOOL value;
R3GetAttrs(r3obj, R3MATBASEA_ShowPreview, &value, R3TAG_END);
FindMatByNameObj
FindMatByNameObj
R3MATBASEA_FindMatByNameObj
Object
R3OBJ*
callback, private
jsobj.SetFindMatByNameObj(value);
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3MATBASEA_FindMatByNameObj, value, R3TAG_END);
FindMatByNameMeth
FindMatByNameMeth
R3MATBASEA_FindMatByNameMeth
Integer
R3INT
callback, private
jsobj.SetFindMatByNameMeth(value);
R3INT value = ...;
R3SetAttrs(r3obj, R3MATBASEA_FindMatByNameMethod, value, R3TAG_END);
PreviewProject
PreviewProject
R3MATBASEA_PreviewProject
String
char*
name of project to use as preview image
jsobj.SetPreviewProject(value);
value = jsobj.GetPreviewProject();
char* value = ...;
R3SetAttrs(r3obj, R3MATBASEA_PreviewProject, value, R3TAG_END);
char* value;
R3GetAttrs(r3obj, R3MATBASEA_PreviewProject, &value, R3TAG_END);
Mappable
Mappable
R3MATBASEA_Mappable
Boolean
R3BOOL
TRUE if the material can be mapped
value = jsobj.GetMappable();
R3BOOL value;
R3GetAttrs(r3obj, R3MATBASEA_Mappable, &value, R3TAG_END);
Keyframer
Keyframer
R3MATBASEA_Keyframer
Object
R3OBJ*
keyframe object, if animated material
jsobj.SetKeyframer(value);
value = jsobj.GetKeyframer();
R3OBJ* value = ...;
R3SetAttrs(r3obj, R3MATBASEA_Keyframer, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3MATBASEA_Keyframer, &value, R3TAG_END);
PreferredMapping
PreferredMapping
R3MATBASEA_PreferredMapping
Integer
R3INT
class id (or NULL) of mapping object that best suits this material
jsobj.SetPreferredMapping(value);
value = jsobj.GetPreferredMapping();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATBASEA_PreferredMapping, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATBASEA_PreferredMapping, &value, R3TAG_END);
MapFixedSize
MapFixedSize
R3MATBASEA_MapFixedSize
Boolean
R3BOOL
if true the mapping will not be scaled to target object size
jsobj.SetMapFixedSize(value);
value = jsobj.GetMapFixedSize();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATBASEA_MapFixedSize, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATBASEA_MapFixedSize, &value, R3TAG_END);
MapFixedProportio
MapFixedProportio
R3MATBASEA_MapFixedProportio
Boolean
R3BOOL
if true the mapping will not be stretched to target object proportions
jsobj.SetMapFixedProportio(value);
value = jsobj.GetMapFixedProportio();
R3BOOL value = ...;
R3SetAttrs(r3obj, R3MATBASEA_MapFixedProportions, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3MATBASEA_MapFixedProportions, &value, R3TAG_END);
NotUsed
NotUsed
R3MATBASEA_NotUsed
Integer
R3INT
R3BOOL. Activates/disables rendering. Used if R3MATBASEA_ActiveNames is not given
jsobj.SetNotUsed(value);
value = jsobj.GetNotUsed();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATBASEA_NotUsed, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATBASEA_NotUsed, &value, R3TAG_END);
PreferredPriority
PreferredPriority
R3MATBASEA_PreferredPriority
Integer
R3INT
recommended evaluation priority
jsobj.SetPreferredPriority(value);
value = jsobj.GetPreferredPriority();
R3INT value = ...;
R3SetAttrs(r3obj, R3MATBASEA_PreferredPriority, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3MATBASEA_PreferredPriority, &value, R3TAG_END);
r3appobj *