Core Scene Graph Data Structures in C++
Base Classes
In addition to int, float, bool, vector<int>, and vector<float>, these classes define various types values used as node field values in the DGP2026 implementation.
Color
class Color {
public:
float r,g,b;
public:
Color(float R, float G=, float B);
Color& operator=(Color& src);
};
Vec2f
class Vec2f {
public:
float x,y;
public:
Vec2f(float X, float Y);
float& operator[] (int i);
Vec2f& operator= (Vec2f& src);
Vec2f& operator+= (Vec2f& rhs);
Vec2f& operator-= (Vec2f& rhs);
float norm() const;
void normalize();
};
Vec3f
class Vec3f {
public:
float x,y,z;
public:
Vec3f(float X, float Y, float Z);
float& operator[] (int i);
Vec3f& operator= (Vec3f& rhs);
Vec3f& operator+= (Vec3f& rhs);
Vec3f& operator-= (Vec3f& rhs);
float norm() const;
void normalize();
};
Vec4f
class Vec4f {
public:
float x,y,z,w;
public:
Vec4f(float X, float Y, float Z, float W);
float& operator[] (int i);
Vec4f& operator= (Vec4f& rhs);
Vec4f& operator+= (Vec4f& rhs);
Vec4f& operator-= (Vec4f& rhs);
float norm() const;
void normalize();
};
Rotation
class Rotation {
public:
Rotation();
Rotation(float x, float y, float z, float angle);
Rotation(Vec3f& axis, float angle);
void set(float x, float y, float z, float angle);
void set(Vec4f& value);
void operator=(Vec4f& value);
Vec3f& getAxis();
float getAngle();
};