BlankMat 0.1.0
Free open-source 3D texture creation application
Loading...
Searching...
No Matches
Mesh Class Reference
Inheritance diagram for Mesh:
Collaboration diagram for Mesh:

Public Member Functions

VertexGetVertex (unsigned int index)
 
 Mesh (const std::string &name, const std::string &scope, const std::vector< Vertex > &vertices, const std::vector< unsigned int > &indices, const std::string &material)
 
 Mesh (const std::string &name, const std::string &scope, const std::vector< Vertex > &vertices, const std::vector< unsigned int > &indices, Material *material)
 
 Mesh (const std::string &name, const std::string &scope, const std::string &material="", glm::vec3 pos=glm::vec3(0.0f), glm::vec3 rot=glm::vec3(0.0f), glm::vec3 scale=glm::vec3(1.0f))
 
 Mesh (const std::string &name, const std::string &scope, Material *material=nullptr, glm::vec3 pos=glm::vec3(0.0f), glm::vec3 rot=glm::vec3(0.0f), glm::vec3 scale=glm::vec3(1.0f))
 
- Public Member Functions inherited from IPrimitive< Vertex, unsigned int >
void Draw (Shader *shader, State *state, Material *defaultMat, const glm::mat4 &viewProj, bool drawMats=false) override
 
void DrawShadows (Shader *shader, State *state) override
 
const std::vector< Vertex > & GetVertices () const
 
const std::vector< unsigned int > & GetIndices () const
 
 IPrimitive (const std::string &name, const std::string &scope, Material *material=nullptr, const float lineWidth=0.1f, const bool drawOver=false, const glm::vec3 &pos=glm::vec3(0.0f), const glm::vec3 &rot=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f))
 
 IPrimitive (const std::string &name, const std::string &scope="", std::string material="", const float lineWidth=0.1f, const bool drawOver=false, const glm::vec3 &pos=glm::vec3(0.0f), const glm::vec3 &rot=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f))
 
 ~IPrimitive ()
 
- Public Member Functions inherited from IEntity
virtual const glm::vec3 GetPos ()
 
virtual const glm::vec3 GetRot ()
 
virtual const glm::vec3 GetScale ()
 
virtual MaterialGetMaterial ()
 
const glm::vec3 GetUp ()
 
const glm::vec3 GetRight ()
 
const glm::vec3 GetFront ()
 
void Translate (const glm::vec3 &delta)
 
void Rotate (const glm::vec3 &delta)
 
void Scale (const glm::vec3 &delta)
 
const glm::vec3 GetWorldPos ()
 
virtual void SetPos (const glm::vec3 &pos)
 
virtual void SetRot (const glm::vec3 &rot)
 
virtual void SetScale (const glm::vec3 &scale)
 
void CalcBasis ()
 
void LoadMaterial (MaterialContainer *materials)
 
virtual void SetMaterial (Material *material)
 
bool IsEnabled ()
 
bool IsEnabledInHierarchy ()
 
void Enable (bool shouldEnable=true)
 
void EnableParent (bool shouldEnable)
 
bool ToggleEnabled ()
 
virtual void SetParentModelMatrix (const glm::mat4 &parentModelMatrix)
 
const glm::mat4 & GetModelMatrix ()
 
const glm::mat4 & GetParentModelMatrix ()
 
const glm::mat4 & GetSelfModelMatrix ()
 
const glm::mat3 & GetNormalModelMatrix ()
 
 IEntity (const std::string &name="", const std::string &scope="", Material *material=nullptr, bool drawOver=false, const glm::vec3 &pos=glm::vec3(0.0f), const glm::vec3 &rot=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f))
 
 IEntity (const std::string &name, const std::string &scope, const std::string &material, bool drawOver=false, const glm::vec3 &pos=glm::vec3(0.0f), const glm::vec3 &rot=glm::vec3(0.0f), const glm::vec3 &scale=glm::vec3(1.0f))
 
virtual void Cleanup ()
 
- Public Member Functions inherited from ISelectable
virtual SelectableType GetSelectableType ()
 Returns the type of the selectable.
 
 ISelectable (SelectableType type=SelectableType::NONE)
 Sets the type of the selectable.
 
- Public Member Functions inherited from INameable
virtual void Rename (const std::string &newName, bool includeScope=true)
 Renames the object, setting the scope to be the scoped part of the name.
 
virtual void SetName (const std::string &name)
 Sets the name of the object. Note: Does not set the scope variable. If renaming based on raw input, use Rename() instead to set the scope.
 
virtual void SetScope (const std::string &scope)
 Sets the scope of the object.
 
std::string GetUnscopedName ()
 Returns the unscoped name of the object.
 
std::string GetScope ()
 Returns the scope of the object.
 
std::string GetScopedName ()
 Returns the scoped name of the object.
 
void InitName (const std::string &name, const std::string &scope="")
 Initializes the nameable object with the given name and scope.
 
 INameable ()
 Creates a default nameable object without name or scope.
 

Protected Member Functions

void GenBuffers () override
 
- Protected Member Functions inherited from IEntity
virtual void RecalcMatrices ()
 
virtual void UpdateEnabledStatus ()
 

Additional Inherited Members

- Static Public Member Functions inherited from IEntity
static const std::string GetNameNullSafe (IEntity *entity)
 
- Protected Attributes inherited from IPrimitive< Vertex, unsigned int >
float mLineWidth
 
bool mIsWireframe
 
unsigned int mIndexLen
 
std::vector< VertexmVertices
 
std::vector< unsigned int > mIndices
 
- Protected Attributes inherited from IEntity
unsigned int mVAO = 0
 
unsigned int mVBO = 0
 
unsigned int mEBO = 0
 
bool mDrawOver = false
 
glm::vec3 mFront = glm::vec3(0.0f)
 
glm::vec3 mRight = glm::vec3(0.0f)
 
glm::vec3 mUp = glm::vec3(0.0f)
 
glm::vec3 mPos = glm::vec3(0.0f)
 
glm::vec3 mRot = glm::vec3(0.0f)
 
glm::vec3 mScale = glm::vec3(1.0f)
 
bool mIsEnabled = true
 
bool mIsEnabledSelf = true
 
bool mIsEnabledParent = true
 
MaterialmMaterial = nullptr
 
std::string mMaterialName = ""
 
bool mRecalcMatrices = true
 
glm::mat4 mParentModelMatrix = glm::mat4(1.0f)
 
glm::mat4 mSelfModelMatrix = glm::mat4(1.0f)
 
glm::mat4 mModelMatrix = glm::mat4(1.0f)
 
glm::mat3 mNormalModelMatrix = glm::mat3(1.0f)
 
- Protected Attributes inherited from ISelectable
SelectableType mSelectableType = SelectableType::NONE
 Type of the selectable.
 
- Protected Attributes inherited from INameable
std::string mName = ""
 Name of the object.
 
std::string mScope = ""
 Scope of the object.
 

Constructor & Destructor Documentation

◆ Mesh() [1/4]

Mesh::Mesh ( const std::string &  name,
const std::string &  scope,
const std::vector< Vertex > &  vertices,
const std::vector< unsigned int > &  indices,
const std::string &  material 
)
inline

◆ Mesh() [2/4]

Mesh::Mesh ( const std::string &  name,
const std::string &  scope,
const std::vector< Vertex > &  vertices,
const std::vector< unsigned int > &  indices,
Material material 
)
inline

◆ Mesh() [3/4]

Mesh::Mesh ( const std::string &  name,
const std::string &  scope,
const std::string &  material = "",
glm::vec3  pos = glm::vec3(0.0f),
glm::vec3  rot = glm::vec3(0.0f),
glm::vec3  scale = glm::vec3(1.0f) 
)
inline

◆ Mesh() [4/4]

Mesh::Mesh ( const std::string &  name,
const std::string &  scope,
Material material = nullptr,
glm::vec3  pos = glm::vec3(0.0f),
glm::vec3  rot = glm::vec3(0.0f),
glm::vec3  scale = glm::vec3(1.0f) 
)
inline

Member Function Documentation

◆ GenBuffers()

void Mesh::GenBuffers ( )
inlineoverrideprotectedvirtual

◆ GetVertex()

Vertex * Mesh::GetVertex ( unsigned int  index)
inline