41 #define NAMED_RTREE_QUAL RTree<Named*, Named, float, 2, Named::StoringVisitor, float, 8, 4>
44 inline float NAMED_RTREE_QUAL::RectSphericalVolume(Rect* a_rect) {
46 const float extent0 = a_rect->m_max[0] - a_rect->m_min[0];
47 const float extent1 = a_rect->m_max[1] - a_rect->m_min[1];
48 return .78539816f * (extent0 * extent0 + extent1 * extent1);
52 inline NAMED_RTREE_QUAL::Rect NAMED_RTREE_QUAL::CombineRect(Rect* a_rectA, Rect* a_rectB) {
53 ASSERT(a_rectA && a_rectB);
55 newRect.m_min[0] =
rtree_min(a_rectA->m_min[0], a_rectB->m_min[0]);
56 newRect.m_max[0] =
rtree_max(a_rectA->m_max[0], a_rectB->m_max[0]);
57 newRect.m_min[1] =
rtree_min(a_rectA->m_min[1], a_rectB->m_min[1]);
58 newRect.m_max[1] =
rtree_max(a_rectA->m_max[1], a_rectB->m_max[1]);
72 class NamedRTree :
private RTree<Named*, Named, float, 2, Named::StoringVisitor > {
91 void Insert(
const float a_min[2],
const float a_max[2],
Named* a_data) {
102 void Remove(
const float a_min[2],
const float a_max[2],
Named* a_data) {