Custom render object that draws tracks on the terrain. More...
#include <W3DTerrainTracks.h>
Inherits W3DMPO, and RenderObjClass.
Classes | |
| struct | edgeInfo |
Public Member Functions | |
| TerrainTracksRenderObjClass (void) | |
| ~TerrainTracksRenderObjClass (void) | |
| virtual RenderObjClass * | Clone (void) const |
| virtual int | Class_ID (void) const |
| virtual void | Render (RenderInfoClass &rinfo) |
| virtual void | Get_Obj_Space_Bounding_Sphere (SphereClass &sphere) const |
| virtual void | Get_Obj_Space_Bounding_Box (AABoxClass &aabox) const |
| Int | freeTerrainTracksResources (void) |
| free W3D assets used for this track | |
| void | init (Real width, Real length, const Char *texturename) |
| allocate W3D resources and set size | |
| void | addEdgeToTrack (Real x, Real y) |
| add a new segment to the track | |
| void | addCapEdgeToTrack (Real x, Real y) |
| cap the existing segment so we can resume at an unconnected position. | |
| void | setAirborne (void) |
| Starts a new section of track, generally after going airborne. | |
| void | setOwnerDrawable (const Drawable *owner) |
Public Member Functions inherited from W3DMPO | |
| virtual | ~W3DMPO () |
Public Member Functions inherited from RenderObjClass | |
| RenderObjClass (void) | |
| RenderObjClass (const RenderObjClass &src) | |
| RenderObjClass & | operator= (const RenderObjClass &) |
| virtual | ~RenderObjClass (void) |
| virtual const char * | Get_Name (void) const |
| virtual void | Set_Name (const char *name) |
| virtual const char * | Get_Base_Model_Name (void) const |
| virtual void | Set_Base_Model_Name (const char *name) |
| virtual int | Get_Num_Polys (void) const |
| 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 SceneClass * | Get_Scene (void) |
| virtual SceneClass * | Peek_Scene (void) |
| virtual void | Set_Container (RenderObjClass *con) |
| virtual void | Validate_Transform (void) const |
| RenderObjClass * | Get_Container (void) const |
| virtual void | Set_Transform (const Matrix3D &m) |
| virtual void | Set_Position (const Vector3 &v) |
| const Matrix3D & | Get_Transform (void) const |
| const Matrix3D & | Get_Transform (bool &is_transform_identity) const |
| const Matrix3D & | Get_Transform_No_Validity_Check (void) const |
| const Matrix3D & | Get_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 RenderObjClass * | Get_Sub_Object (int index) const |
| virtual int | Add_Sub_Object (RenderObjClass *subobj) |
| virtual int | Remove_Sub_Object (RenderObjClass *robj) |
| virtual RenderObjClass * | Get_Sub_Object_By_Name (const char *name, int *index=NULL) const |
| virtual int | Get_Num_Sub_Objects_On_Bone (int boneindex) const |
| virtual RenderObjClass * | Get_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 HAnimClass * | Peek_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 Matrix3D & | Get_Bone_Transform (const char *bonename) |
| virtual const Matrix3D & | Get_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 HTreeClass * | Get_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 SphereClass & | Get_Bounding_Sphere (void) const |
| virtual const AABoxClass & | Get_Bounding_Box (void) 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 RenderObjClass * | Get_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 MaterialInfoClass * | Get_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 PersistFactoryClass & | Get_Factory (void) const |
| virtual bool | Save (ChunkSaveClass &csave) |
| virtual bool | Load (ChunkLoadClass &cload) |
| RenderHookClass * | Get_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) |
| MultiListNodeClass * | Get_List_Node () const |
| void | Set_List_Node (MultiListNodeClass *node) |
Protected Attributes | |
| TextureClass * | m_stageZeroTexture |
| primary texture | |
| SphereClass | m_boundingSphere |
| bounding sphere of TerrainTracks | |
| AABoxClass | m_boundingBox |
| bounding box of TerrainTracks | |
| Int | m_activeEdgeCount |
| number of active edges in segment list | |
| Int | m_totalEdgesAdded |
| number of edges ever added to this track | |
| const Drawable * | m_ownerDrawable |
| logical object that's laying down tread marks. | |
| edgeInfo | m_edges [MAX_TRACK_EDGE_COUNT] |
| edges at each segment break | |
| Vector3 | m_lastAnchor |
| location of last edge center | |
| Int | m_bottomIndex |
| points at oldest edge on track | |
| Int | m_topIndex |
| points to newest edge on track | |
| Bool | m_haveAnchor |
| set to false until first edge is added | |
| Bool | m_bound |
| object is bound to owner and accepts new edges | |
| Real | m_width |
| track width | |
| Real | m_length |
| length of each track segment | |
| Bool | m_airborne |
| Did the vehicle bounce up into the air? | |
| Bool | m_haveCap |
| is the segment capped so we can stop and resume at new location. | |
| TerrainTracksRenderObjClass * | m_nextSystem |
| next track system | |
| TerrainTracksRenderObjClass * | m_prevSystem |
| previous track system | |
Protected Attributes inherited from RenderObjClass | |
| unsigned long | Bits |
| Matrix3D | Transform |
| float | ObjectScale |
| unsigned int | ObjectColor |
| SphereClass | CachedBoundingSphere |
| AABoxClass | CachedBoundingBox |
| float | NativeScreenSize |
| bool | IsTransformIdentity |
| SceneClass * | Scene |
| RenderObjClass * | Container |
| void * | User_Data |
| RenderHookClass * | RenderHook |
Friends | |
| class | TerrainTracksRenderObjClassSystem |
Custom render object that draws tracks on the terrain.
This render object handles drawing tracks left by objects moving on the terrain.
Definition at line 50 of file W3DTerrainTracks.h.
| TerrainTracksRenderObjClass::TerrainTracksRenderObjClass | ( | void | ) |
Constructor. Just nulls out some variables.
Definition at line 85 of file W3DTerrainTracks.cpp.
| TerrainTracksRenderObjClass::~TerrainTracksRenderObjClass | ( | void | ) |
Destructor. Releases w3d assets.
Definition at line 75 of file W3DTerrainTracks.cpp.
cap the existing segment so we can resume at an unconnected position.
Cap the current track (adding an feathered edge) so we're ready to resume the track at a new location. Used by objects entering FOW where we need to stop adding edges to the track when they enter the fog boundary but resume elsewhere if they become visible again.
Definition at line 188 of file W3DTerrainTracks.cpp.
add a new segment to the track
Try to add an additional segment to track mark. Will do nothing if distance from last edge is too small. Will overwrite the oldest edge if maximum track length is reached. Oldest edges should by faded out by that time.
Definition at line 310 of file W3DTerrainTracks.cpp.
|
virtual |
returns the class id, so the scene can tell what kind of render object it has.
Reimplemented from RenderObjClass.
Definition at line 124 of file W3DTerrainTracks.cpp.
|
virtual |
Not used, but required virtual method.
Implements RenderObjClass.
Definition at line 134 of file W3DTerrainTracks.cpp.
| Int TerrainTracksRenderObjClass::freeTerrainTracksResources | ( | void | ) |
free W3D assets used for this track
Free any W3D resources associated with this object
Definition at line 145 of file W3DTerrainTracks.cpp.
|
virtual |
WW3D method that returns object bounding box used in collision detection
Reimplemented from RenderObjClass.
Definition at line 114 of file W3DTerrainTracks.cpp.
|
virtual |
WW3D method that returns object bounding sphere used in frustum culling
Reimplemented from RenderObjClass.
Definition at line 104 of file W3DTerrainTracks.cpp.
allocate W3D resources and set size
Setup size settings and allocate W3D texture
Definition at line 164 of file W3DTerrainTracks.cpp.
|
virtual |
Does nothing. Just increments a counter of how many track edges were requested for rendering this frame. Actual rendering is done in flush().
Implements RenderObjClass.
Definition at line 429 of file W3DTerrainTracks.cpp.
|
inline |
Starts a new section of track, generally after going airborne.
Definition at line 74 of file W3DTerrainTracks.h.
|
inline |
Definition at line 75 of file W3DTerrainTracks.h.
|
friend |
Definition at line 54 of file W3DTerrainTracks.h.
|
protected |
number of active edges in segment list
Definition at line 81 of file W3DTerrainTracks.h.
|
protected |
Did the vehicle bounce up into the air?
Definition at line 100 of file W3DTerrainTracks.h.
|
protected |
points at oldest edge on track
Definition at line 94 of file W3DTerrainTracks.h.
|
protected |
object is bound to owner and accepts new edges
Definition at line 97 of file W3DTerrainTracks.h.
|
protected |
bounding box of TerrainTracks
Definition at line 80 of file W3DTerrainTracks.h.
|
protected |
bounding sphere of TerrainTracks
Definition at line 79 of file W3DTerrainTracks.h.
|
protected |
edges at each segment break
Definition at line 92 of file W3DTerrainTracks.h.
|
protected |
set to false until first edge is added
Definition at line 96 of file W3DTerrainTracks.h.
|
protected |
is the segment capped so we can stop and resume at new location.
Definition at line 101 of file W3DTerrainTracks.h.
|
protected |
location of last edge center
Definition at line 93 of file W3DTerrainTracks.h.
|
protected |
length of each track segment
Definition at line 99 of file W3DTerrainTracks.h.
|
protected |
next track system
Definition at line 102 of file W3DTerrainTracks.h.
|
protected |
logical object that's laying down tread marks.
Definition at line 83 of file W3DTerrainTracks.h.
|
protected |
previous track system
Definition at line 103 of file W3DTerrainTracks.h.
|
protected |
primary texture
Definition at line 78 of file W3DTerrainTracks.h.
|
protected |
points to newest edge on track
Definition at line 95 of file W3DTerrainTracks.h.
|
protected |
number of edges ever added to this track
Definition at line 82 of file W3DTerrainTracks.h.
|
protected |
track width
Definition at line 98 of file W3DTerrainTracks.h.