Richard Boegli's CnC_Generals_Zero_Hour Fork WIP
This is documentation of Richard Boegil's Zero Hour Fork
 
Loading...
Searching...
No Matches
BoxRenderObjClass Class Referenceabstract

#include <boxrobj.h>

Inherits RenderObjClass.

Inherited by AABoxRenderObjClass, and OBBoxRenderObjClass.

Public Member Functions

 BoxRenderObjClass (void)
 
 BoxRenderObjClass (const W3dBoxStruct &def)
 
 BoxRenderObjClass (const BoxRenderObjClass &src)
 
BoxRenderObjClassoperator= (const BoxRenderObjClass &)
 
virtual int Get_Num_Polys (void) const
 
virtual const char * Get_Name (void) const
 
virtual void Set_Name (const char *name)
 
void Set_Color (const Vector3 &color)
 
void Set_Opacity (float opacity)
 
void Set_Local_Center_Extent (const Vector3 &center, const Vector3 &extent)
 
void Set_Local_Min_Max (const Vector3 &min, const Vector3 &max)
 
const Vector3Get_Local_Center (void)
 
const Vector3Get_Local_Extent (void)
 
- Public Member Functions inherited from RenderObjClass
 RenderObjClass (void)
 
 RenderObjClass (const RenderObjClass &src)
 
RenderObjClassoperator= (const RenderObjClass &)
 
virtual ~RenderObjClass (void)
 
virtual RenderObjClassClone (void) const =0
 
virtual int Class_ID (void) const
 
virtual const char * Get_Base_Model_Name (void) const
 
virtual void Set_Base_Model_Name (const char *name)
 
virtual void Render (RenderInfoClass &rinfo)=0
 
virtual void Special_Render (SpecialRenderInfoClass &rinfo)
 
virtual void On_Frame_Update ()
 
virtual void Restart (void)
 
virtual void Add (SceneClass *scene)
 
virtual void Remove (void)
 
virtual SceneClassGet_Scene (void)
 
virtual SceneClassPeek_Scene (void)
 
virtual void Set_Container (RenderObjClass *con)
 
virtual void Validate_Transform (void) const
 
RenderObjClassGet_Container (void) const
 
virtual void Set_Transform (const Matrix3D &m)
 
virtual void Set_Position (const Vector3 &v)
 
const Matrix3DGet_Transform (void) const
 
const Matrix3DGet_Transform (bool &is_transform_identity) const
 
const Matrix3DGet_Transform_No_Validity_Check (void) const
 
const Matrix3DGet_Transform_No_Validity_Check (bool &is_transform_identity) const
 
bool Is_Transform_Identity () const
 
bool Is_Transform_Identity_No_Validity_Check () const
 
Vector3 Get_Position (void) const
 
virtual void Notify_Added (SceneClass *scene)
 
virtual void Notify_Removed (SceneClass *scene)
 
virtual int Get_Num_Sub_Objects (void) const
 
virtual RenderObjClassGet_Sub_Object (int index) const
 
virtual int Add_Sub_Object (RenderObjClass *subobj)
 
virtual int Remove_Sub_Object (RenderObjClass *robj)
 
virtual RenderObjClassGet_Sub_Object_By_Name (const char *name, int *index=NULL) const
 
virtual int Get_Num_Sub_Objects_On_Bone (int boneindex) const
 
virtual RenderObjClassGet_Sub_Object_On_Bone (int index, int boneindex) const
 
virtual int Get_Sub_Object_Bone_Index (RenderObjClass *subobj) const
 
virtual int Get_Sub_Object_Bone_Index (int LodIndex, int ModelIndex) const
 
virtual int Add_Sub_Object_To_Bone (RenderObjClass *subobj, int bone_index)
 
virtual int Add_Sub_Object_To_Bone (RenderObjClass *subobj, const char *bname)
 
virtual int Remove_Sub_Objects_From_Bone (int boneindex)
 
virtual int Remove_Sub_Objects_From_Bone (const char *bname)
 
virtual void Update_Sub_Object_Transforms (void)
 
virtual void Set_Animation (void)
 
virtual void Set_Animation (HAnimClass *motion, float frame, int anim_mode=ANIM_MODE_MANUAL)
 
virtual void Set_Animation (HAnimClass *motion0, float frame0, HAnimClass *motion1, float frame1, float percentage)
 
virtual void Set_Animation (HAnimComboClass *anim_combo)
 
virtual HAnimClassPeek_Animation (void)
 
virtual int Get_Num_Bones (void)
 
virtual const char * Get_Bone_Name (int bone_index)
 
virtual int Get_Bone_Index (const char *bonename)
 
virtual const Matrix3DGet_Bone_Transform (const char *bonename)
 
virtual const Matrix3DGet_Bone_Transform (int boneindex)
 
virtual void Capture_Bone (int bindex)
 
virtual void Release_Bone (int bindex)
 
virtual bool Is_Bone_Captured (int bindex) const
 
virtual void Control_Bone (int bindex, const Matrix3D &objtm, bool world_space_translation=false)
 
virtual const HTreeClassGet_HTree (void) const
 
virtual bool Cast_Ray (RayCollisionTestClass &raytest)
 
virtual bool Cast_AABox (AABoxCollisionTestClass &boxtest)
 
virtual bool Cast_OBBox (OBBoxCollisionTestClass &boxtest)
 
virtual bool Intersect_AABox (AABoxIntersectionTestClass &boxtest)
 
virtual bool Intersect_OBBox (OBBoxIntersectionTestClass &boxtest)
 
virtual bool Intersect (IntersectionClass *Intersection, IntersectionResultClass *Final_Result)
 
virtual bool Intersect_Sphere (IntersectionClass *Intersection, IntersectionResultClass *Final_Result)
 
virtual bool Intersect_Sphere_Quick (IntersectionClass *Intersection, IntersectionResultClass *Final_Result)
 
virtual const SphereClassGet_Bounding_Sphere (void) const
 
virtual const AABoxClassGet_Bounding_Box (void) const
 
virtual void Get_Obj_Space_Bounding_Sphere (SphereClass &sphere) const
 
virtual void Get_Obj_Space_Bounding_Box (AABoxClass &box) const
 
virtual void Update_Obj_Space_Bounding_Volumes (void)
 
virtual void Prepare_LOD (CameraClass &camera)
 
virtual void Recalculate_Static_LOD_Factors (void)
 
virtual void Increment_LOD (void)
 
virtual void Decrement_LOD (void)
 
virtual float Get_Cost (void) const
 
virtual float Get_Value (void) const
 
virtual float Get_Post_Increment_Value (void) const
 
virtual void Set_LOD_Level (int lod)
 
virtual int Get_LOD_Level (void) const
 
virtual int Get_LOD_Count (void) const
 
virtual void Set_LOD_Bias (float bias)
 
virtual int Calculate_Cost_Value_Arrays (float screen_area, float *values, float *costs) const
 
virtual RenderObjClassGet_Current_LOD (void)
 
virtual bool Build_Dependency_List (DynamicVectorClass< StringClass > &file_list, bool recursive=true)
 
virtual bool Build_Texture_List (DynamicVectorClass< StringClass > &texture_file_list, bool recursive=true)
 
virtual void Create_Decal (DecalGeneratorClass *generator)
 
virtual void Delete_Decal (uint32 decal_id)
 
virtual MaterialInfoClassGet_Material_Info (void)
 
virtual void Set_User_Data (void *value, bool recursive=false)
 
virtual void * Get_User_Data ()
 
virtual int Get_Num_Snap_Points (void)
 
virtual void Get_Snap_Point (int index, Vector3 *set)
 
virtual float Get_Screen_Size (CameraClass &camera)
 
virtual void Scale (float scale)
 
virtual void Scale (float scalex, float scaley, float scalez)
 
virtual void Set_ObjectScale (float scale)
 
const float Get_ObjectScale (void) const
 
void Set_ObjectColor (unsigned int color)
 
const unsigned int Get_ObjectColor (void) const
 
virtual int Get_Sort_Level (void) const
 
virtual void Set_Sort_Level (int level)
 
virtual int Is_Really_Visible (void)
 
virtual int Is_Not_Hidden_At_All (void)
 
virtual int Is_Visible (void) const
 
virtual void Set_Visible (int onoff)
 
virtual int Is_Hidden (void) const
 
virtual void Set_Hidden (int onoff)
 
virtual int Is_Animation_Hidden (void) const
 
virtual void Set_Animation_Hidden (int onoff)
 
virtual int Is_Force_Visible (void) const
 
virtual void Set_Force_Visible (int onoff)
 
virtual int Is_Translucent (void) const
 
virtual void Set_Translucent (int onoff)
 
virtual int Is_Alpha (void) const
 
virtual void Set_Alpha (int onoff)
 
virtual int Is_Additive (void) const
 
virtual void Set_Additive (int onoff)
 
virtual int Get_Collision_Type (void) const
 
virtual void Set_Collision_Type (int type)
 
virtual bool Is_Complete (void)
 
virtual bool Is_In_Scene (void)
 
virtual float Get_Native_Screen_Size (void) const
 
virtual void Set_Native_Screen_Size (float screensize)
 
void Set_Sub_Objects_Match_LOD (int onoff)
 
int Is_Sub_Objects_Match_LOD_Enabled (void)
 
void Set_Sub_Object_Transforms_Dirty (bool onoff)
 
bool Are_Sub_Object_Transforms_Dirty (void)
 
void Set_Ignore_LOD_Cost (bool onoff)
 
bool Is_Ignoring_LOD_Cost (void)
 
void Set_Is_Self_Shadowed ()
 
void Unset_Is_Self_Shadowed ()
 
int Is_Self_Shadowed () const
 
virtual const PersistFactoryClassGet_Factory (void) const
 
virtual bool Save (ChunkSaveClass &csave)
 
virtual bool Load (ChunkLoadClass &cload)
 
RenderHookClassGet_Render_Hook (void)
 
void Set_Render_Hook (RenderHookClass *hook)
 
- Public Member Functions inherited from RefCountClass
 RefCountClass (void)
 
 RefCountClass (const RefCountClass &)
 
void Add_Ref (void) const
 
WWINLINE void Release_Ref (void) const
 
int Num_Refs (void) const
 
virtual void Delete_This (void)
 
- Public Member Functions inherited from PostLoadableClass
 PostLoadableClass (void)
 
virtual ~PostLoadableClass (void)
 
virtual void On_Post_Load (void)
 
bool Is_Post_Load_Registered (void)
 
void Set_Post_Load_Registered (bool onoff)
 
- Public Member Functions inherited from MultiListObjectClass
 MultiListObjectClass (void)
 
virtual ~MultiListObjectClass (void)
 
MultiListNodeClassGet_List_Node () const
 
void Set_List_Node (MultiListNodeClass *node)
 

Static Public Member Functions

static void Init (void)
 
static void Shutdown (void)
 
static void Set_Box_Display_Mask (int mask)
 
static int Get_Box_Display_Mask (void)
 
- Static Public Member Functions inherited from RefCountClass
static int Total_Refs (void)
 
static RefCountClassAdd_Active_Ref (RefCountClass *obj)
 
static RefCountClassSet_Ref_Owner (RefCountClass *obj, char *file, int line)
 
static void Remove_Active_Ref (RefCountClass *obj)
 
static bool Validate_Active_Ref (RefCountClass *obj)
 

Protected Member Functions

virtual void update_cached_box (void)=0
 
void render_box (RenderInfoClass &rinfo, const Vector3 &center, const Vector3 &extent)
 
void vis_render_box (SpecialRenderInfoClass &rinfo, const Vector3 &center, const Vector3 &extent)
 
- Protected Member Functions inherited from RenderObjClass
virtual void Add_Dependencies_To_List (DynamicVectorClass< StringClass > &file_list, bool textures_only=false)
 
virtual void Update_Cached_Bounding_Volumes (void) const
 
virtual void Update_Sub_Object_Bits (void)
 
bool Bounding_Volumes_Valid (void) const
 
void Invalidate_Cached_Bounding_Volumes (void) const
 
void Validate_Cached_Bounding_Volumes (void) const
 
- Protected Member Functions inherited from RefCountClass
virtual ~RefCountClass (void)
 

Protected Attributes

char Name [2 *W3D_NAME_LEN]
 
Vector3 Color
 
Vector3 ObjSpaceCenter
 
Vector3 ObjSpaceExtent
 
float Opacity
 
- Protected Attributes inherited from RenderObjClass
unsigned long Bits
 
Matrix3D Transform
 
float ObjectScale
 
unsigned int ObjectColor
 
SphereClass CachedBoundingSphere
 
AABoxClass CachedBoundingBox
 
float NativeScreenSize
 
bool IsTransformIdentity
 
SceneClassScene
 
RenderObjClassContainer
 
void * User_Data
 
RenderHookClassRenderHook
 

Static Protected Attributes

static bool IsInitted = false
 
static int DisplayMask = 0
 

Additional Inherited Members

- Public Types inherited from RenderObjClass
enum  { USER_DATA_MATERIAL_OVERRIDE = 0x01234567 }
 
enum  {
  CLASSID_UNKNOWN = 0xFFFFFFFF , CLASSID_MESH = 0 , CLASSID_HMODEL , CLASSID_DISTLOD ,
  CLASSID_PREDLODGROUP , CLASSID_TILEMAP , CLASSID_IMAGE3D , CLASSID_LINE3D ,
  CLASSID_BITMAP2D , CLASSID_CAMERA , CLASSID_DYNAMESH , CLASSID_DYNASCREENMESH ,
  CLASSID_TEXTDRAW , CLASSID_FOG , CLASSID_LAYERFOG , CLASSID_LIGHT ,
  CLASSID_PARTICLEEMITTER , CLASSID_PARTICLEBUFFER , CLASSID_SCREENPOINTGROUP , CLASSID_VIEWPOINTGROUP ,
  CLASSID_WORLDPOINTGROUP , CLASSID_TEXT2D , CLASSID_TEXT3D , CLASSID_NULL ,
  CLASSID_COLLECTION , CLASSID_FLARE , CLASSID_HLOD , CLASSID_AABOX ,
  CLASSID_OBBOX , CLASSID_SEGLINE , CLASSID_SPHERE , CLASSID_RING ,
  CLASSID_BOUNDFOG , CLASSID_DAZZLE , CLASSID_SOUND , CLASSID_SEGLINETRAIL ,
  CLASSID_LAND , CLASSID_SHDMESH , CLASSID_LAST = 0x0000FFFF
}
 
enum  AnimMode {
  ANIM_MODE_MANUAL = 0 , ANIM_MODE_LOOP , ANIM_MODE_ONCE , ANIM_MODE_LOOP_PINGPONG ,
  ANIM_MODE_LOOP_BACKWARDS , ANIM_MODE_ONCE_BACKWARDS
}
 
- Public Attributes inherited from RefCountClass
RefCountNodeClass ActiveRefNode
 
ActiveRefStruct ActiveRefInfo
 
- Static Public Attributes inherited from RenderObjClass
static const float AT_MIN_LOD = FLT_MAX
 
static const float AT_MAX_LOD = -1.0f
 
- Static Public Attributes inherited from RefCountClass
static RefCountListClass ActiveRefList
 
- Protected Types inherited from RenderObjClass
enum  {
  COLL_TYPE_MASK = 0x000000FF , IS_VISIBLE = 0x00000100 , IS_NOT_HIDDEN = 0x00000200 , IS_NOT_ANIMATION_HIDDEN = 0x00000400 ,
  IS_FORCE_VISIBLE = 0x00000800 , BOUNDING_VOLUMES_VALID = 0x00002000 , IS_TRANSLUCENT = 0x00004000 , IGNORE_LOD_COST = 0x00008000 ,
  SUBOBJS_MATCH_LOD = 0x00010000 , SUBOBJ_TRANSFORMS_DIRTY = 0x00020000 , IS_ALPHA = 0x00040000 , IS_ADDITIVE = 0x00100000 ,
  IS_SELF_SHADOWED = 0x00080000 , IS_CHEATER = 0x00100000 , IS_REALLY_VISIBLE = IS_VISIBLE | IS_NOT_HIDDEN | IS_NOT_ANIMATION_HIDDEN , IS_NOT_HIDDEN_AT_ALL = IS_NOT_HIDDEN | IS_NOT_ANIMATION_HIDDEN ,
  DEFAULT_BITS = COLL_TYPE_ALL | IS_NOT_HIDDEN | IS_NOT_ANIMATION_HIDDEN
}
 

Detailed Description

BoxRenderObjClass: base class for AABox and OBBox collision boxes

NOTE: these render objects were designed from the start to be used for collision boxes. They are designed to normally never render unless you set the display mask and then, all boxes of that type will render. The display mask is 'AND'ed with the collision bits in the base render object class to determine if the box should be rendered. WW3D provides an interface for setting this mask in your app.

NOTE2: AABoxRenderObjClass is an axis-aligned box which will be positioned at a world-space offset (its local center) from the origin of the transform. This is done because AABoxes are used for rotationally invariant collision detection so we don't want the boxes to move around as the object rotates. For this reason, any AABoxes you use in a hierarchical model should be attached to the root and be constructed symmetrically...

NOTE3: OBBoxRenderObjClass is an oriented box which is aligned with its transform but can have a center point that is offest from the transform's origin.

Definition at line 75 of file boxrobj.h.

Constructor & Destructor Documentation

◆ BoxRenderObjClass() [1/3]

BoxRenderObjClass::BoxRenderObjClass ( void )

Definition at line 182 of file boxrobj.cpp.

◆ BoxRenderObjClass() [2/3]

BoxRenderObjClass::BoxRenderObjClass ( const W3dBoxStruct & def)

Definition at line 204 of file boxrobj.cpp.

◆ BoxRenderObjClass() [3/3]

BoxRenderObjClass::BoxRenderObjClass ( const BoxRenderObjClass & src)

Definition at line 228 of file boxrobj.cpp.

Member Function Documentation

◆ Get_Box_Display_Mask()

int BoxRenderObjClass::Get_Box_Display_Mask ( void )
static

Definition at line 426 of file boxrobj.cpp.

◆ Get_Local_Center()

const Vector3 & BoxRenderObjClass::Get_Local_Center ( void )
inline

Definition at line 100 of file boxrobj.h.

◆ Get_Local_Extent()

const Vector3 & BoxRenderObjClass::Get_Local_Extent ( void )
inline

Definition at line 101 of file boxrobj.h.

◆ Get_Name()

const char * BoxRenderObjClass::Get_Name ( void ) const
virtual

Reimplemented from RenderObjClass.

Definition at line 289 of file boxrobj.cpp.

◆ Get_Num_Polys()

int BoxRenderObjClass::Get_Num_Polys ( void ) const
virtual

Reimplemented from RenderObjClass.

Definition at line 271 of file boxrobj.cpp.

◆ Init()

void BoxRenderObjClass::Init ( void )
static

Definition at line 347 of file boxrobj.cpp.

◆ operator=()

BoxRenderObjClass & BoxRenderObjClass::operator= ( const BoxRenderObjClass & that)

Definition at line 246 of file boxrobj.cpp.

◆ render_box()

void BoxRenderObjClass::render_box ( RenderInfoClass & rinfo,
const Vector3 & center,
const Vector3 & extent )
protected

Definition at line 444 of file boxrobj.cpp.

◆ Set_Box_Display_Mask()

void BoxRenderObjClass::Set_Box_Display_Mask ( int mask)
static

Definition at line 408 of file boxrobj.cpp.

◆ Set_Color()

void BoxRenderObjClass::Set_Color ( const Vector3 & color)

Definition at line 327 of file boxrobj.cpp.

◆ Set_Local_Center_Extent()

void BoxRenderObjClass::Set_Local_Center_Extent ( const Vector3 & center,
const Vector3 & extent )
inline

Definition at line 119 of file boxrobj.h.

◆ Set_Local_Min_Max()

void BoxRenderObjClass::Set_Local_Min_Max ( const Vector3 & min,
const Vector3 & max )
inline

Definition at line 126 of file boxrobj.h.

◆ Set_Name()

void BoxRenderObjClass::Set_Name ( const char * name)
virtual

Reimplemented from RenderObjClass.

Definition at line 307 of file boxrobj.cpp.

◆ Set_Opacity()

void BoxRenderObjClass::Set_Opacity ( float opacity)
inline

Definition at line 89 of file boxrobj.h.

◆ Shutdown()

void BoxRenderObjClass::Shutdown ( void )
static

Definition at line 384 of file boxrobj.cpp.

◆ update_cached_box()

virtual void BoxRenderObjClass::update_cached_box ( void )
protectedpure virtual

◆ vis_render_box()

void BoxRenderObjClass::vis_render_box ( SpecialRenderInfoClass & rinfo,
const Vector3 & center,
const Vector3 & extent )
protected

Definition at line 536 of file boxrobj.cpp.

Member Data Documentation

◆ Color

Vector3 BoxRenderObjClass::Color
protected

Definition at line 110 of file boxrobj.h.

◆ DisplayMask

int BoxRenderObjClass::DisplayMask = 0
staticprotected

Definition at line 116 of file boxrobj.h.

◆ IsInitted

bool BoxRenderObjClass::IsInitted = false
staticprotected

Definition at line 115 of file boxrobj.h.

◆ Name

char BoxRenderObjClass::Name[2 *W3D_NAME_LEN]
protected

Definition at line 109 of file boxrobj.h.

◆ ObjSpaceCenter

Vector3 BoxRenderObjClass::ObjSpaceCenter
protected

Definition at line 111 of file boxrobj.h.

◆ ObjSpaceExtent

Vector3 BoxRenderObjClass::ObjSpaceExtent
protected

Definition at line 112 of file boxrobj.h.

◆ Opacity

float BoxRenderObjClass::Opacity
protected

Definition at line 113 of file boxrobj.h.


The documentation for this class was generated from the following files: