Program Listing for File transformComponent.h

Return to documentation for file (PrismEngine/src/transformComponent.h)

#pragma once

namespace prism {
    namespace scene {


        struct Position {
            float x = 0;
            float y = 0;
            float z = 0;

            Position& operator+=(const Position& other);
            Position& operator-=(const Position& other);
            Position operator-();
            Position operator+(const Position& other) const;
            Position operator-(const Position& other) const;
            Position& operator*=(float scalar);
            Position& operator/=(float scalar);
            Position operator*(float scalar) const;
            Position operator/(float scalar) const;
            bool operator==(const Position& other) const;
            bool operator!=(const Position& other) const;
        };

        struct Rotation {
            float x = 0;
            float y = 0;
            float z = 0;
        };

        struct Scale {
            float x = 1;
            float y = 1;
            float z = 1;

            Scale& operator*=(const Scale& other);
            Scale& operator/=(const Scale& other);
            Scale& operator*=(float scalar);
            Scale& operator/=(float scalar);
            Scale operator*(const Scale& other) const;
            Scale operator/(const Scale& other) const;
            Scale operator*(float scalar) const;
            Scale operator/(float scalar) const;
            bool operator==(const Scale& other) const;
            bool operator!=(const Scale& other) const;
        };

        struct TransformComponent
        {
            Position pos;
            Rotation rot;
            Scale scale;
        };
    }
}