summaryrefslogtreecommitdiff
path: root/src/transform_hierarchy.c
diff options
context:
space:
mode:
authoromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-10-05 12:48:05 +1000
committeromniscient <17525998+omnisci3nce@users.noreply.github.com>2024-10-05 12:48:05 +1000
commitdfb6adbcbcc7d50b770b6d5ea82efdd8f8c32e25 (patch)
treea470b91a90716d7ea46fde53ed395449c24583a2 /src/transform_hierarchy.c
parent54354e32c6498cc7f8839ab4deb1208d37216cc5 (diff)
delete documentation workflow
Diffstat (limited to 'src/transform_hierarchy.c')
-rw-r--r--src/transform_hierarchy.c185
1 files changed, 0 insertions, 185 deletions
diff --git a/src/transform_hierarchy.c b/src/transform_hierarchy.c
deleted file mode 100644
index a5f4d97..0000000
--- a/src/transform_hierarchy.c
+++ /dev/null
@@ -1,185 +0,0 @@
-
-/**
- * @file transform_hierarchy.h
- */
-#pragma once
-#include "transform_hierarchy.h"
-#include <stdlib.h>
-#include <string.h>
-
-#include "core.h"
-#include "log.h"
-#include "maths.h"
-#include "maths_types.h"
-#include "render_types.h"
-
-// struct transform_hierarchy {
-// transform_node root;
-// };
-
-// transform_hierarchy* transform_hierarchy_create() {
-// transform_hierarchy* tfh = malloc(sizeof(struct transform_hierarchy));
-
-// tfh->root = (transform_node){ .model = { ABSENT_MODEL_HANDLE },
-// .tf = TRANSFORM_DEFAULT,
-// .local_matrix_tf = mat4_ident(),
-// .world_matrix_tf = mat4_ident(),
-// .parent = NULL,
-// .children = { 0 },
-// .n_children = 0,
-// .tfh = tfh };
-// return tfh;
-// }
-
-// bool free_node(transform_node* node, void* _ctx_data) {
-// if (!node) return true; // leaf node
-// if (node == &node->tfh->root) {
-// WARN("You can't free the root node!");
-// return false;
-// }
-
-// printf("Freed node\n");
-// free(node);
-// return true;
-// }
-
-// void transform_hierarchy_free(transform_hierarchy* tfh) {
-// transform_hierarchy_dfs(&tfh->root, free_node, false, NULL);
-// free(tfh);
-// }
-
-// transform_node* transform_hierarchy_root_node(transform_hierarchy* tfh) { return &tfh->root; }
-
-// transform_node* transform_hierarchy_add_node(transform_node* parent, ModelHandle model,
-// Transform tf) {
-// if (!parent) {
-// WARN("You tried to add a node to a bad parent (NULL?)");
-// return NULL;
-// }
-// transform_node* node = malloc(sizeof(transform_node));
-// node->model = model;
-// node->tf = tf;
-// node->local_matrix_tf = mat4_ident();
-// node->world_matrix_tf = mat4_ident();
-// node->parent = parent;
-// memset(node->children, 0, sizeof(node->children));
-// node->n_children = 0;
-// node->tfh = parent->tfh;
-
-// // push into parent's children array
-// u32 next_index = parent->n_children;
-// if (next_index == MAX_TF_NODE_CHILDREN) {
-// ERROR("This transform hierarchy node already has MAX children. Dropping.");
-// free(node);
-// } else {
-// parent->children[next_index] = node;
-// parent->n_children++;
-// }
-
-// return node;
-// }
-
-// void transform_hierarchy_delete_node(transform_node* node) {
-// // delete all children
-// for (u32 i = 0; i < node->n_children; i++) {
-// transform_node* child = node->children[i];
-// transform_hierarchy_dfs(child, free_node, false, NULL);
-// }
-
-// if (node->parent) {
-// for (u32 i = 0; i < node->parent->n_children; i++) {
-// transform_node* child = node->parent->children[i];
-// if (child == node) {
-// node->parent->children[i] = NULL; // HACK: this will leave behind empty slots in the
-// // children array of the parent. oh well.
-// }
-// }
-// }
-
-// free(node);
-// }
-
-// void transform_hierarchy_dfs(transform_node* start_node,
-// bool (*visit_node)(transform_node* node, void* ctx_data),
-// bool is_pre_order, void* ctx_data) {
-// if (!start_node) return;
-
-// bool continue_traversal = true;
-// if (is_pre_order) {
-// continue_traversal = visit_node(start_node, ctx_data);
-// }
-
-// if (continue_traversal) {
-// for (u32 i = 0; i < start_node->n_children; i++) {
-// transform_node* child = start_node->children[i];
-// transform_hierarchy_dfs(child, visit_node, is_pre_order, ctx_data);
-// }
-// }
-
-// if (!is_pre_order) {
-// // post-order
-// visit_node(start_node, ctx_data);
-// }
-// }
-
-// // Update matrix for the current node
-// bool update_matrix(transform_node* node, void* _ctx_data) {
-// if (!node) return true; // leaf node
-
-// if (node->parent && node->parent->tf.is_dirty) {
-// node->tf.is_dirty = true;
-// }
-
-// if (node->tf.is_dirty) {
-// // invalidates children
-// Mat4 updated_local_transform = transform_to_mat(&node->tf);
-// node->local_matrix_tf = updated_local_transform;
-// if (node->parent) {
-// Mat4 updated_world_transform =
-// mat4_mult(node->parent->world_matrix_tf, updated_local_transform);
-// node->world_matrix_tf = updated_world_transform;
-// }
-// }
-
-// return true;
-// }
-
-// void transform_hierarchy_propagate_transforms(transform_hierarchy* tfh) {
-// // kickoff traversal
-// transform_hierarchy_dfs(&tfh->root, update_matrix, false, NULL);
-// }
-
-// struct print_ctx {
-// Core* core;
-// u32 indentation_lvl;
-// };
-
-// bool print_node(transform_node* node, void* ctx_data) {
-// struct print_ctx* ctx = (struct print_ctx*)ctx_data;
-
-// if (!node) return true;
-// if (!node->parent) {
-// printf("Root Node\n");
-// ctx->indentation_lvl++;
-// return true;
-// }
-
-// // Grab the model
-// // FIXME
-// // model m = ctx->core->models->data[node->model.raw];
-// for (int i = 0; i < ctx->indentation_lvl; i++) {
-// printf(" ");
-// }
-// // printf("Node %s\n", m.name.buf);
-// ctx->indentation_lvl++;
-
-// return true;
-// }
-
-// void transform_hierarchy_debug_print(transform_node* start_node, Core* core) {
-// struct print_ctx* ctx = malloc(sizeof(struct print_ctx));
-// ctx->core = core;
-// ctx->indentation_lvl = 0;
-// transform_hierarchy_dfs(start_node, print_node, true, (void*)ctx);
-// free(ctx);
-// }