RayObject Struct Reference

#include <c4d_raytrace.h>

Public Attributes

Char type
Char flag_phong
Char flag_castshadow
Char flag_receiveshadow
Char flag_seenbycamera
Char flag_compositing
Char flag_selfshadow
Char flag_seenbygi
Char flag_matteobject
Char flag_seenbydetails
Char flag_instanced
Vector v2
Vector mp
Vector rad
Float visibility
Float phong_angle
Int32 pcnt
const RayPolygonvadr
Int32 vcnt
TexList * texadr
Int32 texcnt
const void ** uvwadr
Int32 uvwcnt
UInt32 ** rsadr
Int32 rscnt
Matrix64 mg
Matrix64 mg_inverse
Matrix motion_delta
Float oblurlen
Char aa_minlevel
Char aa_maxlevel
Float aa_threshold
Int16 channelid [12]
Vector default_color
Int32 restriction_index
Int32 spd_displacement
Float spd_height
Char spd_keepedges
Char spd_distribution
Char spd_round
Char spd_roundcontour
Char spd_hqremapping
Char spd_mapresult
void * userdata
ObjectRestriction rr
Int16 ** tex_tsum
Char flag_compositing_gi
Bool forceDefaultColor

Protected Member Functions

 RayObject ()

Constructor & Destructor Documentation

◆ RayObject()

RayObject ( )

Member Data Documentation

◆ type

Char type

Object type: RayObjectTypes
Special types such as O_SPHERE have no polygonal geometry, thus all values like padr and vadr are nullptr.

◆ flag_phong

Char flag_phong

Phong flag.

◆ flag_castshadow

Char flag_castshadow

Cast shadow flag.

◆ flag_receiveshadow

Char flag_receiveshadow

Receive shadow flag.

◆ flag_seenbycamera

Char flag_seenbycamera

Seen by camera flag.

◆ flag_compositing

Char flag_compositing

Compositing flag. Catches shadows.

◆ flag_selfshadow

Char flag_selfshadow

Self shadowing flag.

◆ flag_seenbygi

Char flag_seenbygi

Seen by GI flag.

◆ flag_matteobject

Char flag_matteobject

Object is matte object flag.

◆ flag_seenbydetails

Char flag_seenbydetails

Seen by details flag: OBJECTRESTRICTION.

◆ flag_instanced

Char flag_instanced

Object instanced flag.

◆ v2

Vector v2

Normal in Y direction.

◆ mp

Vector mp

Center of bounding box.

◆ rad

Vector rad

Radius of bounding box.

◆ visibility

Float visibility

Object visibility. This is the information about the object dissolve (see the Timeline and the Visibility track) in the range from 0.0 to 1.0.

◆ phong_angle

Float phong_angle

Phong angle.

◆ padr

Vector* padr

Address of the point array for the object. Can be nullptr for non O_POLYGON elements.

◆ pcnt

Int32 pcnt

Number of points for this object.

◆ vadr

const RayPolygon* vadr

Address of the polygons array. Can be nullptr for non O_POLYGON elements.

◆ vcnt

Int32 vcnt

Number of polygons for this object.

◆ texadr

TexList* texadr

Address of the texture array. Can be nullptr, always check.

It is not possible to access textures directly. Use VolumeData::GetTexData() instead.

◆ texcnt

Int32 texcnt

Number of textures.

◆ uvwadr

const void** uvwadr

Address of the UVW coordinate sets. Can be nullptr, always check.

It is not possible to access UVWs directly. Use VolumeData::GetUVW() instead.
The UVW sets range from 1 to uvwcnt-1.

◆ uvwcnt

Int32 uvwcnt

Number of UVW coordinate sets.

◆ rsadr

UInt32** rsadr

Address of the object's restriction. Can be nullptr, always check.

It is possible to access the restriction directly. The restriction sets range from 1 to rscnt-1.

◆ rscnt

Int32 rscnt

Number of object's restriction.

◆ link

BaseObject* link

Link to real Cinema 4D object. Can be nullptr, always check.

◆ mg

World matrix for the object.

◆ mg_inverse

Matrix64 mg_inverse

Inverse object matrix.

◆ motion_delta

Matrix motion_delta

Motion transformation matrix. This is oldmg * !newmg. The delta time is always 1/fps.

The VIDEOPOSTINFO::REQUEST_MOTIONMATRIX flag must be set for this value to be calculated.

◆ oblurlen

Float oblurlen

Object blur strength.

◆ aa_minlevel

Char aa_minlevel

Minimum antialiasing level.

◆ aa_maxlevel

Char aa_maxlevel

Maximum antialiasing level.

◆ aa_threshold

Float aa_threshold

Antialiasing threshold.

◆ channelid

Int16 channelid[12]

Object buffer IDs.

◆ texture_link

BaseObject* texture_link

Link to the real object that inherited the texture tag. Can be nullptr, always check.

◆ default_color

Vector default_color

Object default color.

◆ restriction_index

Int32 restriction_index

Index to light/object restriction table.

◆ edges

UChar* edges

Address of the edges array, one per polygon. Can be nullptr, always check.
Bits 0 to 3 indicate hiding of edge A to D, bits 4 to 7 indicate the broken phong property.

◆ psum

Int16* psum

Private. Phong normals. Access depends on mode.

◆ spd_displacement

Int32 spd_displacement

Sub-pixel displacement subdivision.

◆ spd_height

Float spd_height

Maximum displacement height, taking the strength into account.

◆ spd_keepedges

Char spd_keepedges

Sub-pixel displacement keep edge setting.

◆ spd_distribution

Char spd_distribution

Sub-pixel displacement best distribution setting.

◆ spd_round

Char spd_round

Sub-pixel displacement round setting.

◆ spd_roundcontour

Char spd_roundcontour

Sub-pixel displacement round contour setting.

◆ spd_hqremapping

Char spd_hqremapping

Sub-pixel displacement high quality remapping setting.

◆ spd_mapresult

Char spd_mapresult

Sub-pixel displacement map geometry setting.

◆ userdata

void* userdata

Only to be used by plugin renderers.

◆ rr

Compositing tag restriction.

◆ instance

The render instance data. If not nullptr the object is a render instance.

◆ tex_tsum

Int16** tex_tsum

Address of the precomputed tangents for each UV channel used in VolumeData::GetDUDV().
Just like the smooth normals, the way the data is stored depends on the mode (in same way as it does for phong). Can be nullptr, always check.
Only one tangent vector is stored. The second can be easily computed by cross product with the normal vector.

◆ flag_compositing_gi

Char flag_compositing_gi

New compositing flag for Sky mode as seen in the Compositing Tag.

◆ forceDefaultColor

Bool forceDefaultColor

force the use of default color. added for R20.