CanvasMesh
The CanvasMesh class is a specialized CanvasElement that represents a custom drawable mesh composed of vertices and indices, allowing precise control over geometry, texture mapping, and color per vertex. It supports setting vertex positions, texture coordinates, and colors, as well as managing index buffers for defining primitive connectivity. The class enables advanced rendering through texture names and gradient styles, and provides methods for dynamic mesh construction, such as reserving space, adding vertices and indices, and modifying individual vertex attributes. This makes it suitable for rendering complex shapes and textured surfaces within a Canvas.
#include <interface/TellusimCanvas.h>
Inheritance
- Inherits from CanvasElement
Constructors
CanvasMesh()
explicit CanvasMesh(Canvas &canvas)
CanvasMesh(Canvas &canvas, Mode mode)
Methods
Texture name.
void setTextureName(const char *name)
void setTextureName(const String &name)
String getTextureName() const
Gradient style.
void setGradientStyle(GradientStyle style)
const GradientStyle getGradientStyleConst() const
const GradientStyle getGradientStyle() const
GradientStyle getGradientStyle()
Mesh vertices.
void clearVertices()
void setNumVertices(uint32_t num_vertices)
void reserveVertices(uint32_t num_vertices)
uint32_t getNumVertices() const
void setVertices(const CanvasVertex *vertices, uint32_t num_vertices)
void addVertices(const CanvasVertex *vertices, uint32_t num_vertices)
const CanvasVertex *getVertices() const
CanvasVertex *getVertices()
void setVertex(uint32_t index, CanvasVertex vertex)
const CanvasVertex getVertex(uint32_t index) const
CanvasVertex getVertex(uint32_t index)
Vertex positions.
void setVertexPosition(uint32_t index, Vector3f position)
void setVertexPosition(uint32_t index, float32_t x, float32_t y, float32_t z = 0.0f)
Vector3f getVertexPosition(uint32_t index) const
Vertex texture coordinates.
void setVertexTexCoord(uint32_t index, Vector2f texcoord)
void setVertexTexCoord(uint32_t index, float32_t s, float32_t t)
Vector2f getVertexTexCoord(uint32_t index) const
Vertex colors.
void setVertexColor(uint32_t index, Color color)
void setVertexColor(uint32_t index, uint32_t color)
uint32_t getVertexColor(uint32_t index) const
Add mesh vertex.
uint32_t addVertex(Vector3f position)
uint32_t addVertex(Vector3f position, uint32_t color)
uint32_t addVertex(Vector3f position, Vector2f texcoord)
uint32_t addVertex(Vector3f position, Vector2f texcoord, uint32_t color)
uint32_t addVertex(float32_t x, float32_t y, float32_t z, float32_t s, float32_t t, uint32_t color = 0xffffffffu)
uint32_t addVertex(float32_t x, float32_t y, float32_t z, uint32_t color = 0xffffffffu)
uint32_t addVertex(float32_t x, float32_t y, uint32_t color = 0xffffffffu)
Mesh indices.
void clearIndices()
void setNumIndices(uint32_t num_indices)
void reserveIndices(uint32_t num_indices)
uint32_t getNumIndices() const
void setIndices(const uint32_t *indices, uint32_t num_indices)
void addIndices(const uint32_t *indices, uint32_t num_indices)
const uint32_t *getIndices() const
uint32_t *getIndices()
void setIndex(uint32_t index, uint32_t value)
uint32_t getIndex(uint32_t index) const
Add mesh indices.
void addIndex(uint32_t i0)
void addIndices(uint32_t i0, uint32_t i1)
void addIndices(uint32_t i0, uint32_t i1, uint32_t i2)
void addIndices(uint32_t i0, uint32_t i1, uint32_t i2, uint32_t i3)
Mesh rectangle.
void setRect(Rect rect)