public Matrix4x3 HierarchialTransformUp(Node obj)
 {
     if (obj.isInherited || obj.isInheritor) return obj.Transform.Data;
     return (obj.ParentID == -1) ? obj.Transform.Data : obj.Transform.Data * HierarchialTransformUp(ObjectByID(obj.ParentID));
 }
 public Matrix4x3 HierarchialTransformDown(Node obj)
 {
     if (obj.isInherited || obj.isInheritor) return Matrix4x3.Identity; //these could end in infinite loop
     return (obj.ParentID == -1) ? obj.Transform.Data : HierarchialTransformDown(ObjectByID(obj.ParentID)) * obj.Transform.Data;
 }