Интерфейс объектов для инструментов

This commit is contained in:
parent 2bd2481ad4
commit bb5f424387
2 changed files with 39 additions and 1 deletions

View File

@ -30,13 +30,27 @@ struct ID
GLuint etc = 0; // Дополнительная информация
};
class I_Movable
{
public:
virtual void dPosition(const glm::vec3& dvec) = 0; // Сдвинуть объект на dvec
virtual void dRotation(const glm::vec3& dvec) = 0; // Повернуть объект на dvec
virtual void dScale(const glm::vec3& dvec) = 0; // Увеличить объект на dvec
virtual const glm::vec3 getPos() = 0; // Получить позицию объекта
};
// Класс определяющий положение, вращение и размер объекта
class Movable
class Movable : I_Movable
{
public:
Movable(); // Конструктор без параметров
Movable(const Movable& copy); // Конструктор копирования
virtual void dPosition(const glm::vec3& dvec); // Сдвинуть объект на dvec
virtual void dRotation(const glm::vec3& dvec); // Повернуть объект на dvec
virtual void dScale(const glm::vec3& dvec); // Увеличить объект на dvec
virtual const glm::vec3 getPos(); // Получить позицию объекта
glm::vec3 position; // позиция модели
glm::vec3 rotation; // поворот модели
glm::vec3 scale; // масштабирование модели

View File

@ -571,3 +571,27 @@ void GrouptedModel::set_group_id(GLuint64 id, GLuint etc)
part.id.etc = etc;
}
}
// Сдвинуть объект на dvec
void Movable::dPosition(const glm::vec3& dvec)
{
position += dvec;
}
// Повернуть объект на dvec
void Movable::dRotation(const glm::vec3& dvec)
{
rotation += dvec;
}
// Увеличить объект на dvec
void Movable::dScale(const glm::vec3& dvec)
{
scale += dvec;
}
// Получить позицию объекта
const glm::vec3 Movable::getPos()
{
return position;
}