r3frsurf

r3frsurf

Class

real/raytr/r3frsurf.h

Library

r3raytr

Description:

base surface class - a geometric object rendered by ray tracer or post processor etc.

See Also

real/raytr/r3frhob.h oops/r3vect.h

Super Class

r3Frhob

R3CLID_FRHOB

JavaScript

r3Frsurface

Class Identifier

R3CLID_FRSURFACE - 438

Methods

ISRENDERCLASS, CHANNELQUERY, ENUMMAPPEDOBJECTS,

Attributes

PointRenderAttrs, MinU, MaxU, MinV, MaxV,

R3FRSURFM_ISRENDERCLASS

Method

ISRENDERCLASS

Identifier

R3FRSURFM_ISRENDERCLASS

JavaScript

obj.ISRENDERCLASS();

Description

R3FRSURFM_CHANNELQUERY

Method

CHANNELQUERY

Identifier

R3FRSURFM_CHANNELQUERY

JavaScript

obj.CHANNELQUERY();

Description

R3FRSURFM_ENUMMAPPEDOBJECTS

Method

ENUMMAPPEDOBJECTS

Identifier

R3FRSURFM_ENUMMAPPEDOBJECTS

JavaScript

obj.ENUMMAPPEDOBJECTS();

Description

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

Attribute

PointRenderAttrs

Identifier

R3FRSURFA_PointRenderAttrs

JavaScript type

String

C type

void*

Description

Same as above, but data is given directly in rendering suitable form.

Syntax


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

Attribute

MinU

Identifier

R3FRSURFA_MinU

JavaScript type

Number

C type

R3FLOAT

Description

Min U value in UV trim space

Syntax


value = jsobj.GetMinU();


R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MinU, &value, R3TAG_END);

MaxU

Attribute

MaxU

Identifier

R3FRSURFA_MaxU

JavaScript type

Number

C type

R3FLOAT

Description

Max U value in UV trim space

Syntax


value = jsobj.GetMaxU();


R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MaxU, &value, R3TAG_END);

MinV

Attribute

MinV

Identifier

R3FRSURFA_MinV

JavaScript type

Number

C type

R3FLOAT

Description

Min V value in UV trim space

Syntax


value = jsobj.GetMinV();


R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MinV, &value, R3TAG_END);

MaxV

Attribute

MaxV

Identifier

R3FRSURFA_MaxV

JavaScript type

Number

C type

R3FLOAT

Description

Max V value in UV trim space

Syntax


value = jsobj.GetMaxV();


R3FLOAT value;
R3GetAttrs(r3obj, R3FRSURFA_MaxV, &value, R3TAG_END);


r3refnode /

FRF_WRAPX
FRF_WRAPY
FRF_WRAPZ
FRF_POINTS
FRF_VECTORS

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