Polyphase Game Engine
Loading...
Searching...
No Matches
TextMesh3d.h
Go to the documentation of this file.
1#pragma once
2
3#include "Nodes/3D/Mesh3d.h"
5#include "Vertex.h"
6
7class Font;
8
9class TextMesh3D : public Mesh3D
10{
11public:
13
14 TextMesh3D();
16
17 virtual const char* GetTypeName() const override;
18 virtual void GatherProperties(std::vector<Property>& outProps) override;
19
20 virtual void Create() override;
21 virtual void Destroy() override;
23
24 virtual void Tick(float deltaTime) override;
25 virtual void EditorTick(float deltaTime) override;
26
27 virtual bool IsStaticMesh3D() const override;
28 virtual bool IsSkeletalMesh3D() const override;
29 virtual Material* GetMaterial() override;
30
31 virtual void Render() override;
32
33 void SetText(const std::string& text);
34 const std::string& GetText() const;
35
36 void SetFont(Font* font);
37 Font* GetFont() const;
38
39 void SetColor(glm::vec4 color);
40 glm::vec4 GetColor() const;
41
42 void SetBlendMode(BlendMode blendMode);
43 BlendMode GetBlendMode() const;
44
45 void SetHorizontalJustification(float just);
46 float GetHorizontalJustification() const;
47
48 void SetVerticalJustification(float just);
49 float GetVerticalJustification() const;
50
51 virtual Bounds GetLocalBounds() const override;
52
53 int32_t GetNumVisibleCharacters() const;
54
55 const Vertex* GetVertices() const;
56
57 void MarkVerticesDirty();
58
59protected:
60
61 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
62
63 void TickCommon(float deltaTime);
64
65 void UploadVertexData();
66 void UpdateVertexData();
67 void JustifyLine(glm::vec2& lineMinExtent, glm::vec2& lineMaxExtent, int32_t& lineVertStart);
68 void UpdateBounds();
69
71 std::string mText;
72 glm::vec4 mColor = { 1.0f, 1.0f, 1.0f, 1.0f };
76
77 std::vector<Vertex> mVertices;
78 int32_t mVisibleCharacters = 0;
79 bool mUploadVertices[MAX_FRAMES] = {};
83
85};
86
BlendMode
Definition EngineTypes.h:106
Definition AssetRef.h:18
Definition Datum.h:164
Definition Font.h:20
Definition Material.h:48
Definition Mesh3d.h:13
Definition TextMesh3d.h:10
bool mReconstructVertices
Definition TextMesh3d.h:80
int32_t GetNumVisibleCharacters() const
Definition TextMesh3d.cpp:258
Bounds mBounds
Definition TextMesh3d.h:81
virtual void EditorTick(float deltaTime) override
Definition TextMesh3d.cpp:93
glm::vec4 mColor
Definition TextMesh3d.h:72
void SetBlendMode(BlendMode blendMode)
Definition TextMesh3d.cpp:186
float mVerticalJustification
Definition TextMesh3d.h:74
virtual bool IsStaticMesh3D() const override
Definition TextMesh3d.cpp:120
void UpdateVertexData()
Definition TextMesh3d.cpp:290
virtual void Create() override
Definition TextMesh3d.cpp:62
void SetColor(glm::vec4 color)
Definition TextMesh3d.cpp:176
virtual Bounds GetLocalBounds() const override
Definition TextMesh3d.cpp:224
virtual void Tick(float deltaTime) override
Definition TextMesh3d.cpp:87
virtual void Render() override
Definition TextMesh3d.cpp:142
float GetHorizontalJustification() const
Definition TextMesh3d.cpp:205
Font * GetFont() const
Definition TextMesh3d.cpp:171
void MarkVerticesDirty()
Definition TextMesh3d.cpp:238
TextMeshCompResource * GetResource()
Definition TextMesh3d.cpp:82
TextMeshCompResource mResource
Definition TextMesh3d.h:84
std::vector< Vertex > mVertices
Definition TextMesh3d.h:77
virtual const char * GetTypeName() const override
Definition TextMesh3d.cpp:43
void JustifyLine(glm::vec2 &lineMinExtent, glm::vec2 &lineMaxExtent, int32_t &lineVertStart)
Definition TextMesh3d.cpp:268
void UploadVertexData()
Definition TextMesh3d.cpp:247
static bool HandlePropChange(Datum *datum, uint32_t index, const void *newValue)
Definition TextMesh3d.cpp:17
bool mUploadVertices[MAX_FRAMES]
Definition TextMesh3d.h:79
void TickCommon(float deltaTime)
Definition TextMesh3d.cpp:99
BlendMode GetBlendMode() const
Definition TextMesh3d.cpp:191
const std::string & GetText() const
Definition TextMesh3d.cpp:156
virtual void Destroy() override
Definition TextMesh3d.cpp:75
void SetText(const std::string &text)
Definition TextMesh3d.cpp:147
virtual bool IsSkeletalMesh3D() const override
Definition TextMesh3d.cpp:125
float mHorizontalJustification
Definition TextMesh3d.h:73
std::string mText
Definition TextMesh3d.h:71
float GetVerticalJustification() const
Definition TextMesh3d.cpp:219
const Vertex * GetVertices() const
Definition TextMesh3d.cpp:263
virtual Material * GetMaterial() override
Definition TextMesh3d.cpp:130
MaterialRef mDefaultMatInstance
Definition TextMesh3d.h:82
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition TextMesh3d.cpp:48
~TextMesh3D()
Definition TextMesh3d.cpp:38
DECLARE_NODE(TextMesh3D, Mesh3D)
void SetFont(Font *font)
Definition TextMesh3d.cpp:162
glm::vec4 GetColor() const
Definition TextMesh3d.cpp:181
TextMesh3D()
Definition TextMesh3d.cpp:28
int32_t mVisibleCharacters
Definition TextMesh3d.h:78
void SetVerticalJustification(float just)
Definition TextMesh3d.cpp:210
void UpdateBounds()
Definition TextMesh3d.cpp:438
BlendMode mBlendMode
Definition TextMesh3d.h:75
void SetHorizontalJustification(float just)
Definition TextMesh3d.cpp:196
FontRef mFont
Definition TextMesh3d.h:70
Definition EngineTypes.h:193
Definition GraphicsTypes.h:217
Definition Vertex.h:20