Jolt Physics
A multi core friendly Game Physics Engine
Loading...
Searching...
No Matches
NodeCodecQuadTreeHalfFloat::EncodingContext Class Reference

This class encodes and compresses quad tree nodes. More...

#include <NodeCodecQuadTreeHalfFloat.h>

Public Member Functions

void PrepareNodeAllocate (const AABBTreeBuilder::Node *inNode, uint64 &ioBufferSize) const
 Mimics the size a call to NodeAllocate() would add to the buffer.
 
size_t NodeAllocate (const AABBTreeBuilder::Node *inNode, Vec3Arg inNodeBoundsMin, Vec3Arg inNodeBoundsMax, Array< const AABBTreeBuilder::Node * > &ioChildren, Vec3 outChildBoundsMin[NumChildrenPerNode], Vec3 outChildBoundsMax[NumChildrenPerNode], ByteBuffer &ioBuffer, const char *&outError) const
 
bool NodeFinalize (const AABBTreeBuilder::Node *inNode, size_t inNodeStart, uint inNumChildren, const size_t *inChildrenNodeStart, const size_t *inChildrenTrianglesStart, ByteBuffer &ioBuffer, const char *&outError)
 Once all nodes have been added, this call finalizes all nodes by patching in the offsets of the child nodes (that were added after the node itself was added)
 
bool Finalize (Header *outHeader, const AABBTreeBuilder::Node *inRoot, size_t inRootNodeStart, size_t inRootTrianglesStart, const char *&outError) const
 Once all nodes have been finalized, this will finalize the header of the nodes.
 

Detailed Description

This class encodes and compresses quad tree nodes.

Member Function Documentation

◆ Finalize()

bool NodeCodecQuadTreeHalfFloat::EncodingContext::Finalize ( Header outHeader,
const AABBTreeBuilder::Node inRoot,
size_t  inRootNodeStart,
size_t  inRootTrianglesStart,
const char *&  outError 
) const
inline

Once all nodes have been finalized, this will finalize the header of the nodes.

◆ NodeAllocate()

size_t NodeCodecQuadTreeHalfFloat::EncodingContext::NodeAllocate ( const AABBTreeBuilder::Node inNode,
Vec3Arg  inNodeBoundsMin,
Vec3Arg  inNodeBoundsMax,
Array< const AABBTreeBuilder::Node * > &  ioChildren,
Vec3  outChildBoundsMin[NumChildrenPerNode],
Vec3  outChildBoundsMax[NumChildrenPerNode],
ByteBuffer ioBuffer,
const char *&  outError 
) const
inline

Allocate a new node for inNode. Algorithm can modify the order of ioChildren to indicate in which order children should be compressed Algorithm can enlarge the bounding boxes of the children during compression and returns these in outChildBoundsMin, outChildBoundsMax inNodeBoundsMin, inNodeBoundsMax is the bounding box if inNode possibly widened by compressing the parent node Returns size_t(-1) on error and reports the error in outError

◆ NodeFinalize()

bool NodeCodecQuadTreeHalfFloat::EncodingContext::NodeFinalize ( const AABBTreeBuilder::Node inNode,
size_t  inNodeStart,
uint  inNumChildren,
const size_t *  inChildrenNodeStart,
const size_t *  inChildrenTrianglesStart,
ByteBuffer ioBuffer,
const char *&  outError 
)
inline

Once all nodes have been added, this call finalizes all nodes by patching in the offsets of the child nodes (that were added after the node itself was added)

◆ PrepareNodeAllocate()

void NodeCodecQuadTreeHalfFloat::EncodingContext::PrepareNodeAllocate ( const AABBTreeBuilder::Node inNode,
uint64 ioBufferSize 
) const
inline

Mimics the size a call to NodeAllocate() would add to the buffer.


The documentation for this class was generated from the following file: