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

#include <scene.h>

Inherits RefCountClass.

Inherited by SimpleSceneClass.

Public Types

enum  { SCENE_ID_UNKOWN = 0xFFFFFFFF , SCENE_ID_SCENE = 0 , SCENE_ID_SIMPLE , SCENE_ID_LAST = 0x0000FFFF }
 
enum  PolyRenderType { POINT , LINE , FILL }
 
enum  ExtraPassPolyRenderType { EXTRA_PASS_DISABLE , EXTRA_PASS_LINE , EXTRA_PASS_CLEAR_LINE }
 
enum  RegType { ON_FRAME_UPDATE = 0 , LIGHT , RELEASE }
 

Public Member Functions

 SceneClass (void)
 
virtual ~SceneClass (void)
 
virtual int Get_Scene_ID (void) const
 
virtual void Add_Render_Object (RenderObjClass *obj)
 
virtual void Remove_Render_Object (RenderObjClass *obj)
 
virtual SceneIteratorCreate_Iterator (bool onlyvisible=false)=0
 
virtual void Destroy_Iterator (SceneIterator *it)=0
 
virtual void Set_Ambient_Light (const Vector3 &color)
 
virtual const Vector3Get_Ambient_Light (void)
 
virtual void Set_Fog_Enable (bool set)
 
virtual bool Get_Fog_Enable (void)
 
virtual void Set_Fog_Color (const Vector3 &color)
 
virtual const Vector3Get_Fog_Color (void)
 
virtual void Set_Fog_Range (float start, float end)
 
virtual void Get_Fog_Range (float *start, float *end)
 
void Set_Polygon_Mode (PolyRenderType mode)
 
PolyRenderType Get_Polygon_Mode (void)
 
void Set_Extra_Pass_Polygon_Mode (ExtraPassPolyRenderType mode)
 
ExtraPassPolyRenderType Get_Extra_Pass_Polygon_Mode (void)
 
virtual void Register (RenderObjClass *obj, RegType for_what)=0
 
virtual void Unregister (RenderObjClass *obj, RegType for_what)=0
 
virtual float Compute_Point_Visibility (RenderInfoClass &rinfo, const Vector3 &point)
 
virtual void Save (ChunkSaveClass &csave)
 
virtual void Load (ChunkLoadClass &cload)
 
- 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)
 

Protected Member Functions

virtual void Render (RenderInfoClass &rinfo)
 
 SceneClass (const SceneClass &)
 
SceneClassoperator== (const SceneClass &)
 
- Protected Member Functions inherited from RefCountClass
virtual ~RefCountClass (void)
 

Protected Attributes

Vector3 AmbientLight
 
PolyRenderType PolyRenderMode
 
ExtraPassPolyRenderType ExtraPassPolyRenderMode
 
bool FogEnabled
 
Vector3 FogColor
 
float FogStart
 
float FogEnd
 

Friends

class WW3D
 

Additional Inherited Members

- 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)
 
- Public Attributes inherited from RefCountClass
RefCountNodeClass ActiveRefNode
 
ActiveRefStruct ActiveRefInfo
 
- Static Public Attributes inherited from RefCountClass
static RefCountListClass ActiveRefList
 

Detailed Description

SceneClass This is a bunch of render objects that define a 3D scene. The requirements of a SceneClass are:

  • The ablility to pass its renderobject's internal surrender representation to surrender when asked in the Render method.
  • The ability to add and remove render objects from the scene
  • The ability to create an iterator for the user which uses the SceneIterator interface and allows the user to iterate through all render objects or visible render objects in the scene.

The "registration" interface is used by certain render objects to enable extra processing. For example, particle emmitters/buffers need to be updated each frame regardless of whether they are visible so they are registered for "ON_FRAME_UPDATE" processing.

Definition at line 94 of file scene.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
SCENE_ID_UNKOWN 
SCENE_ID_SCENE 
SCENE_ID_SIMPLE 
SCENE_ID_LAST 

Definition at line 103 of file scene.h.

◆ ExtraPassPolyRenderType

Enumerator
EXTRA_PASS_DISABLE 
EXTRA_PASS_LINE 
EXTRA_PASS_CLEAR_LINE 

Definition at line 150 of file scene.h.

◆ PolyRenderType

Enumerator
POINT 
LINE 
FILL 

Definition at line 137 of file scene.h.

◆ RegType

Enumerator
ON_FRAME_UPDATE 
LIGHT 
RELEASE 

Definition at line 163 of file scene.h.

Constructor & Destructor Documentation

◆ SceneClass() [1/2]

SceneClass::SceneClass ( void )

Definition at line 128 of file scene.cpp.

◆ ~SceneClass()

SceneClass::~SceneClass ( void )
virtual

Definition at line 152 of file scene.cpp.

◆ SceneClass() [2/2]

SceneClass::SceneClass ( const SceneClass & )
protected

Member Function Documentation

◆ Add_Render_Object()

void SceneClass::Add_Render_Object ( RenderObjClass * obj)
virtual

Reimplemented in SimpleSceneClass.

Definition at line 173 of file scene.cpp.

◆ Compute_Point_Visibility()

virtual float SceneClass::Compute_Point_Visibility ( RenderInfoClass & rinfo,
const Vector3 & point )
inlinevirtual

Reimplemented in SimpleSceneClass.

Definition at line 176 of file scene.h.

◆ Create_Iterator()

virtual SceneIterator * SceneClass::Create_Iterator ( bool onlyvisible = false)
pure virtual

Implemented in SimpleSceneClass.

◆ Destroy_Iterator()

virtual void SceneClass::Destroy_Iterator ( SceneIterator * it)
pure virtual

Implemented in SimpleSceneClass.

◆ Get_Ambient_Light()

virtual const Vector3 & SceneClass::Get_Ambient_Light ( void )
inlinevirtual

Definition at line 120 of file scene.h.

◆ Get_Extra_Pass_Polygon_Mode()

ExtraPassPolyRenderType SceneClass::Get_Extra_Pass_Polygon_Mode ( void )
inline

Definition at line 158 of file scene.h.

◆ Get_Fog_Color()

virtual const Vector3 & SceneClass::Get_Fog_Color ( void )
inlinevirtual

Definition at line 129 of file scene.h.

◆ Get_Fog_Enable()

virtual bool SceneClass::Get_Fog_Enable ( void )
inlinevirtual

Definition at line 126 of file scene.h.

◆ Get_Fog_Range()

virtual void SceneClass::Get_Fog_Range ( float * start,
float * end )
inlinevirtual

Definition at line 132 of file scene.h.

◆ Get_Polygon_Mode()

PolyRenderType SceneClass::Get_Polygon_Mode ( void )
inline

Definition at line 145 of file scene.h.

◆ Get_Scene_ID()

virtual int SceneClass::Get_Scene_ID ( void ) const
inlinevirtual

Definition at line 110 of file scene.h.

◆ Load()

void SceneClass::Load ( ChunkLoadClass & cload)
virtual

Definition at line 286 of file scene.cpp.

◆ operator==()

SceneClass & SceneClass::operator== ( const SceneClass & )
protected

◆ Register()

virtual void SceneClass::Register ( RenderObjClass * obj,
RegType for_what )
pure virtual

Implemented in SimpleSceneClass.

◆ Remove_Render_Object()

void SceneClass::Remove_Render_Object ( RenderObjClass * obj)
virtual

Reimplemented in SimpleSceneClass, and SkeletonSceneClass.

Definition at line 195 of file scene.cpp.

◆ Render()

void SceneClass::Render ( RenderInfoClass & rinfo)
protectedvirtual

Reimplemented in RTS3DScene.

Definition at line 213 of file scene.cpp.

◆ Save()

void SceneClass::Save ( ChunkSaveClass & csave)
virtual

Definition at line 262 of file scene.cpp.

◆ Set_Ambient_Light()

virtual void SceneClass::Set_Ambient_Light ( const Vector3 & color)
inlinevirtual

Definition at line 119 of file scene.h.

◆ Set_Extra_Pass_Polygon_Mode()

void SceneClass::Set_Extra_Pass_Polygon_Mode ( ExtraPassPolyRenderType mode)
inline

Definition at line 157 of file scene.h.

◆ Set_Fog_Color()

virtual void SceneClass::Set_Fog_Color ( const Vector3 & color)
inlinevirtual

Definition at line 128 of file scene.h.

◆ Set_Fog_Enable()

virtual void SceneClass::Set_Fog_Enable ( bool set)
inlinevirtual

Definition at line 125 of file scene.h.

◆ Set_Fog_Range()

virtual void SceneClass::Set_Fog_Range ( float start,
float end )
inlinevirtual

Definition at line 131 of file scene.h.

◆ Set_Polygon_Mode()

void SceneClass::Set_Polygon_Mode ( PolyRenderType mode)
inline

Definition at line 144 of file scene.h.

◆ Unregister()

virtual void SceneClass::Unregister ( RenderObjClass * obj,
RegType for_what )
pure virtual

Implemented in SimpleSceneClass.

Friends And Related Symbol Documentation

◆ WW3D

friend class WW3D
friend

Definition at line 198 of file scene.h.

Member Data Documentation

◆ AmbientLight

Vector3 SceneClass::AmbientLight
protected

Definition at line 189 of file scene.h.

◆ ExtraPassPolyRenderMode

ExtraPassPolyRenderType SceneClass::ExtraPassPolyRenderMode
protected

Definition at line 191 of file scene.h.

◆ FogColor

Vector3 SceneClass::FogColor
protected

Definition at line 194 of file scene.h.

◆ FogEnabled

bool SceneClass::FogEnabled
protected

Definition at line 193 of file scene.h.

◆ FogEnd

float SceneClass::FogEnd
protected

Definition at line 196 of file scene.h.

◆ FogStart

float SceneClass::FogStart
protected

Definition at line 195 of file scene.h.

◆ PolyRenderMode

PolyRenderType SceneClass::PolyRenderMode
protected

Definition at line 190 of file scene.h.


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