Namespace Fusee.Xene
Classes
CollapsingStateStack<T>
An IStateStack implementation behaving better in situations where many subsequent Push (and Pop) operations occur without actually altering the TOS contents.
EmptyState
Dummy implementation of the IStateStack interface. Nothing can be stored within instance of this type. There's no Top of Stack object. Only the stack Depth is correctly tracked according to the number of Push() and Pop() operations already performed on the EmptyStack.
SceneComponentFinder<TComponentToFind, TNode, TComponent>
Allows various searches over scene graphs. This class can be used directly but will be more commonly used by calling one of the Find extension methods declared in SceneFinderExtensions.
SceneFinderBase<TSceneElementType, TNode, TComponent>
Base class serving for various searches over scene graphs. See the list of derived classes.
SceneFinderExtensions
Various extensions methods to find nodes or components within trees of scene nodes.
SceneNodeFinder<TNodeToFind, TNode, TComponent>
Allows various searches over scene graphs. This class can be used directly but will be more commonly used by calling one of the Find extension methods declared in SceneFinderExtensions.
SceneNodeWhereComponentFinder<TComponentToFind, TNode, TComponent>
Allows various searches over scene graphs. This class can be used directly but will be more commonly used by calling one of the Find extension methods declared in SceneFinderExtensions.
StandardState
A standard state for typical traversals mimicking rendering activities. Keeps track of the main matrices as well as selected render states.
StateStack<T>
A simple implementation of the IStateStack interface. Defines the Tos property granting read and write access to the current Top of stack.
Viserator<TItem, TState, TNode, TComponent>
A Viserator is a scene visitor which returns an enumerator of a user defined type. Serves as a base class for use-cases where traversing a node-component-graph should yield a list (enumerator) of results.
ViseratorBase<TItem, TNode, TComponent>
Extract of the final Viserator without everything State related. This class is necessary to be able to define extension methods on node lists. Do not use this class directly.
ViseratorExtensions
Contains extensions methods to perform Viserator<TItem, TState, TNode, TComponent> actions on trees of scene nodes.
VisitMethodAttribute
Use this attribute to identify visitor methods. Visitor methods are called during traversal on nodes or components with the specified type.
Visitor<TNode, TComponent>
This class tries to serve three goals
- As a base class for visitor patterns. Users can add visitor methods and provide code for different types of visited items.
- As building block for enumerators. Visitor methods can yield an enumeration.
- As a tool set to implement transformations on scenes. Transformations operate on scenes and alter their structure.
Visitors derived from this class may implement their own Visit methods for all kinds of scene graph elements. Visitor methods can be defined for scene nodes (although many implementations will most likely NOT have a very big inheritance tree for nodes) as well as for scene components. A Visitor method can be any instance method (not static) taking one parameter either derived from INode or derived from IComponent. To mark such a method as a Visitor method it needs to be decorated with the VisitMethodAttribute attribute. Visitor methods can have arbitrary names and don't necessarily need to be virtual.
VisitorHelpers
Static class containing helper methods around the Visitor
VisitorState
Use this as a base class for defining your own state for arbitrary Visitors.
Interfaces
IComponent
Interface to be implemented by component types to be accessed by functionality in Fusee.Xene.
INode
Interface to be implemented by node types to be accessed by functionality in Fusee.Xene.
IStateStack
Defines the minimum set of operations on any data structure to be used as a stack during traversal. The main difference between StateStacks and "normal" stacks (System.Collections.Generic.Stack<T>) is that the Push operation here doesn't take an argument but simply replicates the current state (or rather - memorizes the current state for restoring it later with Push).