#ifndef WORLD_CHUNK_H #define WORLD_CHUNK_H #include #include #include #include #include #include #include #include "world_terrain_lod.h" class WorldTerrainLod; class WorldChunk { AABB aabb; Vector3i loc; Vector points; Vector transforms; Vector variance; int lod; bool dirty; public: static WorldChunk create(const Vector3i &loc, const Vector &points); void randomize_transforms(Ref dnoise, Ref vnoise, Ref rnd_offset, float density_scaler); AABB get_aabb() const; void update_lod(const Transform &vxform, const List &lod_list); inline const Vector3 *get_points() const { return points.ptr(); } inline int get_points_count() const { return points.size(); } inline int get_transforms_count() const { return transforms.size(); } inline const Transform *get_transforms() const { return transforms.ptr(); } inline const float *get_variance() const { return variance.ptr(); } inline int get_lod() const { return lod; } inline bool is_dirty() const { return dirty; } inline void set_dirty() { dirty = true; } inline void clear_dirty() { dirty = false; } inline Vector3i get_loc() const { return loc; } }; #endif