Scene Class |
Namespace: DigitalRune.Graphics.SceneGraph
The Scene type exposes the following members.
Name | Description | |
---|---|---|
Clone |
Creates a new SceneNode that is a clone of the current instance (incl. all
children).
(Inherited from SceneNode.) | |
CloneCore |
Not supported.
(Overrides SceneNodeCloneCore(SceneNode).) | |
CreateInstanceCore |
Not supported.
(Overrides SceneNodeCreateInstanceCore.) | |
Dispose(Boolean) |
Releases all resources used by the scene node and all descendant nodes.
(Inherited from SceneNode.) | |
Dispose(Boolean, Boolean) |
Releases the unmanaged resources used by an instance of the SceneNode class
and optionally releases the managed resources.
(Overrides SceneNodeDispose(Boolean, Boolean).) | |
Equals | (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetDefaultGroup |
Called when the default group of a new scene node is set.
| |
GetGroup |
Gets the group ID of a scene node.
| |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
HaveContact |
Determines whether bounding shapes of two scene nodes overlap.
| |
Invalidate |
Invalidates this scene node and all children.
(Inherited from SceneNode.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
OnParentChanged |
Called when Parent was changed.
(Overrides SceneNodeOnParentChanged(SceneNode, SceneNode).) | |
OnPoseChanged |
Raises the PoseChanged event.
(Inherited from SceneNode.) | |
OnSceneChanged |
Raises the SceneChanged event.
(Overrides SceneNodeOnSceneChanged(SceneChangedEventArgs).) | |
OnShapeChanged |
Raises the ShapeChanged event.
(Inherited from SceneNode.) | |
QueryT |
Gets the scene nodes that touch the specified reference node.
| |
SetGroup |
Sets the group ID of a scene node.
| |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
Update |
Updates the scene.
|
Name | Description | |
---|---|---|
ClearLastPose |
Clears the LastPoseWorld property of the current scene node (and its
descendants).
(Defined by SceneHelper.) | |
ClearLastScale |
Clears the LastScaleWorld property of the current scene node (and
its descendants).
(Defined by SceneHelper.) | |
Contains |
Determines whether whether a scene node contains another scene node in its subtree.
(Defined by SceneHelper.) | |
GetAncestors |
Gets the ancestors of the given scene node.
(Defined by SceneHelper.) | |
GetChildren |
Gets the children of the given scene node.
(Defined by SceneHelper.) | |
GetDescendants | Overloaded.
Gets the descendants of the given scene node using a depth-first search.
(Defined by SceneHelper.) | |
GetDescendants(Boolean) | Overloaded.
Gets the descendants of the given scene node using a depth-first or a breadth-first search.
(Defined by SceneHelper.) | |
GetLeaves |
Gets the leaves of the scene node.
(Defined by SceneHelper.) | |
GetRoot |
Gets the root node.
(Defined by SceneHelper.) | |
GetSceneNode |
Gets a scene node by name from the subtree of the specified scene node.
(Defined by SceneHelper.) | |
GetSelfAndAncestors |
Gets the scene node and its ancestors scene.
(Defined by SceneHelper.) | |
GetSubtree | Overloaded.
Gets the subtree (the given scene node and all of its descendants) using a depth-first
search.
(Defined by SceneHelper.) | |
GetSubtree(Boolean) | Overloaded.
Gets the subtree (the given scene node and all of its descendants) using a depth-first or a
breadth-first search.
(Defined by SceneHelper.) | |
GetSubtreeAabb |
Gets the AABB of the current subtree.
(Defined by SceneHelper.) | |
LookAt(Vector3F, Vector3F) | Overloaded.
Rotates the scene node so that it faces a certain direction (in world space).
(Defined by SceneHelper.) | |
LookAt(Vector3F, Vector3F, Vector3F) | Overloaded.
Moves and rotates the scene node so that it faces a certain direction (in world space).
(Defined by SceneHelper.) | |
SetInstanceAlpha |
Sets the opacity (alpha) of a scene node - see remarks.
(Defined by SceneHelper.) | |
SetLastPose |
Sets LastPoseWorld to the current
PoseWorld.
(Defined by SceneHelper.) | |
SetLastScale |
Sets LastScaleWorld to the current
ScaleWorld.
(Defined by SceneHelper.) | |
SupportsInstanceAlpha |
Determines whether the opacity of the scene node can be changed using
SetInstanceAlpha(SceneNode, Single).
(Defined by SceneHelper.) |
Name | Description | |
---|---|---|
Aabb |
Gets the axis-aligned bounding box (AABB) in world space.
(Inherited from SceneNode.) | |
ActualIsEnabled |
Gets a value indicating whether this scene node is actually enabled. (The method checks the
current scene node and its ancestors.)
(Inherited from SceneNode.) | |
CastsShadows |
Gets or sets a value indicating whether this scene node blocks the light and casts shadows.
(Inherited from SceneNode.) | |
Children |
Gets or sets the children of this scene node.
(Inherited from SceneNode.) | |
EnableMultithreading |
Gets or sets a value indicating whether multithreading is enabled.
| |
Filter |
Gets or sets a filter which is used in QueryT(SceneNode, RenderContext).
| |
IsDisposed |
Gets a value indicating whether this scene node has been disposed of.
(Inherited from SceneNode.) | |
IsEnabled |
Gets or sets a value indicating whether this scene node is enabled. (May override children -
see remarks.)
(Inherited from SceneNode.) | |
IsRenderable |
Gets or sets a value indicating whether this scene node can be rendered with a
SceneNodeRenderer.
(Inherited from SceneNode.) | |
IsShadowCasterCulled |
Gets or sets a value indicating whether the occlusion culling determined that this scene
node does not need to be rendered into the shadow map of the directional light.
(Inherited from SceneNode.) | |
IsStatic |
Gets or sets a value indicating whether this scene node is static (immobile).
(Inherited from SceneNode.) | |
LastFrame |
Gets or sets the number of the last frame in which the scene node was rendered.
(Inherited from SceneNode.) | |
LastPoseWorld |
Gets or sets the PoseWorld of the last frame.
(Inherited from SceneNode.) | |
LastScaleWorld |
Gets or sets the ScaleWorld of the last frame.
(Inherited from SceneNode.) | |
MaxDistance |
Gets or sets the maximum distance up to which the scene node is rendered. (Needs to be
normalized - see remarks.)
(Inherited from SceneNode.) | |
Name |
Gets or sets the name of this scene node.
(Inherited from SceneNode.) | |
Parent |
Gets the parent scene node.
(Inherited from SceneNode.) | |
PoseLocal |
Gets or sets the pose (position and orientation) relative to the parent scene node.
(Inherited from SceneNode.) | |
PoseWorld |
Gets or sets the pose (position and orientation) in world space.
(Inherited from SceneNode.) | |
Proxy |
Gets or sets the proxy node.
(Inherited from SceneNode.) | |
RenderData |
Gets or sets the cached renderer data.
(Inherited from SceneNode.) | |
ScaleLocal |
Gets or sets the scale relative to the parent scene node.
(Inherited from SceneNode.) | |
ScaleWorld |
Gets the total effective scale (which incorporates the scale factors of parent scene nodes).
(Inherited from SceneNode.) | |
SceneData |
Gets or sets scene data.
(Inherited from SceneNode.) | |
Shape |
Gets (or sets) the bounding shape of this scene node.
(Inherited from SceneNode.) | |
SortTag |
Gets or sets the sort tag.
(Inherited from SceneNode.) | |
UserData |
Gets or sets user-defined data.
(Inherited from SceneNode.) | |
UserFlags |
Gets or sets a 16-bit value which can be used to store user-defined information or flags.
(Inherited from SceneNode.) |
Name | Description | |
---|---|---|
SceneChanged |
Occurs when the local subtree changed.
(Inherited from SceneNode.) | |
ShapeChanged |
Occurs when the Shape or ScaleWorld was changed.
(Inherited from SceneNode.) |
Name | Description | |
---|---|---|
IDisposableDispose |
Releases all resources used by the scene node and all descendant nodes.
(Inherited from SceneNode.) | |
IGeometricObjectClone |
Creates a new IGeometricObject that is a clone (deep copy) of the current
instance.
(Inherited from SceneNode.) | |
IGeometricObjectPose |
Gets the pose (position and orientation) in world space.
(Inherited from SceneNode.) | |
IGeometricObjectPoseChanged |
Occurs when the pose was changed.
(Inherited from SceneNode.) | |
IGeometricObjectScale |
Gets the total effective scale (which incorporates the scale factors of parent scene nodes).
(Inherited from SceneNode.) |
See IScene for general information about scenes. The Scene is the default implementation of IScene. It internally uses a CollisionDomain to accelerate scene queries (such as frustum culling).
A Scene is derived from SceneNode and therefore provides the same helper methods for manipulation and traversal. But a Scene object can only be the root node of the scene graph - it cannot be attached to another scene node. See SceneNode for more details regarding the scene hierarchy.
Scene Transformations:
A Scene is derived from SceneNode and therefore also has a
transformation (see ScaleLocal/PoseLocal or
ScaleWorld/PoseWorld) and a bounding shape
(see Shape). The bounding shape is always empty (see
EmptyShape) - it is not used. Since a Scene is always the root of
a 3D scene PoseLocal and PoseWorld are always
identical. The default scale is One, the default position is
Zero and the default orientation is Identity.
By setting a different values the entire scene is moved or rotated in world space.
Scene Queries and Scene Node Filtering:
QueryT(SceneNode, RenderContext) can be used to query all scene nodes that touch a given reference node:
For example, to get all mesh nodes within the camera frustum, or all light nodes that affect a
mesh node. QueryT(SceneNode, RenderContext) uses Filter to further filter the query
result. See Filter for more information.
Scene Node Groups:
GetGroup(SceneNode) and SetGroup(SceneNode, Int32) can be used to put scene nodes into groups,
where a group is simply an integer ID. This group can be used for filtering. Per default,
meshes are in group 1, lights are in group 2, cameras are in group 3, all other objects are
in group 0. The default grouping can be changed by overriding GetDefaultGroup(SceneNode).
The default groups and Filter settings are:
Group | Scene Nodes |
---|---|
0 | Scene nodes which can touch all other nodes including scene nodes of the same type. This is the default group for custom scene node types derived from SceneNode. |
1 | CameraNode |
2 | LightNode |
3 |
Scene nodes which can be rendered: BillboardNode, FogNode,
LensFlareNode, FigureNode, ParticleSystemNode,
SpriteNode Nodes in this group can only touch cameras (group 1). |
4 |
Scene nodes which can be rendered and lit: MeshNode Nodes in this group can only touch cameras (group 1) and lights (group 2). |
Cloning:
A Scene cannot be cloned. Calling Clone will raise an
exception.