|
| MeshGraphicsModel (std::shared_ptr< ShaderProgramManager > prg_mgr, const std::string &name="") |
|
void | addMeshRender (std::shared_ptr< MeshRender > mesh_render) |
|
unsigned int | addMeshGroup (std::shared_ptr< MaterialMeshGroup > mesh_grp, const unsigned int layer=0) |
|
std::shared_ptr< MaterialMeshGroup > | getMeshGroup (const unsigned int id) |
|
void | setMeshGroup (const unsigned int id, std::shared_ptr< MaterialMeshGroup > mesh_grp) |
|
void | removeMeshGroup (const unsigned int id) |
|
const std::map< unsigned int, std::shared_ptr< MaterialMeshGroup > > & | getMeshGroups () const |
|
std::map< unsigned int, std::shared_ptr< MaterialMeshGroup > > & | getMeshGroups () |
|
std::shared_ptr< STK::Material > | findMaterial (const std::string &name) const |
|
void | needsUpdate (const bool needs_update) |
|
std::shared_ptr< const MeshNode > | getRoot () const |
|
std::shared_ptr< MeshNode > | getRoot () |
|
void | setRoot (const std::shared_ptr< MeshNode > &node) |
|
void | redraw (const STK::Camera &cam, const STK::Viewport &vp, int render_mask=STK::OpaqueMask, const std::vector< std::shared_ptr< STK::Uniform > > *uniforms=nullptr) override |
|
void | calcBoundingSphere (STK::Vector3f ¢er, double &radius) override |
|
void | drawShadowMap (const STK::Camera &cam, const STK::Viewport &vp, const Camera &shd_cam, const Viewport &shd_vp, STK::ShaderProgram *shader, STK::ShaderProgram *tex_shader) override |
|
void | addAnimation (std::shared_ptr< AnimationController > anim) |
|
const std::vector< std::shared_ptr< AnimationController > > & | getAnimations () const |
|
int | findAnimations (const std::string &search, std::list< std::shared_ptr< AnimationController > > &anims) |
|
std::shared_ptr< AnimationController > | findAnimation (const std::string &name) |
| Find the animation with the exact name.
|
|
void | findMeshNodes (const std::string &search, std::vector< std::shared_ptr< STK::MeshNode > > &nodes) const |
|
void | findMeshNodes (const std::regex &re, std::vector< std::shared_ptr< STK::MeshNode > > &nodes) const |
|
std::shared_ptr< STK::MeshNode > | findMeshNode (const std::string &name) const |
|
void | calcBoundingBox (STK::Vector3f &min, STK::Vector3f &max) override |
|
std::shared_ptr< STK::ShaderProgramManager > | shaderProgramManager () |
|
std::shared_ptr< MeshGraphicsModel > | refCopy () |
|
void | redrawBackToFront (const Camera &cam, const STK::Viewport &, int render_mask, const std::vector< std::shared_ptr< Uniform > > *uniforms) |
|
| GraphicsModel (const std::string &name="") |
|
void | setName (const std::string &name) |
|
const std::string & | getName () const |
|
virtual void | filterChildren (const filter_fn &fn, std::vector< std::shared_ptr< GraphicsModel > > &matched) |
|
void | setTransform (const STK::Matrix4x4f &transform) |
|
const STK::Matrix4x4f & | getTransform () const |
|
void | setEnvironmentMap (const std::shared_ptr< STK::CubeMap > &env_map) |
|
std::shared_ptr< STK::CubeMap > | getEnvironmentMap () |
|
std::shared_ptr< const STK::CubeMap > | getEnvironmentMap () const |
|
void | setWireframe (bool wireframe) |
|
bool | getWireframe () const |
|
void | setInvisible (bool invisible) |
|
bool | getInvisible () const |
|
void | setCastShadows (bool cast_shadows) |
|
bool | getCastShadows () const |
|
void | setDebugGraphics (bool debug_gfx) |
|
bool | getDebugGraphics () const |
|
virtual void | redraw (const STK::Camera &cam, const STK::Viewport &vp, int render_mask=STK::OpaqueMask, const std::vector< std::shared_ptr< STK::Uniform > > *uniforms=nullptr)=0 |
|
virtual void | drawShadowMap (const STK::Camera &cam, const STK::Viewport &vp, const STK::Camera &shd_cam, const STK::Viewport &shd_vp, STK::ShaderProgram *shader, STK::ShaderProgram *tex_shader)=0 |
|
virtual void | calcBoundingSphere (STK::Vector3f ¢er, double &radius)=0 |
|
virtual void | calcBoundingBox (STK::Vector3f &min, STK::Vector3f &max)=0 |
|
MeshGraphicsModel - A graphics model consisting of one or more indexed meshes. The MeshGraphicsModel consists of a set of indexed primitive Meshes. The meshes are arranged in a tree of MeshNodes which have transformation matrices relative to the GraphicsModel transform. Each MeshNode may contain a number of Meshes as well as a number of child nodes. The same Mesh can be referenced by different MeshNodes, supporting instancing within a MeshGraphicsModel
For optimal rendering, the meshes are sorted by material into MaterialMeshGroups. Each such group references a single material and a set of Meshes. In addition, each material group must reference the vertex buffer used by the meshes in this group. All meshes in one group must use the same vertex buffer, and the same vertex buffer can be referenced by many MaterialMeshGroups.
- See also
- Mesh
-
MeshNode
-
VertexBuffer
-
MaterialMeshGroup