r3frpart

r3frpart

Class

real/raytr/r3frpart.h

Library

r3raytr

Description:

Particle class. Base class for non-raytraced geometric objects.

See Also

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

Super Class

r3Frsurface

R3CLID_FRSURFACE

JavaScript

r3Frparticle

Class Identifier

R3CLID_FRPARTICLE - 702

Methods

RENDER, EVALUATEPOINTPROPERT, RENDERPOINTS, ENUMNEEDEDCHANNELS,

Attributes

RenderClasses, Cog,

Registration

int R3RegisterFrParticleClass(R3APP *app);

R3FRPAM_RENDER

Method

RENDER

Identifier

R3FRPAM_RENDER

Param 1:

R3OBJ*, raysample to which properties are evaluated

JavaScript

obj.RENDER(p1, 0);

Description

evaluate geometric description of the particle object to the raysample.

R3FRPAM_EVALUATEPOINTPROPERT

Method

EVALUATEPOINTPROPERT

Identifier

R3FRPAM_EVALUATEPOINTPROPERT

Param 3:

R3OBJ*, ptr to a raysample.

JavaScript

obj.EVALUATEPOINTPROPERT(p3);

Description

Evaluate particle properties to a raysample in a point defined * by R3CLID_ASCCHANNEL of the raysample. Typically, a particle object defines geometry * related information. Position is already known when calling this method, so surface * normal information may be the most natural channel to be computed.

R3FRPAM_RENDERPOINTS

Method

RENDERPOINTS

Identifier

R3FRPAM_RENDERPOINTS

Param 1:

R3OBJ*, ptr to a z buffer object see friozbuffer.h

JavaScript

obj.RENDERPOINTS(p1, 0);

Description

render points of the particle to a z buffer at a given resolution. * This method is used for finding out the shape of the particle in the target image. * Actual shading related property evaluation will happen later by R3FRPAM_EVALUATEPOINTPROPERTIES. * The default action of the base class is projecting the position (of one point) to z buffer, finding * the distance and sending the R3ZBM_PIXEL method to draw one 'pixel'. If the particle covers * several pixels, the particle class may either use existing z buffer drawing methods or compute * its interior pixels and use pixel drawing methods. * The default class actions are in more detail: * * R3VECTOR res; * R3FLOAT fade = 0.0; * * if(!p2) return obj; * R3MxTransform(&res, p3->modelview, p); * if(msg->projection!=R3PRP_ORTHOGONAL) res.t = sqrt(PMUL(p,p)); * * return R3SendMsgA(p1, R3ZBM_PIXEL, &fade, &res); *

R3FRPAM_ENUMNEEDEDCHANNELS

Method

ENUMNEEDEDCHANNELS

Identifier

R3FRPAM_ENUMNEEDEDCHANNELS

Param 1:

R3OBJ*, retobj

Param 3:

R3INT, retmth

JavaScript

obj.ENUMNEEDEDCHANNELS(p1, p3);

Description

enumerate all channels that should be included in the drawport in R3FRPAM_RENDER method. * by sending R3SendMsgA(retobj, retmth, channelname)

RenderClasses

Attribute

RenderClasses

Identifier

R3FRPAA_RenderClasses

JavaScript type

Integer

C type

R3INT*

Description

Zero terminated array of R3INT clids

Syntax


value = jsobj.GetRenderClasses();


R3INT* value;
R3GetAttrs(r3obj, R3FRPAA_RenderClasses, &value, R3TAG_END);

Cog

Attribute

Cog

Identifier

R3FRPAA_Cog

Type

r3Vect

Description

middle point, read only

Syntax


value = jsobj.GetCog();


R3VECTOR* value;
R3GetAttrs(r3obj, R3FRPAA_Cog, &value, R3TAG_END);

The base class for particles allows use of multiple rendering classes for the same particle object. For example, the same particle can be rendered using both some pre-raytracing system and the post processing system by mapping both kind of effects to the particle and by defining the suitable render class lids in R3FRPAA_RenderClasses attribute. If no R3FRPAA_RenderClasses attribute is given, then this particle base class uses the default rendering system class (a class attribute) which can be set/read by R3FRSURFCA_RenderClass.

/


r3frparticlemsg /

See comment below

Points to cam space matrix

projection matrix which computes raster coordinates

see defs below

ptr to drawport object, see frio/r3drawp.h

Address of a boolean cancel indicator; break if not null

If true particles should be rendered in distance order (nearest last)


r3particlerenderpointmsg /

size of target raster

See comment below

projection matrix which computes raster coordinates

camera axes, camera position is always in origin

see defs below

A channel contect object. You can use this for material evaluation

projection types:

R3PRP_PERSPECTIVE
R3PRP_ORTHOGONAL

<sect6> <title>r3frpa1d</title>

r3frpa1d

Class

real/raytr/r3frpa1d.h

Library

r3raytr

Description:

1D particle class.

See Also

real/raytr/r3frpart.h

Super Class

r3Frparticle

R3CLID_FRPARTICLE

JavaScript

r3Frparticle1d

Class Identifier

R3CLID_FRPARTICLE1D - 701

Attributes

Count, RenderUV, ConstantSize, SizeArray,

Registration

int R3RegisterFrParticle1DClass(R3APP *app);

Count

Attribute

Count

Identifier

R3FP1DA_Count

JavaScript type

Integer

C type

int

Description

'R3FP1DA_Count' not documented

Syntax


jsobj.SetCount(value);
value = jsobj.GetCount();


int value = ...;
R3SetAttrs(r3obj, R3FP1DA_Count, value, R3TAG_END);
int value;
R3GetAttrs(r3obj, R3FP1DA_Count, &value, R3TAG_END);

RenderUV

Attribute

RenderUV

Identifier

R3FP1DA_RenderUV

JavaScript type

Boolean

C type

R3BOOL

Description

if TRUE u (center-edge in a disc) and v (point counter) channel items evaluated

Syntax


jsobj.SetRenderUV(value);


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

ConstantSize

Attribute

ConstantSize

Identifier

R3FP1DA_ConstantSize

JavaScript type

Number

C type

R3FLOAT

Description

for defining one common size

Syntax


jsobj.SetConstantSize(value);


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

SizeArray

Attribute

SizeArray

Identifier

R3FP1DA_SizeArray

JavaScript type

Number

C type

R3FLOAT*

Description

for defining individual sizes

Syntax


jsobj.SetSizeArray(value);


R3FLOAT* value = ...;
R3SetAttrs(r3obj, R3FP1DA_SizeArray, value, R3TAG_END);

</sect6>
<sect6> <title>r3frpa2d</title>

r3frpa2d

Class

real/raytr/r3frpa2d.h

Library

r3raytr

Description:

2D particle class.

See Also

real/raytr/r3frpart.h

Super Class

r3Frparticle

R3CLID_FRPARTICLE

JavaScript

r3Frparticle2d

Class Identifier

R3CLID_FRPARTICLE2D - 743

Attributes

Count, RenderUV, Diameter1, Diameter2, D1Array, D2Array,

Registration

int R3RegisterFrParticle2DClass(R3APP *app);

Count

Attribute

Count

Identifier

R3FP2DA_Count

JavaScript type

Integer

C type

int

Description

'R3FP2DA_Count' not documented

Syntax


jsobj.SetCount(value);
value = jsobj.GetCount();


int value = ...;
R3SetAttrs(r3obj, R3FP2DA_Count, value, R3TAG_END);
int value;
R3GetAttrs(r3obj, R3FP2DA_Count, &value, R3TAG_END);

RenderUV

Attribute

RenderUV

Identifier

R3FP2DA_RenderUV

JavaScript type

Boolean

C type

R3BOOL

Description

if TRUE u (center-edge) and v (along the line) & t (line item counter/count) evaluated

Syntax


jsobj.SetRenderUV(value);


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

Diameter1

Attribute

Diameter1

Identifier

R3FP2DA_Diameter1

JavaScript type

Number

C type

R3FLOAT

Description

for defining one common start size

Syntax


jsobj.SetDiameter1(value);


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

Diameter2

Attribute

Diameter2

Identifier

R3FP2DA_Diameter2

JavaScript type

Number

C type

R3FLOAT

Description

for defining one common end size

Syntax


jsobj.SetDiameter2(value);


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

D1Array

Attribute

D1Array

Identifier

R3FP2DA_D1Array

JavaScript type

Number

C type

R3FLOAT*

Description

for defining individual startsizes

Syntax


jsobj.SetD1Array(value);


R3FLOAT* value = ...;
R3SetAttrs(r3obj, R3FP2DA_D1Array, value, R3TAG_END);

D2Array

Attribute

D2Array

Identifier

R3FP2DA_D2Array

JavaScript type

Number

C type

R3FLOAT*

Description

for defining individual end sizes

Syntax


jsobj.SetD2Array(value);


R3FLOAT* value = ...;
R3SetAttrs(r3obj, R3FP2DA_D2Array, value, R3TAG_END);

</sect6>
<sect6> <title>r3frpa3d</title>

r3frpa3d

Class

real/raytr/r3frpa3d.h

Library

r3raytr

Description:

3D particle class. Defines a set of point quadruples (o, h, v, n). They are rendered to ASCCHANNEL, SURFHORCHANNEL, SURFVERCHANNEL, NORMALCHANNEL in R3FRPAM_RENDER method.

See Also

real/raytr/r3frpart.h

Super Class

r3Frparticle

R3CLID_FRPARTICLE

JavaScript

r3Frparticle3d

Class Identifier

R3CLID_FRPARTICLE3D - 749

Attributes

Points, Count,

Registration

int R3RegisterFrParticle3DClass(R3APP *app);

Points

Attribute

Points

Identifier

R3FP3DA_Points

Type

r3Coordsys

Description

array of 4 vectors groups

Syntax


jsobj.SetPoints(value);


R3COORDSYS* value = ...;
R3SetAttrs(r3obj, R3FP3DA_Points, value, R3TAG_END);

Count

Attribute

Count

Identifier

R3FP3DA_Count

JavaScript type

Integer

C type

R3INT

Description

number of coordsys items

Syntax


jsobj.SetCount(value);
value = jsobj.GetCount();


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

</sect6>
<sect6> <title>r3frpacu</title>

r3frpacu

Class

real/raytr/r3frpacu.h

Library

r3raytr

Description:

2D particle nurbs curve class (renders hairs etc.)

See Also

real/raytr/r3frpart.h

Super Class

r3Frparticle

R3CLID_FRPARTICLE

JavaScript

r3Frparticlecurve

Class Identifier

R3CLID_FRPARTICLECURVE - 751

Attributes

Width, Height, Order, Closed, RenderUV, Diameter1, Diameter2, D1Array, D2Array, Quality, Min, Max, DiameterChannel,

Registration

int R3RegisterFrParticleCurveClass(R3APP *app);

Width

Attribute

Width

Identifier

R3FPCUA_Width

JavaScript type

Integer

C type

R3INT

Description

points in each curce

Syntax


jsobj.SetWidth(value);


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

Height

Attribute

Height

Identifier

R3FPCUA_Height

JavaScript type

Integer

C type

R3INT

Description

number of curves

Syntax


jsobj.SetHeight(value);


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

Order

Attribute

Order

Identifier

R3FPCUA_Order

JavaScript type

Integer

C type

R3INT

Description

order of curves

Syntax


jsobj.SetOrder(value);


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

Closed

Attribute

Closed

Identifier

R3FPCUA_Closed

JavaScript type

Boolean

C type

R3BOOL

Description

TRUE if closed

Syntax


jsobj.SetClosed(value);


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

RenderUV

Attribute

RenderUV

Identifier

R3FPCUA_RenderUV

JavaScript type

Boolean

C type

R3BOOL

Description

if TRUE u (center-edge) and v (along the line) & t (line item counter/count) evaluated

Syntax


jsobj.SetRenderUV(value);


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

Diameter1

Attribute

Diameter1

Identifier

R3FPCUA_Diameter1

JavaScript type

Number

C type

R3FLOAT

Description

for defining one common start size

Syntax


jsobj.SetDiameter1(value);


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

Diameter2

Attribute

Diameter2

Identifier

R3FPCUA_Diameter2

JavaScript type

Number

C type

R3FLOAT

Description

for defining one common end size

Syntax


jsobj.SetDiameter2(value);


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

D1Array

Attribute

D1Array

Identifier

R3FPCUA_D1Array

JavaScript type

Number

C type

R3FLOAT*

Description

for defining individual startsizes

Syntax


jsobj.SetD1Array(value);


R3FLOAT* value = ...;
R3SetAttrs(r3obj, R3FPCUA_D1Array, value, R3TAG_END);

D2Array

Attribute

D2Array

Identifier

R3FPCUA_D2Array

JavaScript type

Number

C type

R3FLOAT*

Description

for defining individual end sizes

Syntax


jsobj.SetD2Array(value);


R3FLOAT* value = ...;
R3SetAttrs(r3obj, R3FPCUA_D2Array, value, R3TAG_END);

Quality

Attribute

Quality

Identifier

R3FPCUA_Quality

JavaScript type

Integer

C type

R3INT

Description

tesselation quality (lines/interval)

Syntax


jsobj.SetQuality(value);


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

Min

Attribute

Min

Identifier

R3FPCUA_Min

JavaScript type

Number

C type

R3FLOAT

Description

evaluation interval

Syntax


jsobj.SetMin(value);


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

Max

Attribute

Max

Identifier

R3FPCUA_Max

JavaScript type

Number

C type

R3FLOAT

Description

evaluation interval

Syntax


jsobj.SetMax(value);


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

DiameterChannel

Attribute

DiameterChannel

Identifier

R3FPCUA_DiameterChannel

JavaScript type

String

C type

char*

Description

if not NULL then defines curve diameter, supports also R3FRSURFA_PointAttrs feature, see r3frsurf.h

Syntax


jsobj.SetDiameterChannel(value);


char* value = ...;
R3SetAttrs(r3obj, R3FPCUA_DiameterChannel, value, R3TAG_END);

</sect6>
<sect6> <title>r3frpaim</title>

r3frpaim

Class

real/raytr/r3frpaim.h

Library

r3raytr

Description:

image particle class. Evaluates the pixels of the rendered image.

See Also

real/raytr/r3frpart.h

Super Class

r3Frparticle

R3CLID_FRPARTICLE

JavaScript

r3Frparticleimage

Class Identifier

R3CLID_FRPARTICLEIMAGE - 736

Methods

Attributes

Registration

int R3RegisterFrParticleImageClass(R3APP *app);

</sect6>