# DXGfxLib.Scene Class Reference

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

Inherited by DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

Collaboration diagram for DXGfxLib.Scene:

[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< IDrawable > | objectsToBeRendered
| 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

Frustrum DXGfxLib.Scene::currentFrustrum = null

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.

List< IDrawable > DXGfxLib.Scene::objectsToBeRendered

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:

- D:/guillaume/guillara/3D/DXGfx/Backup/DXGfxLib/Scene.cs
- D:/guillaume/guillara/3D/DXGfx/DXGfxLib/Scene.cs