r3surf

r3surf

Class

real/raytr/r3surf.h

Library

r3raytr

Description:

Surface Class

See Also

real/raytr/r3frsurf.h oops/r3vect.h real/frio/r3raysmp.h

Super Class

r3Frsurface

R3CLID_FRSURFACE

JavaScript

r3Surface

Class Identifier

R3CLID_SURFACE - 406

Methods

RAYHIT, RAYHITOPT, RAYHITOPTM, AXHITOPT, LIGHTHIT, LIGHTHITOPT, LIGHTHITOPTM, TRIM, AXTRIM, ORIGTRIM, EVALUATESURFACEPOINT, EVALUATEUV, QUERYPOSDATA, QUERYAXDATA, QUERYSHADOWDATA, INITPOSDATA, INITAXDATA, INITSHADOWDATA, REGISTERCACHECLASS, CREATECACHE, DELETECACHE, RESETCACHE, ALLOCCACHE, FREECACHE, INITCACHE, GETHOLLOWNESS, INCREASECACHE, EVALUATEDERIVATE, NOSHADOWS, GETEXTFLAGS, SETEXTFLAGS,

Attributes

Radius, Mask, MaskPoints, Cog, Parent, Trim, InvertUVTrim, TrimOperation, InvertNormal, Complexity,

Registration

int R3RegisterSurfClass(R3APP *app);

R3SURFM_RAYHIT

Method

RAYHIT

Identifier

R3SURFM_RAYHIT

JavaScript

obj.RAYHIT();

Description

General rayhit finder. Ray position & direction can be arbitrary.

R3SURFM_RAYHITOPT

Method

RAYHITOPT

Identifier

R3SURFM_RAYHITOPT

JavaScript

obj.RAYHITOPT();

Description

Perspective camera rayhit finder (ray source position = (0,0,0)). * Only hits greater than RHITMSG->mindist are accepted.

R3SURFM_RAYHITOPTM

Method

RAYHITOPTM

Identifier

R3SURFM_RAYHITOPTM

JavaScript

obj.RAYHITOPTM();

Description

Same as above, but this method is called if the surface is known to be fully in front of the camera.

R3SURFM_AXHITOPT

Method

AXHITOPT

Identifier

R3SURFM_AXHITOPT

JavaScript

obj.AXHITOPT();

Description

Parallel camera rayhit finder (ray dir = (0,0,1), ray source = (x,y,0) ). * Only hits greater than RHITMSG->mindist are accepted.

R3SURFM_LIGHTHIT

Method

LIGHTHIT

Identifier

R3SURFM_LIGHTHIT

JavaScript

obj.LIGHTHIT();

Description

general light ray finder. * All hits closer than RHITMSG->nrsthit->dist should be processed.

R3SURFM_LIGHTHITOPT

Method

LIGHTHITOPT

Identifier

R3SURFM_LIGHTHITOPT

JavaScript

obj.LIGHTHITOPT();

Description

light rayhit finder (all light rays originate from the same position). * All hits closer than RHITMSG->nrsthit->dist should be processed.

R3SURFM_LIGHTHITOPTM

Method

LIGHTHITOPTM

Identifier

R3SURFM_LIGHTHITOPTM

JavaScript

obj.LIGHTHITOPTM();

Description

Same as above, but this method is called if the surface is known to be fully in front of the light ray origin at the direction of the given ray (e.g. when the ray is cast by an optimized spot light).

R3SURFM_TRIM

Method

TRIM

Identifier

R3SURFM_TRIM

JavaScript

obj.TRIM();

Description

R3SURFM_AXTRIM

Method

AXTRIM

Identifier

R3SURFM_AXTRIM

JavaScript

obj.AXTRIM();

Description

R3SURFM_ORIGTRIM

Method

ORIGTRIM

Identifier

R3SURFM_ORIGTRIM

JavaScript

obj.ORIGTRIM();

Description

R3SURFM_EVALUATESURFACEPOINT

Method

EVALUATESURFACEPOINT

Identifier

R3SURFM_EVALUATESURFACEPOINT

JavaScript

obj.EVALUATESURFACEPOINT();

Description

Evaluates properties in a point on the surface

R3SURFM_EVALUATEUV

Method

EVALUATEUV

Identifier

R3SURFM_EVALUATEUV

Param 3:

R3VECTOR, result UV coords

JavaScript

obj.EVALUATEUV(p3);

Description

Evaluate only UV channel

R3SURFM_QUERYPOSDATA

Method

QUERYPOSDATA

Identifier

R3SURFM_QUERYPOSDATA

Param 2:

void*, pointer to a temp memory buffer (size = R3SURFCA_MaxPosdatasize defined by this class). * Store temporary values here to avoid time consuming recomputation later at ALLOCPOSDATA

Param 3:

R3TAG*, tag list includes R3SURFA_OptDataVector vector tag defining

JavaScript

obj.QUERYPOSDATA(0, p2, p3);

Description

Surface visibility check for perspective camera rays from origin. Note that ray * tracer optimizes bounding sphere, bounding box etc. visibility so only very object specific * visibility properties should be optimized here.

R3SURFM_QUERYAXDATA

Method

QUERYAXDATA

Identifier

R3SURFM_QUERYAXDATA

JavaScript

obj.QUERYAXDATA();

Description

R3SURFM_QUERYSHADOWDATA

Method

QUERYSHADOWDATA

Identifier

R3SURFM_QUERYSHADOWDATA

JavaScript

obj.QUERYSHADOWDATA();

Description

R3SURFM_INITPOSDATA

Method

INITPOSDATA

Identifier

R3SURFM_INITPOSDATA

JavaScript

obj.INITPOSDATA();

Description

Initialize optimization data for perspective camera ray hits p1: void *, the temp memory buffer that was available as p2 parameyter in R3SURFM_QUERYPOSDATA p2: R3POSDATA *, the optimization data to be initialized. You can put temporary values that depend on the surface and ray hit source position here to avoid repeating computation at rendering time. Rc: geometrical complexity estimate- see defs below

R3SURFM_INITAXDATA

Method

INITAXDATA

Identifier

R3SURFM_INITAXDATA

JavaScript

obj.INITAXDATA();

Description

R3SURFM_INITSHADOWDATA

Method

INITSHADOWDATA

Identifier

R3SURFM_INITSHADOWDATA

JavaScript

obj.INITSHADOWDATA();

Description

R3SURFCM_REGISTERCACHECLASS

Method

REGISTERCACHECLASS

Identifier

R3SURFCM_REGISTERCACHECLASS

JavaScript

obj.REGISTERCACHECLASS();

Description

R3SURFCM_CREATECACHE

Method

CREATECACHE

Identifier

R3SURFCM_CREATECACHE

JavaScript

obj.CREATECACHE();

Description

R3SURFCM_DELETECACHE

Method

DELETECACHE

Identifier

R3SURFCM_DELETECACHE

JavaScript

obj.DELETECACHE();

Description

R3SURFCM_RESETCACHE

Method

RESETCACHE

Identifier

R3SURFCM_RESETCACHE

JavaScript

obj.RESETCACHE();

Description

R3SURFCM_ALLOCCACHE

Method

ALLOCCACHE

Identifier

R3SURFCM_ALLOCCACHE

JavaScript

obj.ALLOCCACHE();

Description

R3SURFCM_FREECACHE

Method

FREECACHE

Identifier

R3SURFCM_FREECACHE

JavaScript

obj.FREECACHE();

Description

R3SURFCM_INITCACHE

Method

INITCACHE

Identifier

R3SURFCM_INITCACHE

JavaScript

obj.INITCACHE();

Description

R3SURFM_GETHOLLOWNESS

Method

GETHOLLOWNESS

Identifier

R3SURFM_GETHOLLOWNESS

JavaScript

obj.GETHOLLOWNESS();

Description

R3SURFCM_INCREASECACHE

Method

INCREASECACHE

Identifier

R3SURFCM_INCREASECACHE

JavaScript

obj.INCREASECACHE();

Description

Increases cache counter so that next time when cache is needed, it is recreated to * take account the new situation. Example: When a new max point count is detected in CREATE method, * class sends this message to surface base class.

R3SURFM_EVALUATEDERIVATE

Method

EVALUATEDERIVATE

Identifier

R3SURFM_EVALUATEDERIVATE

Param 2:

R3OBJ*, u direction raysample initialized by R3SURFM_EVALUATESURFACEPOINT

Param 3:

R3OBJ*, v direction raysample initialized by R3SURFM_EVALUATESURFACEPOINT

JavaScript

obj.EVALUATEDERIVATE(0, p2, p3);

Description

Evaluates properties in two near points of the ray hit point. * R3SURFM_EVALUATESURFACEPOINT is always called before use of this method.

R3SURFM_NOSHADOWS

Method

NOSHADOWS

Identifier

R3SURFM_NOSHADOWS

JavaScript

obj.NOSHADOWS();

Description

R3SURFM_GETEXTFLAGS

Method

GETEXTFLAGS

Identifier

R3SURFM_GETEXTFLAGS

JavaScript

obj.GETEXTFLAGS();

Description

R3SURFM_SETEXTFLAGS

Method

SETEXTFLAGS

Identifier

R3SURFM_SETEXTFLAGS

JavaScript

obj.SETEXTFLAGS();

Description

Radius

Attribute

Radius

Identifier

R3SURFA_Radius

JavaScript type

Number

C type

R3FLOAT

Description

bounding radius. Set to 0 for infinite surfaces

Syntax


jsobj.SetRadius(value);
value = jsobj.GetRadius();


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SURFA_Radius, value, R3TAG_END);
R3FLOAT value;
R3GetAttrs(r3obj, R3SURFA_Radius, &value, R3TAG_END);

Mask

Attribute

Mask

Identifier

R3SURFA_Mask

Type

r3Vect

Description

array of mask points

Syntax


jsobj.SetMask(value);
value = jsobj.GetMask();


R3VECTOR* value = ...;
R3SetAttrs(r3obj, R3SURFA_Mask, value, R3TAG_END);
R3VECTOR* value;
R3GetAttrs(r3obj, R3SURFA_Mask, &value, R3TAG_END);

MaskPoints

Attribute

MaskPoints

Identifier

R3SURFA_MaskPoints

JavaScript type

Integer

C type

R3INT

Description

mask point count

Syntax


jsobj.SetMaskPoints(value);
value = jsobj.GetMaskPoints();


R3INT value = ...;
R3SetAttrs(r3obj, R3SURFA_MaskPoints, value, R3TAG_END);
R3INT value;
R3GetAttrs(r3obj, R3SURFA_MaskPoints, &value, R3TAG_END);

Cog

Attribute

Cog

Identifier

R3SURFA_Cog

Type

r3Vect

Description

middle point. R3SURFA_Cog + R3SURFA_Radius define bounding sphere

Syntax


value = jsobj.GetCog();


R3VECTOR value;
R3GetAttrs(r3obj, R3SURFA_Cog, &value, R3TAG_END);

Parent

Attribute

Parent

Identifier

R3SURFA_Parent

JavaScript type

Object

C type

R3OBJ*

Description

Internal use

Syntax


jsobj.SetParent(value);
value = jsobj.GetParent();


R3OBJ* value = ...;
R3SetAttrs(r3obj, R3SURFA_Parent, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3SURFA_Parent, &value, R3TAG_END);

Trim

Attribute

Trim

Identifier

R3SURFA_Trim

JavaScript type

Object

C type

R3OBJ*

Description

Addres of a hierarchical 3D trim object linked to the surface

Syntax


jsobj.SetTrim(value);
value = jsobj.GetTrim();


R3OBJ* value = ...;
R3SetAttrs(r3obj, R3SURFA_Trim, value, R3TAG_END);
R3OBJ* value;
R3GetAttrs(r3obj, R3SURFA_Trim, &value, R3TAG_END);

InvertUVTrim

Attribute

InvertUVTrim

Identifier

R3SURFA_InvertUVTrim

JavaScript type

Integer

C type

R3INT

Description

if true EXOR operation between UV trims is inverted

Syntax


jsobj.SetInvertUVTrim(value);


R3INT value = ...;
R3SetAttrs(r3obj, R3SURFA_InvertUVTrim, value, R3TAG_END);

TrimOperation

Attribute

TrimOperation

Identifier

R3SURFA_TrimOperation

JavaScript type

Integer

C type

R3INT

Description

the bool op type used for UV trim objects, see types below

Syntax


jsobj.SetTrimOperation(value);


R3INT value = ...;
R3SetAttrs(r3obj, R3SURFA_TrimOperation, value, R3TAG_END);

InvertNormal

Attribute

InvertNormal

Identifier

R3SURFA_InvertNormal

JavaScript type

Boolean

C type

R3BOOL

Description

if true native normal direction is inverted

Syntax


jsobj.SetInvertNormal(value);
value = jsobj.GetInvertNormal();


R3BOOL value = ...;
R3SetAttrs(r3obj, R3SURFA_InvertNormal, value, R3TAG_END);
R3BOOL value;
R3GetAttrs(r3obj, R3SURFA_InvertNormal, &value, R3TAG_END);

Complexity

Attribute

Complexity

Identifier

R3SURFA_Complexity

JavaScript type

Integer

C type

R3INT

Description

read only, see complexity defs below

Syntax


value = jsobj.GetComplexity();


R3INT value;
R3GetAttrs(r3obj, R3SURFA_Complexity, &value, R3TAG_END);

R3FRSURF_UVOP_XOR
R3FRSURF_UVOP_AND
R3FRSURF_UVOP_OR


r3bbox2d  

R3SURFPR_PERSPECTIVE
R3SURFPR_ORTHOGRAPHIC

The optimization data of the base class for perspective camera rayhits

Closest distance to camera pos = render space origin

2D bounding box in image plane - used for slow rayhit objects

data beyond this is private for each derived surface class

Message for RAYHIT

hit distance

Hitting point

UV coords of hitting point if defined

data beyond this point is private. You can reserve some space here by doing R3SetClassAttrs(R3CLID_SURFACE, R3SURFCA_MaxHitdatasize, sizeof(R3RAYHITDATA)+mydatasize, R3TAG_END); You can store rayhit computation data there and reuse it later in EVALUATE method for quick normal computation etc.

currently traced ray

origin of currently traced ray

current display coords 0..1

Do not accept camera ray hits closer than this

Previously hit surface in higher order rayhits.

Zeroeye vector (xeye_x & y below) init state

Two orthogonal unit vectors perpendicular to ray

array of void * pointers

For internal use

for callback above

For internal use

Some example complexity values returned by INITPOSDATA method The greater the value, the more time consuming optimizations raytracer performs prior to rayhit check.

/

R3SURF_COMPLEXITY1
R3SURF_COMPLEXITY2
R3SURF_COMPLEXITY3
R3SURF_HIGHCOMPLEXITY


r3hitmsg *


r3vector *


r3vector *


r3vector *


r3vector *


r3vector *


r3vector *

<sect6> <title>r3sbdrop</title>

r3sbdrop

Class

real/raytr/r3sbdrop.h

Library

r3raytr

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sbackdrop

Class Identifier

R3CLID_SBACKDROP - 720

Attributes

Registration

int R3RegisterSurfaceBackdropClass(R3APP *app);

</sect6>
<sect6> <title>r3sball</title>

r3sball

Class

real/raytr/r3sball.h

Library

r3raytr

Description:

Ray tracer's sphere surface.

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sball

Class Identifier

R3CLID_SBALL - 407

Attributes

Center, R, Concave,

Registration

int R3RegisterSurfaceBallClass(R3APP *app);

Center

Attribute

Center

Identifier

R3SBALLA_Center

Type

r3Vect

Description

center point

Syntax


jsobj.SetCenter(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SBALLA_Center, value, R3TAG_END);

R

Attribute

R

Identifier

R3SBALLA_R

JavaScript type

Number

C type

R3FLOAT

Description

radius

Syntax


jsobj.SetR(value);


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SBALLA_R, value, R3TAG_END);

Concave

Attribute

Concave

Identifier

R3SBALLA_Concave

JavaScript type

Boolean

C type

R3BOOL

Description

Syntax


jsobj.SetConcave(value);


R3BOOL value = ...;
R3SetAttrs(r3obj, R3SBALLA_Concave, value, R3TAG_END);

</sect6>
<sect6> <title>r3sbili</title>

r3sbili

Class

real/raytr/r3sbili.h

Library

r3raytr

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sbilinear

Class Identifier

R3CLID_SBILINEAR - 1508

Attributes

Registration

int R3RegisterSurfaceBilinearClass(R3APP *app);

</sect6>
<sect6> <title>r3scone</title>

r3scone

Class

real/raytr/r3scone.h

Library

r3raytr

Description:

Cone surface class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Scone

Class Identifier

R3CLID_SCONE - 770

Attributes

R,

Registration

int R3RegisterSurfaceConeClass(R3APP *app);

R

Attribute

R

Identifier

R3SCONEA_R

JavaScript type

Number

C type

R3FLOAT

Description

diameter of base at 1 distance from the top

Syntax


jsobj.SetR(value);


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SCONEA_R, value, R3TAG_END);

</sect6>
<sect6> <title>r3scone2</title>

r3scone2

Class

real/raytr/r3scone2.h

Library

r3raytr

Description:

Elliptic cone surface class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Scone2

Class Identifier

R3CLID_SCONE2 - 771

Attributes

A, C,

Registration

int R3RegisterSurfaceCone2Class(R3APP *app);

A

Attribute

A

Identifier

R3SCONE2A_A

Type

r3Vect

Description

A & C define elliptic opening angles

Syntax


jsobj.SetA(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SCONE2A_A, value, R3TAG_END);

C

Attribute

C

Identifier

R3SCONE2A_C

Type

r3Vect

Description

main cone 'longitude' axis travelling inside cone

Syntax


jsobj.SetC(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SCONE2A_C, value, R3TAG_END);

</sect6>
<sect6> <title>r3sbs3</title>

r3sbs3

Class

real/raytr/r3sbs3.h

Library

r3raytr

Description:

Cubic b spline class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Scubicbspline

Class Identifier

R3CLID_SCUBICBSPLINE - 440

Methods

Attributes

MixInterpolation, MaxDisplacement,

Registration

int R3RegisterSurfaceCubicSplineClass(R3APP *app);

MixInterpolation

Attribute

MixInterpolation

Identifier

R3SBS3A_MixInterpolation

JavaScript type

Boolean

C type

R3BOOL

Description

for internal use

Syntax


jsobj.SetMixInterpolation(value);


R3BOOL value = ...;
R3SetAttrs(r3obj, R3SBS3A_MixInterpolation, value, R3TAG_END);

MaxDisplacement

Attribute

MaxDisplacement

Identifier

R3SBS3A_MaxDisplacement

JavaScript type

Number

C type

R3FLOAT

Description

if>0, then bumpheight displaces the surface max. this amount

Syntax


jsobj.SetMaxDisplacement(value);


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SBS3A_MaxDisplacement, value, R3TAG_END);

</sect6>
<sect6> <title>r3scyl</title>

r3scyl

Class

real/raytr/r3scyl.h

Library

r3raytr

Description:

Cylinder Surface Class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Scylinder

Class Identifier

R3CLID_SCYLINDER - 465

Attributes

R, Center, A, Concave,

Registration

int R3RegisterSurfaceCylinderClass(R3APP *app);

R

Attribute

R

Identifier

R3SCYLA_R

JavaScript type

Number

C type

R3FLOAT

Description

Syntax


jsobj.SetR(value);


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SCYLA_R, value, R3TAG_END);

Center

Attribute

Center

Identifier

R3SCYLA_Center

Type

r3Vect

Description

Syntax


jsobj.SetCenter(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SCYLA_Center, value, R3TAG_END);

A

Attribute

A

Identifier

R3SCYLA_A

Type

r3Vect

Description

Syntax


jsobj.SetA(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SCYLA_A, value, R3TAG_END);

Concave

Attribute

Concave

Identifier

R3SCYLA_Concave

JavaScript type

Boolean

C type

R3BOOL

Description

Syntax


jsobj.SetConcave(value);


R3BOOL value = ...;
R3SetAttrs(r3obj, R3SCYLA_Concave, value, R3TAG_END);

</sect6>
<sect6> <title>r3scyl2</title>

r3scyl2

Class

real/raytr/r3scyl2.h

Library

r3raytr

Description:

Elliptic cylinder surface class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Scylinder2

Class Identifier

R3CLID_SCYLINDER2 - 764

Methods

Attributes

Registration

int R3RegisterSurfaceCylinder2Class(R3APP *app);

</sect6>
<sect6> <title>r3sell</title>

r3sell

Class

real/raytr/r3sell.h

Library

r3raytr

Description:

Ellipsoid Surface Class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sellipsoid

Class Identifier

R3CLID_SELLIPSOID - 410

Methods

Attributes

Registration

int R3RegisterSurfaceEllipsoidClass(R3APP *app);

</sect6>
<sect6> <title>r3sell2</title>

r3sell2

Class

real/raytr/r3sell2.h

Library

r3raytr

Description:

Ellipsoid2 Surface Class (all 3 axes can have different lenghts)

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sellipsoid2

Class Identifier

R3CLID_SELLIPSOID2 - 412

Methods

Attributes

Registration

int R3RegisterSurfaceEllipsoid2Class(R3APP *app);

</sect6>
<sect6> <title>r3shyp</title>

r3shyp

Class

real/raytr/r3shyp.h

Library

r3raytr

Description:

Hyperbolic surface class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Shyperbol

Class Identifier

R3CLID_SHYPERBOL - 773

Attributes

Center, A, R,

Registration

int R3RegisterSurfaceHyperbolClass(R3APP *app);

Center

Attribute

Center

Identifier

R3SHYPA_Center

Type

r3Vect

Description

hyperbel origin

Syntax


jsobj.SetCenter(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SHYPA_Center, value, R3TAG_END);

A

Attribute

A

Identifier

R3SHYPA_A

Type

r3Vect

Description

rotational axis, length defines asymptotic opening angle

Syntax


jsobj.SetA(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SHYPA_A, value, R3TAG_END);

R

Attribute

R

Identifier

R3SHYPA_R

JavaScript type

Number

C type

R3FLOAT

Description

radius in the middle

Syntax


jsobj.SetR(value);


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SHYPA_R, value, R3TAG_END);

</sect6>
<sect6> <title>r3shyp2</title>

r3shyp2

Class

real/raytr/r3shyp2.h

Library

r3raytr

Description:

Hyperbol surface class (all 3 axes can have different lenghts)

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Shyperbol2

Class Identifier

R3CLID_SHYPERBOL2 - 774

Attributes

Registration

int R3RegisterSurfaceHyperbol2Class(R3APP *app);

</sect6>
<sect6> <title>r3soarra</title>

r3soarra

Class

real/raytr/r3soarra.h

Library

r3raytr

See Also

real/raytr/r3surf.h real/frio/r3zbuffe.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sobjarray

Class Identifier

R3CLID_SOBJARRAY - 741

Attributes

ZBuffer,

Registration

int R3RegisterSurfaceObjectArrayClass(R3APP *app);

ZBuffer

Attribute

ZBuffer

Identifier

R3SOARRA_ZBuffer

JavaScript type

Object

C type

R3OBJ*

Description

address of z buffer object the surface uses

Syntax


jsobj.SetZBuffer(value);


R3OBJ* value = ...;
R3SetAttrs(r3obj, R3SOARRA_ZBuffer, value, R3TAG_END);

</sect6>
<sect6> <title>r3splane</title>

r3splane

Class

real/raytr/r3splane.h

Library

r3raytr

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Splane

Class Identifier

R3CLID_SPLANE - 416

Attributes

Center, Normal, Onesided,

Registration

int R3RegisterSurfacePlaneClass(R3APP *app);

Center

Attribute

Center

Identifier

R3SPLANEA_Center

Type

r3Vect

Description

a point in plane

Syntax


jsobj.SetCenter(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SPLANEA_Center, value, R3TAG_END);

Normal

Attribute

Normal

Identifier

R3SPLANEA_Normal

Type

r3Vect

Description

unit normal

Syntax


jsobj.SetNormal(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3SPLANEA_Normal, value, R3TAG_END);

Onesided

Attribute

Onesided

Identifier

R3SPLANEA_Onesided

JavaScript type

Boolean

C type

R3BOOL

Description

TRUE if onesided (plane can be seen from outside=against normal direction)

Syntax


jsobj.SetOnesided(value);


R3BOOL value = ...;
R3SetAttrs(r3obj, R3SPLANEA_Onesided, value, R3TAG_END);


r3appobj *

</sect6>
<sect6> <title>r3srabez</title>

r3srabez

Class

real/raytr/r3srabez.h

Library

r3raytr

Description:

General rational bezier surface class

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Sratbezier

Class Identifier

R3CLID_SRATBEZIER - 494

Methods

Attributes

BilinearUV, MaxDisplacement,

Registration

int R3RegisterSurfaceRationalBezierClass(R3APP *app);

BilinearUV

Attribute

BilinearUV

Identifier

R3SRBEZA_BilinearUV

JavaScript type

Integer

C type

R3INT

Description

if true then UCorners & VCorners values will be used

Syntax


jsobj.SetBilinearUV(value);


R3INT value = ...;
R3SetAttrs(r3obj, R3SRBEZA_BilinearUV, value, R3TAG_END);

MaxDisplacement

Attribute

MaxDisplacement

Identifier

R3SRBEZA_MaxDisplacement

JavaScript type

Number

C type

R3FLOAT

Description

if>0, then bumpheight displaces the surface max. this amount

Syntax


jsobj.SetMaxDisplacement(value);


R3FLOAT value = ...;
R3SetAttrs(r3obj, R3SRBEZA_MaxDisplacement, value, R3TAG_END);

</sect6>
<sect6> <title>r3stri</title>

r3stri

Class

real/raytr/r3stri.h

Library

r3raytr

See Also

real/raytr/r3surf.h

Super Class

r3Surface

R3CLID_SURFACE

JavaScript

r3Striangle

Class Identifier

R3CLID_STRIANGLE - 719

Methods

Attributes

GeometricNormal,

Registration

int R3RegisterSurfaceTriangleClass(R3APP *app);

GeometricNormal

Attribute

GeometricNormal

Identifier

R3STRIA_GeometricNormal

Type

r3Vect

Description

give if onesided, points to the side from where triangle is visible

Syntax


jsobj.SetGeometricNormal(value);


R3VECTOR value = ...;
R3SetAttrs(r3obj, R3STRIA_GeometricNormal, value, R3TAG_END);

</sect6>