История изменений
Исправление ilammy, (текущая версия) :
Что бы не дублировать код и не плодить кучи атрибутов у класса я сделал класс Transform
Вот тут я потерял ход мысли. Что за код будет дублироваться? Реализация setPosition() в каждом конкретном классе, который реализует Movable? Ну сделай миксин типа
class Moveable
{
public:
Moveable(const vec3 &position) : m_position(position) {}
virtual ~Moveable() {}
virtual void setPosition(const vec3 &value)
{
m_position = value;
}
protected:
vec3 m_position;
};
class Point : public Moveable
{
public:
Point() : Moveable(vec3(0, 0, 0)) {}
// ...
};
Исправление ilammy, :
Что бы не дублировать код и не плодить кучи атрибутов у класса я сделал класс Transform
Вот тут я потерял ход мысли. Что за код будет дублироваться? Реализация setPosition() в каждом конкретном классе, который реализует Movable? Ну сделай миксин типа
class Moveable
{
public:
Moveable(const vec3 &position) : m_position(position) {}
virtual ~Moveable() {}
virtual void setPosition(const vec3 &value)
{
m_position = value;
}
protected:
vec3 m_position;
};
class Point : protected Moveable
{
public:
Point() : Moveable(vec3(0, 0, 0)) {}
// ...
};
Исправление ilammy, :
Что бы не дублировать код и не плодить кучи атрибутов у класса я сделал класс Transform
Вот тут я потерял ход мысли. Что за код будет дублироваться? Реализация setPosition() в каждом конкретном классе, который реализует Movable? Ну сделай миксин типа
class Moveable
{
public:
Moveable(const vec3 &position) : m_position(position) {}
virtual ~Moveable() {}
virtual void setPosition(const vec3 &value)
{
m_position = value;
}
protected:
vec3 m_position;
};
class Point : protected Moveable
{
public:
Point() : Moveable(vec3(0, 0, 0)) {}
// ...
};
Исходная версия ilammy, :
Что бы не дублировать код и не плодить кучи атрибутов у класса я сделал класс Transform
Вот тут я потерял ход мысли. Что за код будет дублироваться? Реализация setPosition() в каждом конкретном классе, который реализует Movable? Ну сделай миксин типа
class Moveable
{
public:
Moveable(const vec3 &position) : m_position(position) {}
virtual ~Moveable() {}
virtual void setPosition(const vec3 &value)
{
m_position = value;
}
protected:
vec3 m_position;
};
class Point : public Moveable
{
public:
Point() : Moveable(vec3(0, 0, 0)) {}
// ...
};