summaryrefslogtreecommitdiff
path: root/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BinaryTreeNode.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Thronefall_1_57/Decompile/NGS.MeshFusionPro/BinaryTreeNode.cs')
-rw-r--r--Thronefall_1_57/Decompile/NGS.MeshFusionPro/BinaryTreeNode.cs48
1 files changed, 48 insertions, 0 deletions
diff --git a/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BinaryTreeNode.cs b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BinaryTreeNode.cs
new file mode 100644
index 0000000..4558519
--- /dev/null
+++ b/Thronefall_1_57/Decompile/NGS.MeshFusionPro/BinaryTreeNode.cs
@@ -0,0 +1,48 @@
+using UnityEngine;
+
+namespace NGS.MeshFusionPro;
+
+public abstract class BinaryTreeNode<TData> : IBinaryTreeNode
+{
+ public BinaryTreeNode<TData> Left { get; private set; }
+
+ public BinaryTreeNode<TData> Right { get; private set; }
+
+ public bool IsLeaf { get; private set; }
+
+ public bool HasChilds => Left != null;
+
+ public Vector3 Center { get; private set; }
+
+ public Vector3 Size { get; private set; }
+
+ public Bounds Bounds { get; private set; }
+
+ public BinaryTreeNode(Vector3 center, Vector3 size, bool isLeaf)
+ {
+ Center = center;
+ Size = size;
+ Bounds = new Bounds(center, size);
+ IsLeaf = isLeaf;
+ }
+
+ public IBinaryTreeNode GetLeft()
+ {
+ return Left;
+ }
+
+ public IBinaryTreeNode GetRight()
+ {
+ return Right;
+ }
+
+ public void SetChilds(BinaryTreeNode<TData> left, BinaryTreeNode<TData> right)
+ {
+ Left = left;
+ Right = right;
+ }
+
+ public abstract void Add(TData data);
+
+ public abstract void Remove(TData data);
+}