2#include <engine/engine_export.h>
4#include <hpp/small_vector.hpp>
92 if(instance_index >= bounds_list.size())
96 const auto& bounds = bounds_list[instance_index];
97 return bounds.is_populated() ? &bounds :
nullptr;
111 return bounds.is_populated() ? &bounds :
nullptr;
Storage for box vector values and wraps up common functionality.
bbox & add_point(const vec3 &point)
Grows the bounding box based on the point passed.
vec3 max
The maximum vector value of the bounding box.
vec3 min
The minimum vector value of the bounding box.
bool is_populated() const
Checks if the bounding box is populated.
Retained per-model render proxy data used by the culling/LOD code.
auto has_instance_bounds() const -> bool
auto has_pose_bounds() const -> bool
std::vector< math::bbox > skinned_bounds
Cached world-space animated bounds per skinned submesh index.
void begin_refresh(size_t submesh_count)
auto has_animated_bounds() const -> bool
math::bbox instance_bounds_union
auto get_instance_bounds(uint32_t submesh_index, size_t instance_index) const -> const math::bbox *
Gets the cached world bounds for a (submesh, instance) pair.
void add_instance_bounds(uint32_t submesh_index, const math::bbox &world_bounds)
math::bbox animated_bounds
hpp::small_vector< hpp::small_vector< math::bbox > > instance_bounds
auto get_skinned_bounds(uint32_t submesh_index) const -> const math::bbox *
Gets the cached animated world bounds for a skinned submesh.