Inherited by DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.

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. | |
Definition at line 29 of file Scene.cs.
| DXGfxLib.Scene.Scene | ( | ) |
| DXGfxLib.Scene.Scene | ( | ) |
| void DXGfxLib.Scene.AddEvent | ( | Event | evt | ) |
This method will add events to the list of events of our scene node.
| evt |
Implements DXGfxLib.IAmScriptable.
| void DXGfxLib.Scene.AddEvent | ( | Event | evt | ) |
This method will add events to the list of events of our scene node.
| evt |
Implements DXGfxLib.IAmScriptable.
Definition at line 672 of file Scene.cs.

| 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.
| sceneObj |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 351 of file Scene.cs.

| 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.
| meshToAttach |
Definition at line 312 of file Scene.cs.

| 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.
| sceneObj |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 351 of file Scene.cs.

| 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.
| meshToAttach |
Definition at line 312 of file Scene.cs.


| 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.
| meshToAttach |
Definition at line 334 of file Scene.cs.

| 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.
| meshToAttach |
Definition at line 334 of file Scene.cs.

| void DXGfxLib.Scene.CleanOnDestroyDevice | ( | ) |
| void DXGfxLib.Scene.CleanOnDestroyDevice | ( | ) |
| void DXGfxLib.Scene.CleanOnLostDevice | ( | ) |
| void DXGfxLib.Scene.CleanOnLostDevice | ( | ) |
| virtual void DXGfxLib.Scene.Clicked | ( | double | appTime, | |
| float | elapsedTime | |||
| ) | [virtual] |
| virtual void DXGfxLib.Scene.Clicked | ( | double | appTime, | |
| float | elapsedTime | |||
| ) | [virtual] |
| 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.
| sceneNode | ||
| collidingSceneObjects | ||
| desiredType |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 406 of file Scene.cs.

| virtual bool DXGfxLib.Scene.Collide | ( | SceneNode | sceneNode, | |
| ref List< SceneObject > | collidingSceneObjects | |||
| ) | [virtual] |
This method check for collisions.
| sceneNode | The sceneNode for which collision checking is made. | |
| collidingSceneObjects |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 383 of file Scene.cs.

| 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.
| sceneNode | ||
| collidingSceneObjects | ||
| desiredType |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 406 of file Scene.cs.

| virtual bool DXGfxLib.Scene.Collide | ( | SceneNode | sceneNode, | |
| ref List< SceneObject > | collidingSceneObjects | |||
| ) | [virtual] |
This method check for collisions.
| sceneNode | The sceneNode for which collision checking is made. | |
| collidingSceneObjects |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 383 of file Scene.cs.

| 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.
| sceneNode | ||
| collidingSceneObjects | ||
| desiredType |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 418 of file Scene.cs.

| 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 !
| sceneNode | The sceneNode for which collision checking is made. | |
| collidingSceneObjects |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 394 of file Scene.cs.

| 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.
| sceneNode | ||
| collidingSceneObjects | ||
| desiredType |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 418 of file Scene.cs.

| 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 !
| sceneNode | The sceneNode for which collision checking is made. | |
| collidingSceneObjects |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 394 of file Scene.cs.


| virtual void DXGfxLib.Scene.Collision | ( | double | appTime, | |
| float | elapsedTime, | |||
| SceneObject | collidingObject | |||
| ) | [virtual] |
| virtual void DXGfxLib.Scene.Collision | ( | double | appTime, | |
| float | elapsedTime, | |||
| SceneObject | collidingObject | |||
| ) | [virtual] |
| virtual void DXGfxLib.Scene.Detach | ( | SceneNode | sceneNodeToDetach | ) | [virtual] |
| virtual void DXGfxLib.Scene.Detach | ( | SceneNode | sceneNodeToDetach | ) | [virtual] |
| 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.

| 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.

| virtual void DXGfxLib.Scene.Dispose | ( | ) | [virtual] |
Here we should dispose everything related to our scene !!
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
| virtual void DXGfxLib.Scene.Dispose | ( | ) | [virtual] |
Here we should dispose everything related to our scene !!
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
| virtual void DXGfxLib.Scene.Draw | ( | Device | d3ddevice, | |
| Frustrum | frustrum | |||
| ) | [virtual] |
| virtual void DXGfxLib.Scene.Draw | ( | Device | d3ddevice, | |
| Frustrum | frustrum | |||
| ) | [virtual] |
| 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.
| appTime | ||
| elapsedTime |
Implements DXGfxLib.IAmScriptable.
Definition at line 632 of file Scene.cs.

| 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.
| appTime | ||
| elapsedTime |
Implements DXGfxLib.IAmScriptable.
Definition at line 632 of file Scene.cs.


| 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.

| 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.

| Script DXGfxLib.Scene.GetScript | ( | ) |
This method will return the Script instance associated with the scene node.
Implements DXGfxLib.IAmScriptable.
Definition at line 589 of file Scene.cs.

| Script DXGfxLib.Scene.GetScript | ( | ) |
This method will return the Script instance associated with the scene node.
Implements DXGfxLib.IAmScriptable.
Definition at line 589 of file Scene.cs.

| TimeLine DXGfxLib.Scene.GetTimeLine | ( | ) |
Will return the instance of the TimeLine class associated with this scene node.
Implements DXGfxLib.IAmScriptable.
Definition at line 613 of file Scene.cs.

| TimeLine DXGfxLib.Scene.GetTimeLine | ( | ) |
Will return the instance of the TimeLine class associated with this scene node.
Implements DXGfxLib.IAmScriptable.
Definition at line 613 of file Scene.cs.

| void DXGfxLib.Scene.Initialize | ( | ) |
| virtual bool DXGfxLib.Scene.Intersect | ( | Vector3 | rayOri, | |
| Vector3 | rayDir, | |||
| ref List< SceneObject > | collidingSceneObject, | |||
| System.Type | desiredType | |||
| ) | [virtual] |
| 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.
| rayOri | ||
| rayDir | ||
| collidingSceneObjects |
Definition at line 434 of file Scene.cs.

| virtual bool DXGfxLib.Scene.Intersect | ( | Vector3 | rayOri, | |
| Vector3 | rayDir, | |||
| ref List< SceneObject > | collidingSceneObject, | |||
| System.Type | desiredType | |||
| ) | [virtual] |
| 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.
| rayOri | ||
| rayDir | ||
| collidingSceneObjects |
Definition at line 434 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!
| name |
Implements DXGfxLib.IAmScriptable.
| 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!
| name |
Implements DXGfxLib.IAmScriptable.
| 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!
| name |
Implements DXGfxLib.IAmScriptable.
| 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!
| name |
Implements DXGfxLib.IAmScriptable.
| virtual bool DXGfxLib.Scene.Pick | ( | Viewport | viewport, | |
| Matrix | proj, | |||
| Matrix | view, | |||
| Vector2 | screenPos, | |||
| ref SceneObject[] | pickedObjects, | |||
| ref IntersectInformation[] | hits | |||
| ) | [virtual] |
| virtual bool DXGfxLib.Scene.Pick | ( | Viewport | viewport, | |
| Matrix | proj, | |||
| Matrix | view, | |||
| Vector2 | screenPos, | |||
| ref SceneObject[] | pickedObjects, | |||
| ref IntersectInformation[] | hits | |||
| ) | [virtual] |
| 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.
| viewport | ||
| proj | ||
| view | ||
| screenPos |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
| 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.
| viewport | ||
| proj | ||
| view | ||
| screenPos |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
| virtual SceneObject DXGfxLib.Scene.PickObject | ( | Viewport | viewport, | |
| Matrix | proj, | |||
| Matrix | view, | |||
| Vector2 | screenPos, | |||
| Type | desiredType | |||
| ) | [virtual] |
| 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.
| viewport | ||
| proj | ||
| view | ||
| screenPos |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 507 of file Scene.cs.

| virtual SceneObject DXGfxLib.Scene.PickObject | ( | Viewport | viewport, | |
| Matrix | proj, | |||
| Matrix | view, | |||
| Vector2 | screenPos, | |||
| Type | desiredType | |||
| ) | [virtual] |
| 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.
| viewport | ||
| proj | ||
| view | ||
| screenPos |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 507 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!
| name |
Implements DXGfxLib.IAmScriptable.
| 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!
| name |
Implements DXGfxLib.IAmScriptable.
| 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!
| type |
Implements DXGfxLib.IAmScriptable.
| 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!
| type |
Implements DXGfxLib.IAmScriptable.
| void DXGfxLib.Scene.RemoveEvent | ( | Event | evt | ) |
| void DXGfxLib.Scene.RemoveEvent | ( | Event | evt | ) |
| 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.
| d3ddevice | ||
| frustrum |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 221 of file Scene.cs.

| 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.
| d3ddevice | ||
| matView | ||
| matProj |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 202 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.
| d3ddevice | ||
| frustrum |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 221 of file Scene.cs.

| 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.
| d3ddevice | ||
| matView | ||
| matProj |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 202 of file Scene.cs.


| 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.

| 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.

| 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.
| script |
Implements DXGfxLib.IAmScriptable.
Definition at line 578 of file Scene.cs.

| 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.
| script |
Implements DXGfxLib.IAmScriptable.
Definition at line 578 of file Scene.cs.


| void DXGfxLib.Scene.SetTimeLine | ( | TimeLine | timeLine | ) |
Same as SetScript but for timelines.
| timeLine |
Implements DXGfxLib.IAmScriptable.
Definition at line 602 of file Scene.cs.

| void DXGfxLib.Scene.SetTimeLine | ( | TimeLine | timeLine | ) |
Same as SetScript but for timelines.
| timeLine |
Implements DXGfxLib.IAmScriptable.
Definition at line 602 of file Scene.cs.


| 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.
| appTime | ||
| elapsedTime | ||
| d3ddevice | ||
| matview | ||
| matproj | ||
| objectsToBeRendered |
Definition at line 188 of file Scene.cs.

| 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.
| appTime | ||
| elapsedTime | ||
| frustrum | ||
| objectsToBeRendered |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 171 of file Scene.cs.

| 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.
| appTime | ||
| elapsedTime | ||
| d3ddevice | ||
| matview | ||
| matproj | ||
| objectsToBeRendered |
Definition at line 188 of file Scene.cs.

| 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.
| appTime | ||
| elapsedTime | ||
| frustrum | ||
| objectsToBeRendered |
Reimplemented in DXGfxLib.OutDoorScene, and DXGfxLib.OutDoorScene.
Definition at line 171 of file Scene.cs.


static Effect DXGfxLib.Scene::defaultEffect [static] |
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.
| string DXGfxLib.Scene::name = "Scene" |
SceneNode DXGfxLib.Scene::rootNode = null [protected] |
| Hashtable DXGfxLib.Scene::sceneContent = null |
Script DXGfxLib.Scene::script = null [protected] |
TimeLine DXGfxLib.Scene::timeline = null [protected] |
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.
SceneNode DXGfxLib.Scene::RootNode [get] |
1.5.8