DXGfxLib.Scene Class Reference

Inherits DXGfxLib::IAmScriptable, and DXGfxLib::IAmScriptable.

Inherited by DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Collaboration diagram for DXGfxLib.Scene:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Scene ()
 The constructor ensure we have a valid rootNode to which we will attach future nodes and scene objects.
void Initialize ()
virtual void Dispose ()
 Here we should dispose everything related to our scene !!
virtual void GetPrepared ()
 Call this if you know you have your objects in scene content but that the node are not attached to the scene graph yet!! For example this is called just after deserializing a whole scene.
void DetachAll ()
 A scene do not manage itself the ressources. This method only ensure that everything that has been attached to the scene is detached. Calling Dispose on the ressources that were attached to the scene is the responsability of the code that created the ressources.
void CleanOnLostDevice ()
 As this class manage a D3D state block we have to have the below method to Dispose it in case the Device is Lost.
void CleanOnDestroyDevice ()
 If the device is destroyed we also need to clean our D3D state block so we call the previous method from here.
virtual void Update (double appTime, float elapsedTime, Frustrum frustrum, List< IDrawable > objectsToBeRendered)
 This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.
void Update (Device d3ddevice, Matrix matview, Matrix matproj, double appTime, float elapsedTime)
 This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.
virtual void RenderScene (Device d3ddevice, Matrix matView, Matrix matProj)
 Sometime you might want to get everything in the scene to be rendered. with a specific matView and matProj.
virtual void Draw (Device d3ddevice, Frustrum frustrum)
virtual void RenderScene (Device d3ddevice, Frustrum frustrum)
 This will draw all objects in the list of objects to be rendered. Billboards objects are sorted based on their distance to the camera in order to get correct display of their associated textures with alpha.
virtual SceneObject Attach (FrameworkMesh meshToAttach)
 When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.
virtual SceneObject AttachWithLOD (Device d3ddevice, FrameworkMesh meshToAttach)
 When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.
virtual void Attach (SceneObject sceneObj)
 You can also create Scene object yourself and then instruct the scene that it has to manage them. Please see the description of the first Attach method. Once again the lifetime of the scene object is not manage by the scene. When the scene is instructed to deal with a scene object it only check if the thing needs to be rendered and send it to the display if it does.
virtual void Detach (SceneNode sceneNodeToDetach)
 At some point you might want to remove a scene node from the scene graph. This is the method to be used to achieve that.
virtual bool Collide (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects)
 This method check for collisions.
virtual bool CollideSolid (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects)
 This method check for collisions. Only scene objects flaged as solid are considered !
virtual bool Collide (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects, System.Type desiredType)
 This method check for collisions against entities of the specified type.
virtual bool CollideSolid (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects, System.Type desiredType)
 This method check for collisions against entities of the specified type. Only scene object flagged as solid are considered.
virtual bool Intersect (Vector3 rayOri, Vector3 rayDir, ref List< SceneObject > collidingSceneObjects)
 This method check if the provided ray in 3D space do intersect with scene objects attached to the scene. If it does the method return true and the object with which the ray intersect are in the collidingSceneObjects list. There is no guarantee at all that the first object in that list is the object nearer to the camera. In fact most of the time it won't be the case. The first object in the list is in fact the first object of the graph that was found to intersect with the ray while the graph was traversed.
virtual bool Intersect (Vector3 rayOri, Vector3 rayDir, ref List< SceneObject > collidingSceneObject, System.Type desiredType)
 This is the same as the above intersect method except that you can also specify the kind of scene object you want to get back.
virtual bool Pick (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos, ref SceneObject[] pickedObjects, ref IntersectInformation[] hits)
 Ok this method gives you back the objects under the provided screenPos. Internally this does use Intersect.
virtual SceneObject PickObject (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos)
 This method sends back the object under screenPos that is nearer to the point click on the near plane of the viewing frustrum.
virtual SceneObject PickObject (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos, Type desiredType)
 Same as above except you can query for a specific scene object type.
void SetScript (Script script)
 THis method will use the Script instance passed as parameter and will set as the Script associated with this scene node.
Script GetScript ()
 This method will return the Script instance associated with the scene node.
void SetTimeLine (TimeLine timeLine)
 Same as SetScript but for timelines.
TimeLine GetTimeLine ()
 Will return the instance of the TimeLine class associated with this scene node.
virtual void Evaluate (double appTime, float elapsedTime)
 The evaluate method will ask the script and the timeline to evaluate themselves. This is a form of update but the work is different from what is performed in the update method. The update method will update geometric information (bounding boxes....). The evaluate method will 'update' the node as far as the logic (script and timeline) associated with it is concerned. This method is marked virtual because you could create classes deriving from SceneNode that will implement their own logic through different means than the script and the timeline. Then in these derive classes you will have the opportunity to update the node logic and values through this method.
void Reset ()
 Scripts and timeline have reset methods. They will be called when the simulation is reseted (stoped and restarted from the beginning).
void AddEvent (Event evt)
 This method will add events to the list of events of our scene node.
void RemoveEvent (Event evt)
 This method is the pendant of the RemoveEvent.
virtual void Clicked (double appTime, float elapsedTime)
 This method will be called on the Scene object if canBeClicked is true and if someone click on this object!
virtual void Collision (double appTime, float elapsedTime, SceneObject collidingObject)
 This method will be called if another scene object collides with this one and checkForCollision is true. TODO: Add code to avoid sceneobject to interpenatre !
Event[] popEventsByName (string name)
 Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.
Event[] popEventsByType (string type)
 Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.
Event[] peekEventsByName (string name)
 Like popEventsByName except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.
Event[] peekEventsByType (string type)
 Like popEventsByType except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.
virtual Vector3 PickEnvironmentPosition (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos)
 This doesn't return anything interesting. Still derived class will most probalbly send more interesting data. This is highly dependent on the type of scene which is why the base class doesn't do anything in that specific method.
 Scene ()
 The constructor ensure we have a valid rootNode to which we will attach future nodes and scene objects.
void Initialize ()
virtual void Dispose ()
 Here we should dispose everything related to our scene !!
virtual void GetPrepared ()
 Call this if you know you have your objects in scene content but that the node are not attached to the scene graph yet!! For example this is called just after deserializing a whole scene.
void DetachAll ()
 A scene do not manage itself the ressources. This method only ensure that everything that has been attached to the scene is detached. Calling Dispose on the ressources that were attached to the scene is the responsability of the code that created the ressources.
void CleanOnLostDevice ()
 As this class manage a D3D state block we have to have the below method to Dispose it in case the Device is Lost.
void CleanOnDestroyDevice ()
 If the device is destroyed we also need to clean our D3D state block so we call the previous method from here.
virtual void Update (double appTime, float elapsedTime, Frustrum frustrum, List< IDrawable > objectsToBeRendered)
 This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.
void Update (Device d3ddevice, Matrix matview, Matrix matproj, double appTime, float elapsedTime)
 This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.
virtual void RenderScene (Device d3ddevice, Matrix matView, Matrix matProj)
 Sometime you might want to get everything in the scene to be rendered. with a specific matView and matProj.
virtual void Draw (Device d3ddevice, Frustrum frustrum)
virtual void RenderScene (Device d3ddevice, Frustrum frustrum)
 This will draw all objects in the list of objects to be rendered. Billboards objects are sorted based on their distance to the camera in order to get correct display of their associated textures with alpha.
virtual SceneObject Attach (FrameworkMesh meshToAttach)
 When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.
virtual SceneObject AttachWithLOD (Device d3ddevice, FrameworkMesh meshToAttach)
 When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.
virtual void Attach (SceneObject sceneObj)
 You can also create Scene object yourself and then instruct the scene that it has to manage them. Please see the description of the first Attach method. Once again the lifetime of the scene object is not manage by the scene. When the scene is instructed to deal with a scene object it only check if the thing needs to be rendered and send it to the display if it does.
virtual void Detach (SceneNode sceneNodeToDetach)
 At some point you might want to remove a scene node from the scene graph. This is the method to be used to achieve that.
virtual bool Collide (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects)
 This method check for collisions.
virtual bool CollideSolid (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects)
 This method check for collisions. Only scene objects flaged as solid are considered !
virtual bool Collide (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects, System.Type desiredType)
 This method check for collisions against entities of the specified type.
virtual bool CollideSolid (SceneNode sceneNode, ref List< SceneObject > collidingSceneObjects, System.Type desiredType)
 This method check for collisions against entities of the specified type. Only scene object flagged as solid are considered.
virtual bool Intersect (Vector3 rayOri, Vector3 rayDir, ref List< SceneObject > collidingSceneObjects)
 This method check if the provided ray in 3D space do intersect with scene objects attached to the scene. If it does the method return true and the object with which the ray intersect are in the collidingSceneObjects list. There is no guarantee at all that the first object in that list is the object nearer to the camera. In fact most of the time it won't be the case. The first object in the list is in fact the first object of the graph that was found to intersect with the ray while the graph was traversed.
virtual bool Intersect (Vector3 rayOri, Vector3 rayDir, ref List< SceneObject > collidingSceneObject, System.Type desiredType)
 This is the same as the above intersect method except that you can also specify the kind of scene object you want to get back.
virtual bool Pick (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos, ref SceneObject[] pickedObjects, ref IntersectInformation[] hits)
 Ok this method gives you back the objects under the provided screenPos. Internally this does use Intersect.
virtual SceneObject PickObject (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos)
 This method sends back the object under screenPos that is nearer to the point click on the near plane of the viewing frustrum.
virtual SceneObject PickObject (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos, Type desiredType)
 Same as above except you can query for a specific scene object type.
void SetScript (Script script)
 THis method will use the Script instance passed as parameter and will set as the Script associated with this scene node.
Script GetScript ()
 This method will return the Script instance associated with the scene node.
void SetTimeLine (TimeLine timeLine)
 Same as SetScript but for timelines.
TimeLine GetTimeLine ()
 Will return the instance of the TimeLine class associated with this scene node.
virtual void Evaluate (double appTime, float elapsedTime)
 The evaluate method will ask the script and the timeline to evaluate themselves. This is a form of update but the work is different from what is performed in the update method. The update method will update geometric information (bounding boxes....). The evaluate method will 'update' the node as far as the logic (script and timeline) associated with it is concerned. This method is marked virtual because you could create classes deriving from SceneNode that will implement their own logic through different means than the script and the timeline. Then in these derive classes you will have the opportunity to update the node logic and values through this method.
void Reset ()
 Scripts and timeline have reset methods. They will be called when the simulation is reseted (stoped and restarted from the beginning).
void AddEvent (Event evt)
 This method will add events to the list of events of our scene node.
void RemoveEvent (Event evt)
 This method is the pendant of the RemoveEvent.
virtual void Clicked (double appTime, float elapsedTime)
 This method will be called on the Scene object if canBeClicked is true and if someone click on this object!
virtual void Collision (double appTime, float elapsedTime, SceneObject collidingObject)
 This method will be called if another scene object collides with this one and checkForCollision is true. TODO: Add code to avoid sceneobject to interpenatre !
Event[] popEventsByName (string name)
 Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.
Event[] popEventsByType (string type)
 Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.
Event[] peekEventsByName (string name)
 Like popEventsByName except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.
Event[] peekEventsByType (string type)
 Like popEventsByType except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.
virtual Vector3 PickEnvironmentPosition (Viewport viewport, Matrix proj, Matrix view, Vector2 screenPos)
 This doesn't return anything interesting. Still derived class will most probalbly send more interesting data. This is highly dependent on the type of scene which is why the base class doesn't do anything in that specific method.

Public Attributes

Frustrum currentFrustrum = null
 The current frustrum. Based on camera position.
List< IDrawableobjectsToBeRendered
 We maintain a list of objects to be rendered. This list is cleared and populated on scene update for each render pass.
string name = "Scene"
Hashtable sceneContent = null
 We also want to keep track of all the objects that are part of our scene. This is useful when we want to save information regarding these objects to disk.

Static Public Attributes

static Effect defaultEffect
 We want to have a default effect associated with the scene.

Protected Attributes

SceneNode rootNode = null
 Each scene must have a rootNode.
Script script = null
 Each scene node can now have a script attached to it. We keep a ref to the instance of the Script class in this member variable.
TimeLine timeline = null
 Each scene node also has a timeline attached to it. This is where we keep a ref to the instance of the Timeline class associated with this node.

Static Protected Attributes

static StateBlock defaultState = null
 Not used anymore in the OutDoorScene class, this is still used in the Scene base class. Will be removed soon.

Properties

SceneNode RootNode [get]
 Scene root Node accessor.
string Name [get, set]
 We need a name to be able to identity the script and quite a lot of things.


Detailed Description

Definition at line 29 of file Scene.cs.


Constructor & Destructor Documentation

DXGfxLib.Scene.Scene (  ) 

The constructor ensure we have a valid rootNode to which we will attach future nodes and scene objects.

Definition at line 86 of file Scene.cs.

Here is the call graph for this function:

DXGfxLib.Scene.Scene (  ) 

The constructor ensure we have a valid rootNode to which we will attach future nodes and scene objects.

Definition at line 86 of file Scene.cs.

Here is the call graph for this function:


Member Function Documentation

void DXGfxLib.Scene.AddEvent ( Event  evt  ) 

This method will add events to the list of events of our scene node.

Parameters:
evt 

Implements DXGfxLib.IAmScriptable.

Definition at line 672 of file Scene.cs.

void DXGfxLib.Scene.AddEvent ( Event  evt  ) 

This method will add events to the list of events of our scene node.

Parameters:
evt 

Implements DXGfxLib.IAmScriptable.

Definition at line 672 of file Scene.cs.

Here is the caller graph for this function:

virtual void DXGfxLib.Scene.Attach ( SceneObject  sceneObj  )  [virtual]

You can also create Scene object yourself and then instruct the scene that it has to manage them. Please see the description of the first Attach method. Once again the lifetime of the scene object is not manage by the scene. When the scene is instructed to deal with a scene object it only check if the thing needs to be rendered and send it to the display if it does.

Parameters:
sceneObj 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 351 of file Scene.cs.

Here is the call graph for this function:

virtual SceneObject DXGfxLib.Scene.Attach ( FrameworkMesh  meshToAttach  )  [virtual]

When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.

Parameters:
meshToAttach 
Returns:

Definition at line 312 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Attach ( SceneObject  sceneObj  )  [virtual]

You can also create Scene object yourself and then instruct the scene that it has to manage them. Please see the description of the first Attach method. Once again the lifetime of the scene object is not manage by the scene. When the scene is instructed to deal with a scene object it only check if the thing needs to be rendered and send it to the display if it does.

Parameters:
sceneObj 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 351 of file Scene.cs.

Here is the call graph for this function:

virtual SceneObject DXGfxLib.Scene.Attach ( FrameworkMesh  meshToAttach  )  [virtual]

When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.

Parameters:
meshToAttach 
Returns:

Definition at line 312 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual SceneObject DXGfxLib.Scene.AttachWithLOD ( Device  d3ddevice,
FrameworkMesh  meshToAttach 
) [virtual]

When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.

Parameters:
meshToAttach 
Returns:

Definition at line 334 of file Scene.cs.

Here is the call graph for this function:

virtual SceneObject DXGfxLib.Scene.AttachWithLOD ( Device  d3ddevice,
FrameworkMesh  meshToAttach 
) [virtual]

When you want a FrameworkMesh to be managed by the Scene you have to pass it to the scene. The scene will create a scene object to which the Mesh will be attached and which will be returned to the caller. Then on each draw call on the scene the scene will decide whether this needs to be rendered because it is in the viewing frustrum and will indeed render it. The scene don't manage ressources. This is always the responsability of the caller to create the FrameworkMesh and to delete it when it is no more needed. The scene only manage whether it needs to be rendered and send it to the video card until the FrameworkMesh is detached from the scene. The scene is not a ressource manager it only manage geometric and culling and rendering aspects.

Parameters:
meshToAttach 
Returns:

Definition at line 334 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.CleanOnDestroyDevice (  ) 

If the device is destroyed we also need to clean our D3D state block so we call the previous method from here.

Definition at line 154 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.CleanOnDestroyDevice (  ) 

If the device is destroyed we also need to clean our D3D state block so we call the previous method from here.

Definition at line 154 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.CleanOnLostDevice (  ) 

As this class manage a D3D state block we have to have the below method to Dispose it in case the Device is Lost.

Definition at line 142 of file Scene.cs.

void DXGfxLib.Scene.CleanOnLostDevice (  ) 

As this class manage a D3D state block we have to have the below method to Dispose it in case the Device is Lost.

Definition at line 142 of file Scene.cs.

Here is the caller graph for this function:

virtual void DXGfxLib.Scene.Clicked ( double  appTime,
float  elapsedTime 
) [virtual]

This method will be called on the Scene object if canBeClicked is true and if someone click on this object!

Parameters:
appTime 
elapsedTime 

Definition at line 691 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Clicked ( double  appTime,
float  elapsedTime 
) [virtual]

This method will be called on the Scene object if canBeClicked is true and if someone click on this object!

Parameters:
appTime 
elapsedTime 

Definition at line 691 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Collide ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects,
System.Type  desiredType 
) [virtual]

This method check for collisions against entities of the specified type.

Parameters:
sceneNode 
collidingSceneObjects 
desiredType 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 406 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Collide ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects 
) [virtual]

This method check for collisions.

Parameters:
sceneNode The sceneNode for which collision checking is made.
collidingSceneObjects 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 383 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Collide ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects,
System.Type  desiredType 
) [virtual]

This method check for collisions against entities of the specified type.

Parameters:
sceneNode 
collidingSceneObjects 
desiredType 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 406 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Collide ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects 
) [virtual]

This method check for collisions.

Parameters:
sceneNode The sceneNode for which collision checking is made.
collidingSceneObjects 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 383 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.CollideSolid ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects,
System.Type  desiredType 
) [virtual]

This method check for collisions against entities of the specified type. Only scene object flagged as solid are considered.

Parameters:
sceneNode 
collidingSceneObjects 
desiredType 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 418 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.CollideSolid ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects 
) [virtual]

This method check for collisions. Only scene objects flaged as solid are considered !

Parameters:
sceneNode The sceneNode for which collision checking is made.
collidingSceneObjects 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 394 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.CollideSolid ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects,
System.Type  desiredType 
) [virtual]

This method check for collisions against entities of the specified type. Only scene object flagged as solid are considered.

Parameters:
sceneNode 
collidingSceneObjects 
desiredType 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 418 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.CollideSolid ( SceneNode  sceneNode,
ref List< SceneObject collidingSceneObjects 
) [virtual]

This method check for collisions. Only scene objects flaged as solid are considered !

Parameters:
sceneNode The sceneNode for which collision checking is made.
collidingSceneObjects 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 394 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void DXGfxLib.Scene.Collision ( double  appTime,
float  elapsedTime,
SceneObject  collidingObject 
) [virtual]

This method will be called if another scene object collides with this one and checkForCollision is true. TODO: Add code to avoid sceneobject to interpenatre !

Parameters:
appTime 
elapsedTime 
collidingObject 

Definition at line 706 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Collision ( double  appTime,
float  elapsedTime,
SceneObject  collidingObject 
) [virtual]

This method will be called if another scene object collides with this one and checkForCollision is true. TODO: Add code to avoid sceneobject to interpenatre !

Parameters:
appTime 
elapsedTime 
collidingObject 

Definition at line 706 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Detach ( SceneNode  sceneNodeToDetach  )  [virtual]

At some point you might want to remove a scene node from the scene graph. This is the method to be used to achieve that.

Parameters:
sceneNodeToDetach 

Definition at line 361 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Detach ( SceneNode  sceneNodeToDetach  )  [virtual]

At some point you might want to remove a scene node from the scene graph. This is the method to be used to achieve that.

Parameters:
sceneNodeToDetach 

Definition at line 361 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.DetachAll (  ) 

A scene do not manage itself the ressources. This method only ensure that everything that has been attached to the scene is detached. Calling Dispose on the ressources that were attached to the scene is the responsability of the code that created the ressources.

Definition at line 134 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.DetachAll (  ) 

A scene do not manage itself the ressources. This method only ensure that everything that has been attached to the scene is detached. Calling Dispose on the ressources that were attached to the scene is the responsability of the code that created the ressources.

Definition at line 134 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Dispose (  )  [virtual]

Here we should dispose everything related to our scene !!

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 106 of file Scene.cs.

virtual void DXGfxLib.Scene.Dispose (  )  [virtual]

Here we should dispose everything related to our scene !!

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 106 of file Scene.cs.

virtual void DXGfxLib.Scene.Draw ( Device  d3ddevice,
Frustrum  frustrum 
) [virtual]

Definition at line 210 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Draw ( Device  d3ddevice,
Frustrum  frustrum 
) [virtual]

Definition at line 210 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Evaluate ( double  appTime,
float  elapsedTime 
) [virtual]

The evaluate method will ask the script and the timeline to evaluate themselves. This is a form of update but the work is different from what is performed in the update method. The update method will update geometric information (bounding boxes....). The evaluate method will 'update' the node as far as the logic (script and timeline) associated with it is concerned. This method is marked virtual because you could create classes deriving from SceneNode that will implement their own logic through different means than the script and the timeline. Then in these derive classes you will have the opportunity to update the node logic and values through this method.

Parameters:
appTime 
elapsedTime 

Implements DXGfxLib.IAmScriptable.

Definition at line 632 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Evaluate ( double  appTime,
float  elapsedTime 
) [virtual]

The evaluate method will ask the script and the timeline to evaluate themselves. This is a form of update but the work is different from what is performed in the update method. The update method will update geometric information (bounding boxes....). The evaluate method will 'update' the node as far as the logic (script and timeline) associated with it is concerned. This method is marked virtual because you could create classes deriving from SceneNode that will implement their own logic through different means than the script and the timeline. Then in these derive classes you will have the opportunity to update the node logic and values through this method.

Parameters:
appTime 
elapsedTime 

Implements DXGfxLib.IAmScriptable.

Definition at line 632 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void DXGfxLib.Scene.GetPrepared (  )  [virtual]

Call this if you know you have your objects in scene content but that the node are not attached to the scene graph yet!! For example this is called just after deserializing a whole scene.

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 114 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.GetPrepared (  )  [virtual]

Call this if you know you have your objects in scene content but that the node are not attached to the scene graph yet!! For example this is called just after deserializing a whole scene.

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 114 of file Scene.cs.

Here is the call graph for this function:

Script DXGfxLib.Scene.GetScript (  ) 

This method will return the Script instance associated with the scene node.

Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 589 of file Scene.cs.

Here is the call graph for this function:

Script DXGfxLib.Scene.GetScript (  ) 

This method will return the Script instance associated with the scene node.

Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 589 of file Scene.cs.

Here is the call graph for this function:

TimeLine DXGfxLib.Scene.GetTimeLine (  ) 

Will return the instance of the TimeLine class associated with this scene node.

Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 613 of file Scene.cs.

Here is the call graph for this function:

TimeLine DXGfxLib.Scene.GetTimeLine (  ) 

Will return the instance of the TimeLine class associated with this scene node.

Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 613 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.Initialize (  ) 

Definition at line 91 of file Scene.cs.

void DXGfxLib.Scene.Initialize (  ) 

Definition at line 91 of file Scene.cs.

Here is the caller graph for this function:

virtual bool DXGfxLib.Scene.Intersect ( Vector3  rayOri,
Vector3  rayDir,
ref List< SceneObject collidingSceneObject,
System.Type  desiredType 
) [virtual]

This is the same as the above intersect method except that you can also specify the kind of scene object you want to get back.

Parameters:
rayOri 
rayDir 
collidingSceneObject 
desiredType 
Returns:

Definition at line 448 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Intersect ( Vector3  rayOri,
Vector3  rayDir,
ref List< SceneObject collidingSceneObjects 
) [virtual]

This method check if the provided ray in 3D space do intersect with scene objects attached to the scene. If it does the method return true and the object with which the ray intersect are in the collidingSceneObjects list. There is no guarantee at all that the first object in that list is the object nearer to the camera. In fact most of the time it won't be the case. The first object in the list is in fact the first object of the graph that was found to intersect with the ray while the graph was traversed.

Parameters:
rayOri 
rayDir 
collidingSceneObjects 
Returns:

Definition at line 434 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Intersect ( Vector3  rayOri,
Vector3  rayDir,
ref List< SceneObject collidingSceneObject,
System.Type  desiredType 
) [virtual]

This is the same as the above intersect method except that you can also specify the kind of scene object you want to get back.

Parameters:
rayOri 
rayDir 
collidingSceneObject 
desiredType 
Returns:

Definition at line 448 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Intersect ( Vector3  rayOri,
Vector3  rayDir,
ref List< SceneObject collidingSceneObjects 
) [virtual]

This method check if the provided ray in 3D space do intersect with scene objects attached to the scene. If it does the method return true and the object with which the ray intersect are in the collidingSceneObjects list. There is no guarantee at all that the first object in that list is the object nearer to the camera. In fact most of the time it won't be the case. The first object in the list is in fact the first object of the graph that was found to intersect with the ray while the graph was traversed.

Parameters:
rayOri 
rayDir 
collidingSceneObjects 
Returns:

Definition at line 434 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

Event [] DXGfxLib.Scene.peekEventsByName ( string  name  ) 

Like popEventsByName except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
name 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 779 of file Scene.cs.

Event [] DXGfxLib.Scene.peekEventsByName ( string  name  ) 

Like popEventsByName except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
name 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 779 of file Scene.cs.

Event [] DXGfxLib.Scene.peekEventsByType ( string  type  ) 

Like popEventsByType except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
name 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 805 of file Scene.cs.

Event [] DXGfxLib.Scene.peekEventsByType ( string  type  ) 

Like popEventsByType except that the events will remain associated with the object until some other code removes that association. It is a bit like the events remain 'fired' for further consumtion.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
name 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 805 of file Scene.cs.

virtual bool DXGfxLib.Scene.Pick ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos,
ref SceneObject[]  pickedObjects,
ref IntersectInformation[]  hits 
) [virtual]

Ok this method gives you back the objects under the provided screenPos. Internally this does use Intersect.

Parameters:
viewport 
proj 
view 
screenPos 
pickedObjects 
hits 
Returns:

Definition at line 463 of file Scene.cs.

Here is the call graph for this function:

virtual bool DXGfxLib.Scene.Pick ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos,
ref SceneObject[]  pickedObjects,
ref IntersectInformation[]  hits 
) [virtual]

Ok this method gives you back the objects under the provided screenPos. Internally this does use Intersect.

Parameters:
viewport 
proj 
view 
screenPos 
pickedObjects 
hits 
Returns:

Definition at line 463 of file Scene.cs.

Here is the call graph for this function:

virtual Vector3 DXGfxLib.Scene.PickEnvironmentPosition ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos 
) [virtual]

This doesn't return anything interesting. Still derived class will most probalbly send more interesting data. This is highly dependent on the type of scene which is why the base class doesn't do anything in that specific method.

Parameters:
viewport 
proj 
view 
screenPos 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 830 of file Scene.cs.

virtual Vector3 DXGfxLib.Scene.PickEnvironmentPosition ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos 
) [virtual]

This doesn't return anything interesting. Still derived class will most probalbly send more interesting data. This is highly dependent on the type of scene which is why the base class doesn't do anything in that specific method.

Parameters:
viewport 
proj 
view 
screenPos 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 830 of file Scene.cs.

virtual SceneObject DXGfxLib.Scene.PickObject ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos,
Type  desiredType 
) [virtual]

Same as above except you can query for a specific scene object type.

Parameters:
viewport 
proj 
view 
screenPos 
desiredType 
Returns:

Definition at line 521 of file Scene.cs.

Here is the call graph for this function:

virtual SceneObject DXGfxLib.Scene.PickObject ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos 
) [virtual]

This method sends back the object under screenPos that is nearer to the point click on the near plane of the viewing frustrum.

Parameters:
viewport 
proj 
view 
screenPos 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 507 of file Scene.cs.

Here is the call graph for this function:

virtual SceneObject DXGfxLib.Scene.PickObject ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos,
Type  desiredType 
) [virtual]

Same as above except you can query for a specific scene object type.

Parameters:
viewport 
proj 
view 
screenPos 
desiredType 
Returns:

Definition at line 521 of file Scene.cs.

Here is the call graph for this function:

virtual SceneObject DXGfxLib.Scene.PickObject ( Viewport  viewport,
Matrix  proj,
Matrix  view,
Vector2  screenPos 
) [virtual]

This method sends back the object under screenPos that is nearer to the point click on the near plane of the viewing frustrum.

Parameters:
viewport 
proj 
view 
screenPos 
Returns:

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 507 of file Scene.cs.

Here is the caller graph for this function:

Event [] DXGfxLib.Scene.popEventsByName ( string  name  ) 

Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
name 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 725 of file Scene.cs.

Event [] DXGfxLib.Scene.popEventsByName ( string  name  ) 

Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
name 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 725 of file Scene.cs.

Event [] DXGfxLib.Scene.popEventsByType ( string  type  ) 

Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
type 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 752 of file Scene.cs.

Event [] DXGfxLib.Scene.popEventsByType ( string  type  ) 

Return an Array with all fired events currently associated with the scriptable object and removes the association with the object.

Just as a reminder this is the life of events: Events are added to the scriptable object timeline. At the appropriate time they are fired, I mean associated with the object (aka added to a specific event collection). Then they remain associated with the object until some code removes them from there!

Parameters:
type 
Returns:

Implements DXGfxLib.IAmScriptable.

Definition at line 752 of file Scene.cs.

void DXGfxLib.Scene.RemoveEvent ( Event  evt  ) 

This method is the pendant of the RemoveEvent.

Parameters:
evt 

Implements DXGfxLib.IAmScriptable.

Definition at line 681 of file Scene.cs.

void DXGfxLib.Scene.RemoveEvent ( Event  evt  ) 

This method is the pendant of the RemoveEvent.

Parameters:
evt 

Implements DXGfxLib.IAmScriptable.

Definition at line 681 of file Scene.cs.

virtual void DXGfxLib.Scene.RenderScene ( Device  d3ddevice,
Frustrum  frustrum 
) [virtual]

This will draw all objects in the list of objects to be rendered. Billboards objects are sorted based on their distance to the camera in order to get correct display of their associated textures with alpha.

Parameters:
d3ddevice 
frustrum 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 221 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.RenderScene ( Device  d3ddevice,
Matrix  matView,
Matrix  matProj 
) [virtual]

Sometime you might want to get everything in the scene to be rendered. with a specific matView and matProj.

Parameters:
d3ddevice 
matView 
matProj 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 202 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.RenderScene ( Device  d3ddevice,
Frustrum  frustrum 
) [virtual]

This will draw all objects in the list of objects to be rendered. Billboards objects are sorted based on their distance to the camera in order to get correct display of their associated textures with alpha.

Parameters:
d3ddevice 
frustrum 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 221 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.RenderScene ( Device  d3ddevice,
Matrix  matView,
Matrix  matProj 
) [virtual]

Sometime you might want to get everything in the scene to be rendered. with a specific matView and matProj.

Parameters:
d3ddevice 
matView 
matProj 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 202 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

void DXGfxLib.Scene.Reset (  ) 

Scripts and timeline have reset methods. They will be called when the simulation is reseted (stoped and restarted from the beginning).

Implements DXGfxLib.IAmScriptable.

Definition at line 648 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.Reset (  ) 

Scripts and timeline have reset methods. They will be called when the simulation is reseted (stoped and restarted from the beginning).

Implements DXGfxLib.IAmScriptable.

Definition at line 648 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.SetScript ( Script  script  ) 

THis method will use the Script instance passed as parameter and will set as the Script associated with this scene node.

Parameters:
script 

Implements DXGfxLib.IAmScriptable.

Definition at line 578 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.SetScript ( Script  script  ) 

THis method will use the Script instance passed as parameter and will set as the Script associated with this scene node.

Parameters:
script 

Implements DXGfxLib.IAmScriptable.

Definition at line 578 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

void DXGfxLib.Scene.SetTimeLine ( TimeLine  timeLine  ) 

Same as SetScript but for timelines.

Parameters:
timeLine 

Implements DXGfxLib.IAmScriptable.

Definition at line 602 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.SetTimeLine ( TimeLine  timeLine  ) 

Same as SetScript but for timelines.

Parameters:
timeLine 

Implements DXGfxLib.IAmScriptable.

Definition at line 602 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:

void DXGfxLib.Scene.Update ( Device  d3ddevice,
Matrix  matview,
Matrix  matproj,
double  appTime,
float  elapsedTime 
)

This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.

Parameters:
appTime 
elapsedTime 
d3ddevice 
matview 
matproj 
objectsToBeRendered 

Definition at line 188 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Update ( double  appTime,
float  elapsedTime,
Frustrum  frustrum,
List< IDrawable objectsToBeRendered 
) [virtual]

This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.

Parameters:
appTime 
elapsedTime 
frustrum 
objectsToBeRendered 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 171 of file Scene.cs.

Here is the call graph for this function:

void DXGfxLib.Scene.Update ( Device  d3ddevice,
Matrix  matview,
Matrix  matproj,
double  appTime,
float  elapsedTime 
)

This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.

Parameters:
appTime 
elapsedTime 
d3ddevice 
matview 
matproj 
objectsToBeRendered 

Definition at line 188 of file Scene.cs.

Here is the call graph for this function:

virtual void DXGfxLib.Scene.Update ( double  appTime,
float  elapsedTime,
Frustrum  frustrum,
List< IDrawable objectsToBeRendered 
) [virtual]

This method update the scene nodes and the associated bounding information and then attach the scene objects to the list of objects to be rendered if needed (aka if they are in the viewing frustrum). At the moment the SceneNode and SceneObject provided with the library don't implement any LOD mechanism but this could be done in their update method called from here.

Parameters:
appTime 
elapsedTime 
frustrum 
objectsToBeRendered 

Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Definition at line 171 of file Scene.cs.

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

The current frustrum. Based on camera position.

Definition at line 39 of file Scene.cs.

static Effect DXGfxLib.Scene::defaultEffect [static]

We want to have a default effect associated with the scene.

Definition at line 65 of file Scene.cs.

static StateBlock DXGfxLib.Scene::defaultState = null [static, protected]

Not used anymore in the OutDoorScene class, this is still used in the Scene base class. Will be removed soon.

Definition at line 34 of file Scene.cs.

string DXGfxLib.Scene::name = "Scene"

Definition at line 67 of file Scene.cs.

We maintain a list of objects to be rendered. This list is cleared and populated on scene update for each render pass.

Definition at line 58 of file Scene.cs.

SceneNode DXGfxLib.Scene::rootNode = null [protected]

Each scene must have a rootNode.

Definition at line 44 of file Scene.cs.

Hashtable DXGfxLib.Scene::sceneContent = null

We also want to keep track of all the objects that are part of our scene. This is useful when we want to save information regarding these objects to disk.

Definition at line 79 of file Scene.cs.

Script DXGfxLib.Scene::script = null [protected]

Each scene node can now have a script attached to it. We keep a ref to the instance of the Script class in this member variable.

Definition at line 558 of file Scene.cs.

TimeLine DXGfxLib.Scene::timeline = null [protected]

Each scene node also has a timeline attached to it. This is where we keep a ref to the instance of the Timeline class associated with this node.

Definition at line 572 of file Scene.cs.


Property Documentation

string DXGfxLib.Scene::Name [get, set]

We need a name to be able to identity the script and quite a lot of things.

Implements DXGfxLib.IAmScriptable.

Definition at line 70 of file Scene.cs.

SceneNode DXGfxLib.Scene::RootNode [get]

Scene root Node accessor.

Definition at line 50 of file Scene.cs.


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

Generated on Thu Jan 8 20:49:22 2009 for DXGfx by  doxygen 1.5.8