summaryrefslogtreecommitdiff
path: root/themes
diff options
context:
space:
mode:
Diffstat (limited to 'themes')
-rw-r--r--themes/TreeShape.h~104
1 files changed, 0 insertions, 104 deletions
diff --git a/themes/TreeShape.h~ b/themes/TreeShape.h~
deleted file mode 100644
index 14ea765..0000000
--- a/themes/TreeShape.h~
+++ /dev/null
@@ -1,104 +0,0 @@
-#include "Renderer2d.h"
-#include "types.h"
-#include "mathlib.h"
-
-struct TreeBranch {
- float32 width = 0.f;
- float32 height = 0.f;
- Vector2 position; // Center point
- Vector2 direction = Vector2 { 1.f, 0.f };
- Vector4 color = Vector4 { 1.f, 0.f, 0.f, 1.f };
-
- void fillVertices(Renderer2dVertex* vertices) {
- vertices[0] = {
- Vector2 { position.x - width / 2.f, position.y },
- color
- };
- vertices[1] = {
- Vector2 { position.x + width / 2.f, position.y },
- color
- };
- vertices[2] = {
- Vector2 { position.x - width / 2.f, position.y + height },
- color
- };
- vertices[3] = {
- Vector2 { position.x - width / 2.f, position.y + height },
- color
- };
- vertices[4] = {
- Vector2 { position.x + width / 2.f, position.y + height },
- color
- };
- vertices[5] = {
- Vector2 { position.x + width / 2.f, position.y },
- color
- };
- }
-};
-
-struct TreeShape {
- Renderer2dShape shape;
-
- float32 height = 100.f; // Height of the whole tree
- float32 width = 50.f; // Width of the whole tree
- int32 divisionsPerBranch = 2; // How many branches to split into at each branch split
- int32 numBranchLevels = 8; // How many branch levels to display
- float32 animateTimeSeconds = 2.f; // How long it takes the tree to form
-
- void load(Renderer2d* renderer) {
- int32 numBranches = divisionsPerBranch * numBranchLevels;
- TreeBranch* branches = new TreeBranch[numBranches];
- TreeBranch trunk = branches[0];
-
- int32 numVertices = 6 * numBranches;
- Renderer2dVertex* vertices = new Renderer2dVertex[numVertices];
-
-
-
- trunk.width = width;
- trunk.height = height;
- trunk.position = Vector2 { 0.f, 0.f };
- trunk.direction = Vector2 { 1.f, 0.f };
- trunk.fillVertices(&vertices[0]);
-
- shape.load(vertices, numVertices, renderer);
-
- delete[] branches;
- delete[] vertices;
- }
-
- void createBranch(TreeBranch* branchList, int32 numBranches, int32* branchIndex, int32 branchLevel, float32 width, float32 height, Vector2 position, Vector2 direction, Renderer2dVertex* vertices) {
- branch->width = width;
- branch->height = height;
- branch->position = position;
- branch->direction = direction;
- branch->fillIinVertices(&vertices[&branchIndex * 6]);
-
- if (branchLevel == numBranchLevels) {
- return;
- }
-
- float32 branchWidth = width / divisionsPerBranch;
- float32 branchHeight = height / divisionsPerBranch;
- Vector2 branchPosition = branch->position + (height * branch->direction);
-
- for (int division = 0; division < divisionsPerBranch; division++) {
- (*branchIndex)++;
- createBranch(branchList, numBranches, branchIndex, branchLevel + 1, branchWidth, branchHeight,
- }
- }
-
- void update(float32 dtSeconds) {
-
- }
-
- void render(Renderer2d* renderer) {
- shape.render(renderer);
- }
-
- void unload() {
- shape.unload();
- }
-};
-