8#include <Tempest/Point>
17 size_t size()
const {
return arr.size(); }
26 void find(
const Tempest::Vec3& p,
float R,
const void* ctx,
void (*func)(
const void*,
Vob*));
30 Vob*
const*
data()
const {
return arr.data(); }
33 std::vector<Vob*> arr;
34 std::vector<Vob*> index;
35 std::vector<Vob*> dynamic;
38 void buildIndex(
Vob** v,
size_t cnt, uint8_t depth);
39 void sort(
Vob** v,
size_t cnt, uint8_t component);
40 void implFind(
Vob** v,
size_t cnt, uint8_t depth,
const Tempest::Vec3& p,
float R,
const void* ctx,
void(*func)(
const void*,
Vob*));
66 T**
begin() {
return reinterpret_cast<T**
>(
data()); }
69 T*
const*
begin()
const {
return reinterpret_cast<T*const*
>(
data()); }
73 void find(
const Tempest::Vec3& p,
float R,
const Func& f) {
75 auto& f = *
reinterpret_cast<const Func*
>(ctx);
76 f(*
reinterpret_cast<T*
>(v));
void find(const Tempest::Vec3 &p, float R, const void *ctx, void(*func)(const void *, Vob *))
Vob *const * data() const
bool hasObject(const Vob *v) const
bool hasObject(const T *v) const
void find(const Tempest::Vec3 &p, float R, const Func &f)
static void parallelTasks(std::vector< T > &data, const F &func)