I
Size: a a a
I
I
class base_collider_entity_t : public virtual base_position_entity_t,Как видно, ball_t - является наследником base_collider_entity_t, который в свою очередь умеет хранить и отдавать коллайдеры разных форм - круглый и прямоугольный, положим.
public collider_i
{
public:
const collider_data_t *get_collider_data() const override
{
return
m_collider_data.get();
}
void set_collider_data( collider_ptr&& ptr ) override
{
m_collider_data = std::move( ptr );
}
private:
std::unique_ptr<collider_data_t> m_collider_data;
};
class ball_t : public base_collider_entity_t
{
};
D
class base_collider_entity_t : public virtual base_position_entity_t,Как видно, ball_t - является наследником base_collider_entity_t, который в свою очередь умеет хранить и отдавать коллайдеры разных форм - круглый и прямоугольный, положим.
public collider_i
{
public:
const collider_data_t *get_collider_data() const override
{
return
m_collider_data.get();
}
void set_collider_data( collider_ptr&& ptr ) override
{
m_collider_data = std::move( ptr );
}
private:
std::unique_ptr<collider_data_t> m_collider_data;
};
class ball_t : public base_collider_entity_t
{
};
D
k
D
D
D
I
I
D
I
I
D
D
I
class base_circle_collider_entity_t : public virtual base_position_entity_t,
public circle_collider_i
D
D
I
class base_circle_collider_entity_t : public virtual base_position_entity_t,
public circle_collider_i