r3frsurf
real/raytr/r3frsurf.h
r3raytr
base surface class - a geometric object rendered by ray tracer or post processor etc.
r3Frhob
R3CLID_FRHOB
r3Frsurface
R3CLID_FRSURFACE - 438
R3FRSURFM_ISRENDERCLASS
ISRENDERCLASS
R3FRSURFM_ISRENDERCLASS
obj.ISRENDERCLASS();
R3FRSURFM_CHANNELQUERY
CHANNELQUERY
R3FRSURFM_CHANNELQUERY
obj.CHANNELQUERY();
R3FRSURFM_ENUMMAPPEDOBJECTS
ENUMMAPPEDOBJECTS
R3FRSURFM_ENUMMAPPEDOBJECTS
obj.ENUMMAPPEDOBJECTS();
ISRENDERCLASS method asks from a frsurface object, which rendering system class(es) render(s) the object. For example, the base class of ray traceable surfaces defines one single rendering system, ray tracer, as the only alternative. In this case, R3FRSURFM_ISRENDERCLASS returns FALSE if msg is not the clid of the ray tracer (defined as a class attribute of the ray traceable surface class). On the other hand, a simpler object like a point particle can be renderer by several rendering systems and therefore every instance of the particle may contain a list of rendering systems which will render it. The contents of the list is defined for example by scanning through the effects which are mapped to the particle. If there is e.g. a post effect mapped to the particle, post processing system is registered to the rendering system list using a suitable attribute etc. The R3FRSURFCA_RenderClass attribute below is defined here for convenience; most frsurface derived classes accept a default rendering system class.
/PointRenderAttrs
PointRenderAttrs
R3FRSURFA_PointRenderAttrs
String
void*
Same as above, but data is given directly in rendering suitable form.
jsobj.SetPointRenderAttrs(value);
value = jsobj.GetPointRenderAttrs();
void* value = ...;
R3SetAttrs(r3obj, R3FRSURFA_PointRenderAttrs, value, R3TAG_END);
void* value;
R3GetAttrs(r3obj, R3FRSURFA_PointRenderAttrs, &value, R3TAG_END);
MinU
MinU
R3FRSURFA_MinU
Number
R3FLOAT
Min U value in UV trim space
value = jsobj.GetMinU();
R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MinU, &value, R3TAG_END);
MaxU
MaxU
R3FRSURFA_MaxU
Number
R3FLOAT
Max U value in UV trim space
value = jsobj.GetMaxU();
R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MaxU, &value, R3TAG_END);
MinV
MinV
R3FRSURFA_MinV
Number
R3FLOAT
Min V value in UV trim space
value = jsobj.GetMinV();
R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MinV, &value, R3TAG_END);
MaxV
MaxV
R3FRSURFA_MaxV
Number
R3FLOAT
Max V value in UV trim space
value = jsobj.GetMaxV();
R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MaxV, &value, R3TAG_END);
r3refnode /
This structure defines pointwise channel information from outside the rendering engine
R3INT, number of defined point attribute channels
May be null if clids array define the channels uniquely (no dynamic channels included)
For points
NULL or channelcnt UBYTES. If ubyte[0]&4, 3. subchannel of 1. channel modulo wrapped
sub channel min. wrap boundaries or NULL in whic case default 0 is used
sub channel min. wrap boundaries or NULL in whic case default 0 is used
Geometry dependent point count. E.g 3 in a triangle
This structure is the part of point attribute data which often can be shared by several surfaces
Unique id for current channel configuration. Do nothing unless id changes
Channel class
This structure is used inside the rendering engine
r3pointrenderattrs *
New v.5 extension: multiple attribute sets supported