ChipmunkSharp.Windows by Kenneth Pouncey and Jose Medrano

<PackageReference Include="ChipmunkSharp.Windows" Version="7.0.0" />

 cpBBTree

public class cpBBTree
public int Count { get; }

public cpBBTree dynamicIndex { get; set; }

public Dictionary<ulong, Leaf> leaves { get; set; }

public Node pooledNodes { get; set; }

public Pair pooledPairs { get; set; }

public Node root { get; set; }

public int stamp { get; set; }

public cpBBTree staticIndex { get; set; }

public Func<object, cpVect> velocityFunc { get; set; }

public cpBBTree(cpBBTree staticIndex)

public void CollideStatic(cpBBTree staticIndex, Func<object, object, ulong, object, ulong> func, object data)

public bool Contains(Leaf obj)

public bool ContainsHash(ulong hashid)

public bool ContainsValue(object obj)

public void Each(Action<IObjectBox> func)

public Leaf Get(ulong arbHash)

public cpBB GetBB(IObjectBox obj)

public void GetBB(IObjectBox obj, IObjectBox dest)

public int GetStamp()

public object GetValue(ulong arbHash)

public void IncrementStamp()

public Leaf Insert(ulong hashid, IObjectBox obj)

public void LeafUpdateWrap(Leaf leaf)

public void Log()

public Node MakeNode(Node a, Node b)

public Pair MakePair(Node leafA, Pair nextA, Node leafB, Pair nextB)

public virtual void NodeRecycle(Node node)

public float NodeSegmentQuery(Node node, cpVect a, cpVect b)

public void Optimize()

public void PairInsert(Node a, Node b)

public void PairRecycle(Pair pair)

public void PairsClear(Node leaf)

public Node PartitionNodes(Dictionary<int, Leaf> nodes, int offset, int count)

public void Query(object context, cpBB bb, Func<object, object, ulong, object, ulong> func, object node)

public void Reindex()

public void ReindexObject(object obj, ulong hashid)

public void ReindexQuery(Func<object, object, ulong, object, ulong> func, object data)

public void Remove(ulong key)

public void SegmentQuery(object obj, cpVect a, cpVect b, float t_exit, Func<object, object, object, float> func, object data)

public void SetFilter(Func<object, object, bool> func, object data)

public void SetVelocityFunc(Func<object, cpVect> func)

public Node SubtreeInsert(Node subtree, Leaf leaf)

public void SubtreeQuery(Node subtree, object obj, cpBB bb, Func<object, object, ulong, object, ulong> func, ref object data)

public void SubtreeRecycle(Node node)

public Node SubtreeRemove(Node subtree, Leaf leaf)

public float SubtreeSegmentQuery(Node subtree, object obj, cpVect a, cpVect b, float t_exit, Func<object, object, object, float> func, object data)

public bool TryGetValue(ulong key, out Leaf value)