8#include <geomc/linalg/AffineTransform.h>
34template <
typename HTag>
58template <
typename HTag,
typename T,
size_t N,
typename XTag=HTag>
78template <
typename HTag,
typename T,
size_t N,
typename BTag=HTag>
112 if (
cmp != std::strong_ordering::equal)
return cmp;
113 return entt::to_integral(
eid) <=> entt::to_integral(
other.eid);
131struct TreePath :
public SmallStorage<entt::entity, 6> {};
145template <
typename Node,
typename T,
size_t N>
147 using InnerNode = Node;
153template <
typename Traversal,
typename T,
size_t N>
156 TransformedNode<typename std::remove_cvref_t<Traversal>::Node::InnerNode,T,N>
170template <
typename Node,
typename T,
size_t N>
177template <
typename Traversal,
typename T,
size_t N>
180 BoundedNode<typename std::remove_cvref_t<Traversal>::Node::InnerNode,T,N>
193template <
typename Node,
typename T,
size_t N>
207template <
typename Node,
typename T,
size_t N>
Concept satisfied by traversals whose node type is BoundedNode<...,T,N>.
Satisfied by types that have a root and a successors function yielding Node.
Common type aliases, enumerations, and utility functions used throughout entttree.
std::vector< ChildEntry > ChildList
Sorted list of children for a single parent.
Fractional-index type for ordering siblings in a hierarchy.
A traversal node augmented with transform and bounding information.
std::optional< Rect< T, N > > intrinsic_bounds
The entity's own bounds, if set.
std::optional< Rect< T, N > > computed_bounds
Union of intrinsic + children bounds, if any.
Internal representation of a child in the sorted children cache.
Position position
Sibling ordering key.
entt::entity eid
Child entity.
A system for maintaining parent-child relationships on entities.
ECS component storing an entity's own (intrinsic) bounding box.
Rect< T, N > bounds
Axis-aligned bounding box in local coordinates.
A node handle yielded by hierarchy traversals and queries.
entt::entity parent_id
The parent entity, or entt::null for root traversal entries.
entt::entity node_id
The entity this entry represents.
Position position
Sibling ordering key within the parent.
ECS component storing an entity's parent and sibling position.
entt::entity parent
Parent entity, or entt::null for roots.
Position position
Sibling ordering key.
A bounded node augmented with a point transformed into local coordinates.
Vec< T, N > local_point
The query point in this node's local coordinate system.
A fractional index with strong ordering, used for sibling positioning.
A bounded node augmented with a ray and hit interval in local coordinates.
Rect< T, 1 > interval
Parameter interval where the ray intersects the computed bounds.
Ray< T, N > local_ray
The query ray in this node's local coordinate system.
A path from a root entity down to a descendant.
Lazy, composable graph traversal framework built on C++20 generators.