Unravel Engine C++ Reference
Loading...
Searching...
No Matches
unravel::batch_instance_collection Class Reference

Collection of batch instances with utilities. More...

#include <batch_instance.h>

Public Types

using container_type = std::vector<batch_instance>
 
using iterator = container_type::iterator
 
using const_iterator = container_type::const_iterator
 

Public Member Functions

 batch_instance_collection ()=default
 Default constructor.
 
void reserve (size_t count)
 Reserve space for instances.
 
void add_instance (const batch_instance &instance)
 Add an instance to the collection.
 
void add_instance (const math::mat4 &world_transform)
 Add an instance with just world transform.
 
void clear ()
 Clear all instances.
 
auto size () const -> size_t
 Get number of instances.
 
auto empty () const -> bool
 Check if collection is empty.
 
auto operator[] (size_t index) -> batch_instance &
 Get instance by index.
 
auto operator[] (size_t index) const -> const batch_instance &
 Get instance by index (const)
 
auto begin () -> iterator
 Get iterator to beginning.
 
auto end () -> iterator
 Get iterator to end.
 
auto begin () const -> const_iterator
 Get const iterator to beginning.
 
auto end () const -> const_iterator
 Get const iterator to end.
 
auto to_vertex_data () const -> std::vector< instance_vertex_data >
 Convert all instances to GPU vertex data.
 
auto get_gpu_memory_size () const -> size_t
 Get memory size required for GPU data.
 

Detailed Description

Collection of batch instances with utilities.

Provides convenient methods for managing collections of instances and converting them to GPU-friendly format.

Definition at line 117 of file batch_instance.h.

Member Typedef Documentation

◆ const_iterator

using unravel::batch_instance_collection::const_iterator = container_type::const_iterator

Definition at line 122 of file batch_instance.h.

◆ container_type

◆ iterator

using unravel::batch_instance_collection::iterator = container_type::iterator

Definition at line 121 of file batch_instance.h.

Constructor & Destructor Documentation

◆ batch_instance_collection()

unravel::batch_instance_collection::batch_instance_collection ( )
default

Default constructor.

Member Function Documentation

◆ add_instance() [1/2]

void unravel::batch_instance_collection::add_instance ( const batch_instance & instance)

Add an instance to the collection.

Parameters
instanceInstance to add

Definition at line 112 of file batch_instance.cpp.

◆ add_instance() [2/2]

void unravel::batch_instance_collection::add_instance ( const math::mat4 & world_transform)

Add an instance with just world transform.

Parameters
world_transformWorld transformation matrix

Definition at line 117 of file batch_instance.cpp.

◆ begin() [1/2]

auto unravel::batch_instance_collection::begin ( ) -> iterator

Get iterator to beginning.

Returns
Iterator to first instance

Definition at line 147 of file batch_instance.cpp.

◆ begin() [2/2]

auto unravel::batch_instance_collection::begin ( ) const -> const_iterator

Get const iterator to beginning.

Returns
Const iterator to first instance

Definition at line 157 of file batch_instance.cpp.

◆ clear()

void unravel::batch_instance_collection::clear ( )

Clear all instances.

Definition at line 122 of file batch_instance.cpp.

◆ empty()

auto unravel::batch_instance_collection::empty ( ) const -> bool

Check if collection is empty.

Returns
True if no instances are stored

Definition at line 132 of file batch_instance.cpp.

◆ end() [1/2]

auto unravel::batch_instance_collection::end ( ) -> iterator

Get iterator to end.

Returns
Iterator past last instance

Definition at line 152 of file batch_instance.cpp.

◆ end() [2/2]

auto unravel::batch_instance_collection::end ( ) const -> const_iterator

Get const iterator to end.

Returns
Const iterator past last instance

Definition at line 162 of file batch_instance.cpp.

◆ get_gpu_memory_size()

auto unravel::batch_instance_collection::get_gpu_memory_size ( ) const -> size_t

Get memory size required for GPU data.

Returns
Size in bytes needed for GPU vertex buffer

Definition at line 180 of file batch_instance.cpp.

◆ operator[]() [1/2]

auto unravel::batch_instance_collection::operator[] ( size_t index) -> batch_instance&

Get instance by index.

Parameters
indexIndex of the instance
Returns
Reference to the instance

Definition at line 137 of file batch_instance.cpp.

◆ operator[]() [2/2]

auto unravel::batch_instance_collection::operator[] ( size_t index) const -> const batch_instance&

Get instance by index (const)

Parameters
indexIndex of the instance
Returns
Const reference to the instance

Definition at line 142 of file batch_instance.cpp.

◆ reserve()

void unravel::batch_instance_collection::reserve ( size_t count)

Reserve space for instances.

Parameters
countNumber of instances to reserve space for

Definition at line 107 of file batch_instance.cpp.

◆ size()

auto unravel::batch_instance_collection::size ( ) const -> size_t

Get number of instances.

Returns
Number of instances in the collection

Definition at line 127 of file batch_instance.cpp.

◆ to_vertex_data()

auto unravel::batch_instance_collection::to_vertex_data ( ) const -> std::vector<instance_vertex_data>

Convert all instances to GPU vertex data.

Returns
Vector of GPU-friendly vertex data

Definition at line 167 of file batch_instance.cpp.


The documentation for this class was generated from the following files: