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

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

#include <NodeCodecQuadTreeHalfFloat.h>

Public Member Functions

uint GetPessimisticMemoryEstimate (uint inNodeCount) const
 Get an upper bound on the amount of bytes needed for a node tree with inNodeCount nodes.
 
uint 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, uint inNodeStart, uint inNumChildren, const uint *inChildrenNodeStart, const uint *inChildrenTrianglesStart, ByteBuffer &ioBuffer, const char *&outError) const
 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, uint inRootNodeStart, uint inRootTrianglesStart, const char *&outError) const
 Once all nodes have been finalized, this will finalize the header of the nodes.
 

Detailed Description

template<int Alignment>
class NodeCodecQuadTreeHalfFloat< Alignment >::EncodingContext

This class encodes and compresses quad tree nodes.

Member Function Documentation

◆ Finalize()

template<int Alignment>
bool NodeCodecQuadTreeHalfFloat< Alignment >::EncodingContext::Finalize ( Header * outHeader,
const AABBTreeBuilder::Node * inRoot,
uint inRootNodeStart,
uint inRootTrianglesStart,
const char *& outError ) const
inline

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

◆ GetPessimisticMemoryEstimate()

template<int Alignment>
uint NodeCodecQuadTreeHalfFloat< Alignment >::EncodingContext::GetPessimisticMemoryEstimate ( uint inNodeCount) const
inline

Get an upper bound on the amount of bytes needed for a node tree with inNodeCount nodes.

◆ NodeAllocate()

template<int Alignment>
uint NodeCodecQuadTreeHalfFloat< Alignment >::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 uint(-1) on error and reports the error in outError

◆ NodeFinalize()

template<int Alignment>
bool NodeCodecQuadTreeHalfFloat< Alignment >::EncodingContext::NodeFinalize ( const AABBTreeBuilder::Node * inNode,
uint inNodeStart,
uint inNumChildren,
const uint * inChildrenNodeStart,
const uint * inChildrenTrianglesStart,
ByteBuffer & ioBuffer,
const char *& outError ) const
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)


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