#ifndef __Transform__
#define __Transform__

#ifndef CORE_DLL 
    #ifdef CORE_BUILD
	    #define CORE_DLL __declspec(dllexport)
    #else
	    #define CORE_DLL __declspec(dllimport)
        #pragma comment(lib, "Core.lib")
    #endif
#endif

#include "../../Core/mathlib.h"
#include "Group.h"


class CORE_DLL Transform : public Group {
public:
    Transform();
    virtual ~Transform();

    void setPosition(Vector3& position);
    void setOrientation(Quaternion& orientation);
    void setScale(Vector3& scale);

    Matrix4& getWorldMatrix();

protected:
    Matrix4 _scaling, _rotation, _translation;
    Matrix4 _world;
};


#endif