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
 
Vectorpadr
 
Int32 pcnt
 
const RayPolygonvadr
 
Int32 vcnt
 
TexList * texadr
 
Int32 texcnt
 
const void ** uvwadr
 
Int32 uvwcnt
 
UInt32 ** rsadr
 
Int32 rscnt
 
BaseObjectlink
 
Matrix64 mg
 
Matrix64 mg_inverse
 
Matrix motion_delta
 
Float oblurlen
 
Char aa_minlevel
 
Char aa_maxlevel
 
Float aa_threshold
 
Int16 channelid [12]
 
BaseObjecttexture_link
 
Vector default_color
 
Int32 restriction_index
 
UCharedges
 
Int16psum
 
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
 
RayObjectInstanceDatainstance
 
Int16 ** tex_tsum
 
Char flag_compositing_gi
 
Bool forceDefaultColor
 

Protected Member Functions

 RayObject ()
 

Constructor & Destructor Documentation

◆ RayObject()

RayObject ( )
protected

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.

Note
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.

Note
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.

Note
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.

Note
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.