Show / Hide Table of Contents

Class SceneExtensions

Static extension methods on SceneNode and SceneComponent instances (or enumerations) for various purposes.

Inheritance
System.Object
SceneExtensions
Inherited Members
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: Fusee.Engine.Core.Scene
Assembly: Fusee.Engine.Core.dll
Syntax
public static class SceneExtensions

Methods

AddComponent(SceneNode, SceneComponent)

Adds the given component into this container's list of components.

Declaration
public static void AddComponent(this SceneNode snThisThis, SceneComponent scc)
Parameters
Type Name Description
SceneNode snThisThis

This node.

SceneComponent scc

The component to add.

FindComponents(SceneNode, Predicate<SceneComponent>)

Finds all components matching a given search predicate within the given node.

Declaration
public static IEnumerable<SceneComponent> FindComponents(this SceneNode root, Predicate<SceneComponent> match)
Parameters
Type Name Description
SceneNode root

The root node where to start the traversal.

System.Predicate<SceneComponent> match

The matching predicate. Enumeration will yield on every matching node.

Returns
Type Description
System.Collections.Generic.IEnumerable<SceneComponent>

An enumerable that can be used in foreach statements.

Remarks

Narrows the generic parameters of FindComponents<TNode, TComponent>(TNode, Predicate<TComponent>) to the concrete Types SceneNode and SceneComponent.

FindComponents(IEnumerable<SceneNode>, Predicate<SceneComponent>)

Finds all components matching a given search predicate within the given list of nodes.

Declaration
public static IEnumerable<SceneComponent> FindComponents(this IEnumerable<SceneNode> roots, Predicate<SceneComponent> match)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<SceneNode> roots
System.Predicate<SceneComponent> match
Returns
Type Description
System.Collections.Generic.IEnumerable<SceneComponent>

FindComponents<TComponentToFind>(SceneNode, Predicate<TComponentToFind>)

Finds all components of a certain type matching a given search predicate within the given node.

Declaration
public static IEnumerable<TComponentToFind> FindComponents<TComponentToFind>(this SceneNode root, Predicate<TComponentToFind> match)
    where TComponentToFind : SceneComponent
Parameters
Type Name Description
SceneNode root

The root node where to start the traversal.

System.Predicate<TComponentToFind> match

The matching predicate. Enumeration will yield on every matching node.

Returns
Type Description
System.Collections.Generic.IEnumerable<TComponentToFind>

An enumerable that can be used in foreach statements.

Type Parameters
Name Description
TComponentToFind
Remarks

Narrows the generic parameters of FindComponents<TNode, TComponent>(TNode, Predicate<TComponent>) to the concrete Types SceneNode and SceneComponent.

FindComponents<TComponentToFind>(IEnumerable<SceneNode>, Predicate<TComponentToFind>)

Finds all components of a certain type matching a given search predicate within the given list of nodes.

Declaration
public static IEnumerable<TComponentToFind> FindComponents<TComponentToFind>(this IEnumerable<SceneNode> roots, Predicate<TComponentToFind> match)
    where TComponentToFind : SceneComponent
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<SceneNode> roots
System.Predicate<TComponentToFind> match
Returns
Type Description
System.Collections.Generic.IEnumerable<TComponentToFind>
Type Parameters
Name Description
TComponentToFind

FindNodesWhereComponent(SceneNode, Predicate<SceneComponent>)

Finds all components matching a given search predicate within the given node.

Declaration
public static IEnumerable<SceneNode> FindNodesWhereComponent(this SceneNode root, Predicate<SceneComponent> match)
Parameters
Type Name Description
SceneNode root
System.Predicate<SceneComponent> match
Returns
Type Description
System.Collections.Generic.IEnumerable<SceneNode>

FindNodesWhereComponent(IEnumerable<SceneNode>, Predicate<SceneComponent>)

Finds all components matching a given search predicate within the given node.

Declaration
public static IEnumerable<SceneNode> FindNodesWhereComponent(this IEnumerable<SceneNode> roots, Predicate<SceneComponent> match)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<SceneNode> roots
System.Predicate<SceneComponent> match
Returns
Type Description
System.Collections.Generic.IEnumerable<SceneNode>

FpsView(Transform, Single, Single, Single, Single, Single)

Use this if the TransformComponent is part of a camera and you want to achieve a first person behavior.

Declaration
public static void FpsView(this Transform tc, float angleHorz, float angleVert, float inputWSAxis, float inputADAxis, float speed)
Parameters
Type Name Description
Transform tc

This TransformComponent

System.Single angleHorz

The horizontal rotation angle in rad. Should probably come from Mouse input.

System.Single angleVert

The vertical rotation angle in rad. Should probably come from Mouse input.

System.Single inputWSAxis

The value we want to translate the camera when pressing the W or S key.

System.Single inputADAxis

The value we want to translate the camera when pressing the A or D key.

System.Single speed

Changes the speed of the camera movement.

GetComponent(SceneNode, Type, Int32)

Finds the component with the specified type in this scene node container.

Declaration
public static SceneComponent GetComponent(this SceneNode snThisThis, Type type, int inx = 0)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Type type

The type of the component to look for.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Returns
Type Description
SceneComponent

A component of the specified type, if contained within the given container, null otherwise.

GetComponent<TComp>(SceneNode, Int32)

Finds the component with the specified type in this scene node container.

Declaration
public static TComp GetComponent<TComp>(this SceneNode snThisThis, int inx = 0)
    where TComp : SceneComponent
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Returns
Type Description
TComp

A component of the specified type, if contained within this container, null otherwise.

Type Parameters
Name Description
TComp

The type of the component to look for.

GetComponents(SceneNode, Type)

Finds the components with the specified type in this scene node container.

Declaration
public static IEnumerable<SceneComponent> GetComponents(this SceneNode snThisThis, Type type)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Type type

The type of the component to look for.

Returns
Type Description
System.Collections.Generic.IEnumerable<SceneComponent>

GetComponents<TComp>(SceneNode)

Finds the components with the specified type in this scene node container.

Declaration
public static IEnumerable<TComp> GetComponents<TComp>(this SceneNode snThisThis)
    where TComp : SceneComponent
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

Returns
Type Description
System.Collections.Generic.IEnumerable<TComp>

A component of the specified type, if contained within the given container, null otherwise.

Type Parameters
Name Description
TComp

GetComponentsInChildren(SceneNode, Type)

Finds the components with the specified type and the sub-types in the children of this scene node container.

Declaration
public static IEnumerable<SceneComponent> GetComponentsInChildren(this SceneNode snThisThis, Type type)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Type type

The type of the components to look for.

Returns
Type Description
System.Collections.Generic.IEnumerable<SceneComponent>

A List of components of the specified type, if contained within the given container.

GetComponentsInChildren<TComp>(SceneNode)

Finds the components with the specified type in the children of this scene node container.

Declaration
public static IEnumerable<TComp> GetComponentsInChildren<TComp>(this SceneNode snThisThis)
    where TComp : SceneComponent
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

Returns
Type Description
System.Collections.Generic.IEnumerable<TComp>

A List of components of the specified type, if contained within the given container.

Type Parameters
Name Description
TComp

The type of the components to look for.

GetGlobalRotation(SceneNode)

Returns the global rotation matrix as the product of all rotations along the scene graph branch this SceneNode is a part of.

Declaration
public static float4x4 GetGlobalRotation(this SceneNode snThis)
Parameters
Type Name Description
SceneNode snThis
Returns
Type Description
float4x4

GetGlobalScale(SceneNode)

Returns the global scale as the product of all scaling along the scene graph branch this SceneNode is a part of.

Declaration
public static float3 GetGlobalScale(this SceneNode snThis)
Parameters
Type Name Description
SceneNode snThis
Returns
Type Description
float3

GetGlobalTransformation(SceneNode)

Returns the global transformation matrix as the product of all transformations along the scene graph branch this SceneNode is a part of.

Declaration
public static float4x4 GetGlobalTransformation(this SceneNode snThis)
Parameters
Type Name Description
SceneNode snThis
Returns
Type Description
float4x4

GetGlobalTranslation(SceneNode)

Returns the global translation as the product of all translations along the scene graph branch this SceneNode is a part of.

Declaration
public static float3 GetGlobalTranslation(this SceneNode snThis)
Parameters
Type Name Description
SceneNode snThis
Returns
Type Description
float3

GetLight(SceneNode, Int32)

Shortcut for

GetComponent<Light>(snThisThis, inx);
. See GetComponent<TComp>(SceneNode, Int32).

Declaration
public static Light GetLight(this SceneNode snThisThis, int inx = 0)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Returns
Type Description
Light

A light if contained within this container.

GetLocalTransformation(Transform)

Get the local transformation matrix from this TransformationComponent.

Declaration
public static float4x4 GetLocalTransformation(this Transform tansThis)
Parameters
Type Name Description
Transform tansThis
Returns
Type Description
float4x4

GetLocalTranslation(Transform)

Get the local transformation matrix from this TransformationComponent.

Declaration
public static float4x4 GetLocalTranslation(this Transform tansThis)
Parameters
Type Name Description
Transform tansThis
Returns
Type Description
float4x4

GetMesh(SceneNode, Int32)

Shortcut for

GetComponent<Mesh>(snThisThis, inx);
. See GetComponent<TComp>(SceneNode, Int32).

Declaration
public static Mesh GetMesh(this SceneNode snThisThis, int inx = 0)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Returns
Type Description
Mesh

A mesh if contained within this container.

GetTransform(SceneNode, Int32)

Shortcut for

GetComponent<Transform>(snThisThis, inx);
. See GetComponent<TComp>(SceneNode, Int32).

Declaration
public static Transform GetTransform(this SceneNode snThisThis, int inx = 0)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Returns
Type Description
Transform

A transform if contained within this container.

GetWeights(SceneNode, Int32)

Shortcut for

GetComponent<Weight>(snThisThis, inx);
. See GetComponent<TComp>(SceneNode, Int32).

Declaration
public static Weight GetWeights(this SceneNode snThisThis, int inx = 0)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Returns
Type Description
Weight

A weight component if contained within this container.

RemoveComponent(SceneNode, Type, Int32)

Removes the component with the specified type in this scene node container.

Declaration
public static void RemoveComponent(this SceneNode snThisThis, Type type, int inx = 0)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Type type

The type of the component to look for.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

RemoveComponent<TComp>(SceneNode, Int32)

Removes the component with the specified type in this scene node container.

Declaration
public static void RemoveComponent<TComp>(this SceneNode snThisThis, int inx = 0)
    where TComp : SceneComponent
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Int32 inx

specifies the n'th component if more than component of the given type exists.

Type Parameters
Name Description
TComp

The type of the component to look for.

RemoveComponentsInChildren(SceneNode, Type)

Removes the components with the specified type and the sub-types in the children of this scene node container.

Declaration
public static void RemoveComponentsInChildren(this SceneNode snThisThis, Type type)
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

System.Type type

The type of the components to look for.

RemoveComponentsInChildren<TComp>(SceneNode)

Removes components with the specified type in the children of this scene node container.

Declaration
public static void RemoveComponentsInChildren<TComp>(this SceneNode snThisThis)
    where TComp : SceneComponent
Parameters
Type Name Description
SceneNode snThisThis

This scene node container.

Type Parameters
Name Description
TComp

The type of the components to look for.

Rotate(Transform, float3)

Rotates this node.

Declaration
public static void Rotate(this Transform tc, float3 xyz)
Parameters
Type Name Description
Transform tc
float3 xyz

Rotation amount as float3.

Rotate(Transform, float4x4)

Rotates this node.

Declaration
public static void Rotate(this Transform tc, float4x4 rotationMtx)
Parameters
Type Name Description
Transform tc
float4x4 rotationMtx

Rotation amount as represented in float4x4.

Rotate(Transform, QuaternionF)

Rotates this node.

Declaration
public static void Rotate(this Transform tc, QuaternionF quaternion)
Parameters
Type Name Description
Transform tc
QuaternionF quaternion

Rotation amount in Quaternion.

RotateAround(Transform, float3, float3)

Rotates around a center with the given angles. CAREFUL: this method will only produce correct results if a) the SceneNode of this transform is in the first level of the scene graph, directly beneath the SceneContainer b) this Transform's global rotation and translation equals its local ones (non of the SceneNodes that are in the levels above are translated or rotated).

Declaration
public static void RotateAround(this Transform tc, float3 center, float3 angles)
Parameters
Type Name Description
Transform tc
float3 center
float3 angles

RotateGlobal(Transform, QuaternionF, QuaternionF)

Rotates this node around the (static) global axis.

Declaration
public static void RotateGlobal(this Transform tc, QuaternionF rotation, QuaternionF parentGlobalRot)
Parameters
Type Name Description
Transform tc
QuaternionF rotation

Rotation amount as represented in Quaternion.

QuaternionF parentGlobalRot

Global (accumulated) rotation of the parent node.

ToScene(SceneNode)

Converts the SceneNode to a Scene

Declaration
public static SceneContainer ToScene(this SceneNode snThis)
Parameters
Type Name Description
SceneNode snThis

this node.

Returns
Type Description
SceneContainer

ToSceneNode(SceneContainer)

Converts the Scene to a SceneNode with a separate Transform

Declaration
public static SceneNode ToSceneNode(this SceneContainer sc)
Parameters
Type Name Description
SceneContainer sc

this node.

Returns
Type Description
SceneNode

Translate(Transform, float3)

Translate this node.

Declaration
public static void Translate(this Transform tc, float3 xyz)
Parameters
Type Name Description
Transform tc
float3 xyz

Translation amount as float3.

Translate(Transform, float4x4)

Translates a transform component with a specified float4x4 translation matrix

Declaration
public static void Translate(this Transform tc, float4x4 translationMtx)
Parameters
Type Name Description
Transform tc
float4x4 translationMtx

Translation amount as represented in float4x4.

Generated by DocFX
GitHub Repo
Back to top