Simulant  21.06-50
A portable game engine for Windows, OSX, Linux, Dreamcast, and PSP
Public Member Functions | Friends | List of all members
smlt::VertexData Class Reference
Inheritance diagram for smlt::VertexData:
smlt::RefCounted< VertexData > smlt::UniquelyIdentifiable< VertexData > smlt::NotifiesDestruction< VertexData > smlt::TwoPhaseConstructed

Public Member Functions

 VertexData (VertexSpecification vertex_specification)
 
 VertexData (const VertexData &rhs)=delete
 
VertexDataoperator= (const VertexData &rhs)=delete
 
void reset (VertexSpecification vertex_specification)
 
void clear (bool release_memory=false)
 
void move_to_start ()
 
void move_by (int32_t amount)
 
void move_to (int32_t index)
 
void move_to_end ()
 
uint32_t move_next ()
 
void done ()
 
uint64_t last_updated () const
 
void position (float x, float y, float z, float w)
 
void position (float x, float y, float z)
 
void position (float x, float y)
 
void position (const Vec3 &pos)
 
void position (const Vec2 &pos)
 
void position (const Vec4 &pos)
 
template<typename T >
const T * position_at (uint32_t idx) const
 
template<typename T >
const T * normal_at (uint32_t idx) const
 
template<typename T >
const T * texcoord0_at (uint32_t idx) const
 
template<typename T >
const T * texcoord1_at (uint32_t idx) const
 
template<typename T >
const T * diffuse_at (const uint32_t index) const
 
Vec4 position_nd_at (uint32_t idx, float defz=0.0f, float defw=1.0f) const
 
void normal (float x, float y, float z)
 
void normal (const Vec3 &n)
 
void tex_coord0 (float u, float v)
 
void tex_coord0 (float u, float v, float w)
 
void tex_coord0 (float x, float y, float z, float w)
 
void tex_coord0 (const Vec2 &vec)
 
void tex_coord1 (float u, float v)
 
void tex_coord1 (float u, float v, float w)
 
void tex_coord1 (float x, float y, float z, float w)
 
void tex_coord1 (const Vec2 &vec)
 
void tex_coord2 (float u, float v)
 
void tex_coord2 (float u, float v, float w)
 
void tex_coord2 (float x, float y, float z, float w)
 
void tex_coord2 (const Vec2 &vec)
 
void tex_coord3 (float u, float v)
 
void tex_coord3 (float u, float v, float w)
 
void tex_coord3 (float x, float y, float z, float w)
 
void tex_coord3 (const Vec2 &vec)
 
void diffuse (float r, float g, float b, float a)
 
void diffuse (uint8_t r, uint8_t g, uint8_t b, uint8_t a)
 
void diffuse (const Colour &colour)
 
void specular (float r, float g, float b, float a)
 
void specular (const Colour &colour)
 
uint32_t count () const
 
sig::signal< void()> & signal_update_complete ()
 
bool empty () const
 
int32_t cursor_position () const
 
int32_t cursor_offset () const
 
uint32_t stride () const
 
uint32_t copy_vertex_to_another (VertexData &out, uint32_t idx)
 
void transform_by (const Mat4 &transform)
 
void interp_vertex (uint32_t source_idx, const VertexData &dest_state, uint32_t dest_idx, VertexData &out, uint32_t out_idx, float interp)
 
uint8_t * data ()
 
const uint8_t * data () const
 
uint32_t data_size () const
 
VertexAttribute attribute_for_type (VertexAttributeType type) const
 
void reserve (uint32_t size)
 
void resize (uint32_t size)
 
const VertexSpecificationvertex_specification () const
 
bool clone_into (VertexData &other)
 
template<>
const Vec2position_at (uint32_t idx) const
 
template<>
const Vec3position_at (uint32_t idx) const
 
template<>
const Vec4position_at (uint32_t idx) const
 
template<>
const Vec2normal_at (uint32_t idx) const
 
template<>
const Vec3normal_at (uint32_t idx) const
 
template<>
const Vec2texcoord0_at (uint32_t idx) const
 
template<>
const Vec3texcoord0_at (uint32_t idx) const
 
template<>
const Vec4texcoord0_at (uint32_t idx) const
 
template<>
const Vec2texcoord1_at (uint32_t idx) const
 
template<>
const Vec3texcoord1_at (uint32_t idx) const
 
template<>
const Vec4texcoord1_at (uint32_t idx) const
 
template<>
const Colourdiffuse_at (const uint32_t idx) const
 
template<>
const Vec2position_at (uint32_t idx) const
 
template<>
const Vec3position_at (uint32_t idx) const
 
template<>
const Vec4position_at (uint32_t idx) const
 
template<>
const Vec2normal_at (uint32_t idx) const
 
template<>
const Vec3normal_at (uint32_t idx) const
 
template<>
const Vec2texcoord0_at (uint32_t idx) const
 
template<>
const Vec3texcoord0_at (uint32_t idx) const
 
template<>
const Vec4texcoord0_at (uint32_t idx) const
 
template<>
const Vec2texcoord1_at (uint32_t idx) const
 
template<>
const Vec3texcoord1_at (uint32_t idx) const
 
template<>
const Vec4texcoord1_at (uint32_t idx) const
 
- Public Member Functions inherited from smlt::TwoPhaseConstructed
virtual bool init ()
 
virtual void clean_up ()
 
- Public Member Functions inherited from smlt::UniquelyIdentifiable< VertexData >
 UniquelyIdentifiable (const UniquelyIdentifiable &rhs)
 
UniquelyIdentifiableoperator= (const UniquelyIdentifiable &rhs)
 
uuid64 uuid () const
 

Friends

class VertexDataTest
 

Additional Inherited Members

- Public Types inherited from smlt::RefCounted< VertexData >
typedef std::shared_ptr< VertexDataptr
 
typedef std::weak_ptr< VertexDatawptr
 
- Static Public Member Functions inherited from smlt::RefCounted< VertexData >
static RefCounted< VertexData >::ptr create (Args &&... args)
 
static RefCounted< VertexData >::ptr create ()
 
- Protected Member Functions inherited from smlt::RefCounted< VertexData >
 RefCounted (Args &&...)
 

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