ProtoTracer  1.0
Real-time 3D rendering and animation engine
Loading...
Searching...
No Matches
TextEngine.h
Go to the documentation of this file.
1#pragma once
2
3#include <Arduino.h>
4#include "Characters.h"
5#include "../../../Material.h"
6#include "../../../Static/SimpleMaterial.h"
7#include "../../../../../Utils/Math/Mathematics.h"
8#include "../../../../../Utils/Math/Rotation.h"
9#include "../../../../../Utils/Math/Vector2D.h"
10#include "../../../../../Utils/Math/Vector3D.h"
11
12template<uint8_t lineCount, uint8_t characterWidth>
13class TextEngine : public Material {
14private:
17 RGBColor white = RGBColor(255, 255, 255);
22 float rotationAngle = 0.0f;//rotate input xyPosition
23 char lines[lineCount][characterWidth];
24 uint16_t blinkTime;
25 bool isEfficient = false;
26
27public:
28 TextEngine(bool isEfficient = false);
29
30 TextEngine(Vector2D size, Vector2D position, uint16_t blinkTime, bool isEfficient = false);
31
33
35
37
39
41
42 void SetBlinkTime(uint16_t blinkTime);
43
44 void SetText(uint8_t line, String value, bool centerText = false);
45
46 void ClearText();
47
48 RGBColor GetRGB(const Vector3D& position, const Vector3D& normal, const Vector3D& uvw) override;
49};
50
51#include "TextEngine.tpp"
Abstract base class for rendering materials.
Definition Material.h:27
Represents an RGB color and provides methods for manipulation.
Definition RGBColor.h:23
A material that applies a single, solid RGB color to surfaces.
SimpleMaterial baseMaterial
Definition TextEngine.h:15
void SetPositionOffset(Vector2D positionOffset)
void SetRotationAngle(float rotationAngle)
TextEngine(bool isEfficient=false)
TextEngine(Vector2D size, Vector2D position, uint16_t blinkTime, bool isEfficient=false)
Vector2D positionOffset
Definition TextEngine.h:20
float rotationAngle
Definition TextEngine.h:22
uint16_t blinkTime
Definition TextEngine.h:24
RGBColor GetRGB(const Vector3D &position, const Vector3D &normal, const Vector3D &uvw) override
Pure virtual function to calculate color based on surface parameters.
void SetRotationOffset(Vector2D rotationOffset)
void SetSize(Vector2D size)
bool isEfficient
Definition TextEngine.h:25
RGBColor black
Definition TextEngine.h:18
void SetMaterial(Material *material)
RGBColor white
Definition TextEngine.h:17
void SetBlinkTime(uint16_t blinkTime)
void SetText(uint8_t line, String value, bool centerText=false)
Vector2D rotationOffset
Definition TextEngine.h:21
char lines[lineCount][characterWidth]
Definition TextEngine.h:23
Material * material
Definition TextEngine.h:16
void ClearText()
Vector2D size
Definition TextEngine.h:19
Represents a 2D vector (X, Y) and provides methods for vector arithmetic.
Definition Vector2D.h:27
Represents a 3D vector (X, Y, Z) and provides methods for vector arithmetic.
Definition Vector3D.h:26