Vigilante Game Framework  1.0.0.8
A 2D/3D C++ Game Framework using SFML.
Public Member Functions | List of all members
V3DBatchModelGroup Class Reference

Renders multiple instances of a single base 3D renderable object. More...

#include <V3DBatchModelGroup.h>

Inheritance diagram for V3DBatchModelGroup:
VGroup VBase

Public Member Functions

 V3DBatchModelGroup (V3DObject *BaseObject, unsigned int MaxSize=0)
 
virtual void Destroy () override
 Revives all dead objects before reviving the group itself.
 
void UpdateShader (V3DCamera *camera, V3DShader *shader)
 
virtual void Draw (sf::RenderTarget &RenderTarget) override
 
- Public Member Functions inherited from VGroup
 VGroup (unsigned int maxSize=0)
 
int Length ()
 
VBaseAdd (VBase *object)
 
VBaseRemove (VBase *object, bool splice=false)
 
VBaseFirstAvailable ()
 
int FirstNULL ()
 
VBaseFirstExisting ()
 
VBaseFirstAlive ()
 
VBaseFirstDead ()
 
int CountAlive (bool Recursive=false)
 
int CountDead (bool Recursive=false)
 
VBaseGetRandom (int min=0, int max=0)
 
void ForEach (std::function< void(VBase *)> function, bool recursive=false)
 
void ForEachAlive (std::function< void(VBase *)> function, bool recursive=false)
 
void ForEachDead (std::function< void(VBase *)> function, bool recursive=false)
 
void ForEachExists (std::function< void(VBase *)> function, bool recursive=false)
 
VBaseGetGroupItem (int index)
 
template<class T >
T * GetGroupItemAsType (int index)
 
int GetIndexOfItem (VBase *object)
 
void OrganiseNULLS ()
 Sort nullptr members to the bottom of the group.
 
void Swap (int a, int b)
 
void Sort (std::function< bool(VBase *, VBase *)> func)
 
void Reverse ()
 Reverse order of group.
 
void Clear ()
 Clears the whole group (does not destroy any of the members, that must be done using the Destroy method).
 
virtual void Kill () override
 Kills all living objects before killing the group itself.
 
virtual void Revive () override
 Revives all dead objects before reviving the group itself.
 
virtual void Update (float dt) override
 

Additional Inherited Members

- Public Types inherited from VGroup
typedef VBase VSUPERCLASS
 Used to call parent class functions when they are overrided in class.
 
- Static Public Member Functions inherited from VBase
static const wchar_t * VString (const char *fmt,...)
 
static void VLog (const char *fmt,...)
 
static void VLogError (const char *fmt,...)
 
static void VClearLog ()
 
- Public Attributes inherited from VBase
bool active = true
 Base can be updated using Update if true.
 
bool visible = true
 Base can be rendered using Draw if true.
 
bool alive = true
 Helper member that is mainly used filter out behaviours to objects which aren't alive in the scene.
 
bool exists = true
 Base can be updated and rendered if true, else it would no longer be treated as being part of the scene.
 
VType type = NONE
 Base object type, typically set in the constructor of an inherited object to specify what type it is.
 
uint32_t RefCount = 0
 Counts the amount of times the object is referenced in groups, ensures an object is only destroyed when no longer part of a single group.
 
- Protected Attributes inherited from VGroup
std::vector< VBase * > members
 VBase List.
 
int length = 0
 Current amount of members in the list.
 
unsigned int MaxSize = 0
 Maximum Size of the list, used if VGroup is set to have a fixed size.
 

Detailed Description

Renders multiple instances of a single base 3D renderable object.

Constructor & Destructor Documentation

◆ V3DBatchModelGroup()

V3DBatchModelGroup::V3DBatchModelGroup ( V3DObject BaseObject,
unsigned int  MaxSize = 0 
)
Parameters
BaseObjectThe base 3D object that is used for rendering multiple instances.
MaxSizeThe fixed length of the group. If 0, then the VGroup has no limit in size.

Member Function Documentation

◆ Draw()

virtual void V3DBatchModelGroup::Draw ( sf::RenderTarget &  RenderTarget)
overridevirtual

Renders all alive and visible objects in the group.

Parameters
RenderTargetThe game's sf::RenderTarget object to render data onto.

Reimplemented from VGroup.

◆ UpdateShader()

void V3DBatchModelGroup::UpdateShader ( V3DCamera camera,
V3DShader shader 
)

Updates the shader with the current camera and object specific values.

Parameters
shaderThe scene shader.
cameraThe scene camera.

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