C# (CSharp) datastructures Namespace

Classes

Name Description
BFSInnerNode Represents an inner node of a BFSOctree.
BFSLeaf Represents a leaf node of a BFSOctree. A leaf doesn't contain any positional data, but only visual data.
BFSOctree Represents a compressed octree. The nodes are stored sequentially in memory as if they were traversed via BFS. Empty nodes are omitted completely. A node consists of two parts: "Positional data" and "visual data". The positional data determiens the octree hierarchy whereas the visual data is used for rendering. The positional data consits of a "child mask" (one byte in which every bit represents a child of the current node) and a "child pointer" that stores the index of the first child node within the BFSOctree. Thus the mask allows to compute the child count of the current node as well as the children's positions. node: (mask|child-ptr) index: 0 1 2 3 ... root node first child second child first child's first child ... (1001000|1) (00111011|3) (00010000|8) (00110100|36) ... See also DynamicOctree for more infos on the general octree structure used in this lib.
DynamicOctree Represents a tree data structure in which every node has up to 8 child nodes. Convention: 6---7 / /| 2---3 5 | |/ 0---1 with: y z |/ 0-x (left handed coordinate system) This is a dynamic octree that can be altered at runtime and is intended for construction of 3D models. Every node has a pointer to its first child and a pointer to the next child of his parent node after it: parent->nil | node->parent's second child->parent's third child->nil | | node's first child-> ... parent's third child's ... first child Since the octree is sparse, nodes store the relative position to their parents. Every DynamicOctree is a cube.
DynamicOctreeNode Represents an node of a DynamicOctree.
SharedDepthBuffer Represents a depth buffer that is accessable by multiple threads. Internally multiple depth buffers are stored so that each can be accessed by its own thread and no conflicts occur. These depth buffers are merged back into one (by computing max(depthBuffer0, ..., depthBufferN) for every element).
VisualData A container for all visual data stored inside a node.