#pragma once
#include "global.h"
#include "math.h"
class SkeletonNode {
public:
int index;
float x,y,z;
SkeletonNode() {
x = y = z = 0;
}
SkeletonNode(float X, float Y, float Z, int newIndex) {
this->x = X;
this->y = Y;
this->z = Z;
this->index = newIndex;
}
SkeletonNode(SkeletonNode * n, int newIndex) {
this->x = n->x;
this->y = n->y;
this->z = n->z;
this->index = newIndex;
}
SkeletonNode(const SkeletonNode & from) {
this->x = from.x;
this->y = from.y;
this->z = from.z;
this->index = from.index;
}
static SkeletonNode * Midpoint(SkeletonNode * n1, SkeletonNode * n2, int index) {
float x = (n1->x + n2->x) / 2;
float y = (n1->y + n2->y) / 2;
float z = (n1->z + n2->z) / 2;
return new SkeletonNode(x, y, z, index);
}
void set(float X, float Y, float Z) {
this->x = X;
this->y = Y;
this->z = Z;
}
void set(float * pos) {
this->x = pos[0];
this->y = pos[1];
this->z = pos[2];
}
float distanceTo(SkeletonNode * n2) {
float X = x - n2->x;
float Y = y - n2->y;
float Z = z - n2->z;
return sqrt(X * X + Y * Y + Z * Z);
}
#ifdef false
operator const Vec() const {
return Vec(x,y,z);
}
Vec v() const {
return Vec(x,y,z);
}
#endif
};