Skip to main content

CanvasShape

The CanvasShape class defines a versatile shape element for a canvas that supports both cubic and quadratic curves, customizable stroke and gradient styles, and texture mapping. It enables creation of complex vector graphics by manually setting positions or importing SVG paths, with a threshold parameter controlling curve simplification. This class is ideal for rendering arbitrary outlines, icons, and path-based graphics with fine control over shape geometry and visual styling.

#include <interface/TellusimCanvas.h>

Inheritance

Constructors

CanvasShape()
explicit CanvasShape(Canvas &canvas)
CanvasShape(Canvas &canvas, bool cubic)

Methods

Cubic flag.

void setCubic(bool cubic)
bool isCubic() const

Cubic to quadratic threshold.

void setThreshold(float32_t threshold)
float32_t getThreshold() const

Stroke color.

void setStrokeColor(Color color)
const Color getStrokeColor() const

Stroke style.

void setStrokeStyle(StrokeStyle style)
const StrokeStyle getStrokeStyleConst() const
const StrokeStyle getStrokeStyle() const
StrokeStyle getStrokeStyle()

Gradient style.

void setGradientStyle(GradientStyle style)
const GradientStyle getGradientStyleConst() const
const GradientStyle getGradientStyle() const
GradientStyle getGradientStyle()

Create shape from SVG path.

bool createSVG(const char *src, float32_t scale = 1.0f)

Shape positions.

void clearPositions()
void setNumPositions(uint32_t num_positions)
void reservePositions(uint32_t num_positions)
uint32_t getNumPositions() const
void setPositions(const Vector3f *positions, uint32_t num_positions)
void addPositions(const Vector3f *positions, uint32_t num_positions)
const Vector3f *getPositions() const
Vector3f *getPositions()
void setPosition(uint32_t index, Vector3f position)
void setPosition(uint32_t index, float32_t x, float32_t y, float32_t z = 0.0f)
const Vector3f getPosition(uint32_t index) const
Vector3f getPosition(uint32_t index)

Add shape position.

uint32_t addPosition(Vector2f position)
uint32_t addPosition(Vector3f position)
uint32_t addPosition(float32_t x, float32_t y, float32_t z = 0.0f)

Texture coordinates.

void setTexCoord(Rect texcoord)
void setTexCoord(float32_t left, float32_t right, float32_t bottom, float32_t top)
const Rect getTexCoord() const