diff --git a/Figure.h b/Figure.h index 5bda2bd..fe643e2 100644 --- a/Figure.h +++ b/Figure.h @@ -24,18 +24,22 @@ static inline const char* Figure_type (const Figure *this) { return this->vtable->type (); } + static inline Figure* Figure_clone (const Figure *this) { return this->vtable->clone (this); } + static inline void Figure_destroy (Figure *this) { this->vtable->destroy (this); } + static inline void Figure_draw (const Figure *this) { this->vtable->draw (this); } + static inline double Figure_area (const Figure *this) { return this->vtable->area (this); diff --git a/Object.h b/Object.h index 06d8d09..ba3e9b6 100644 --- a/Object.h +++ b/Object.h @@ -14,4 +14,19 @@ typedef struct Object } Object; +static inline const char* Object_type (const Object *this) +{ + return this->vtable->type (); +} + +static inline Object* Object_clone (const Object *this) +{ + return this->vtable->clone (this); +} + +static inline void Object_destroy (Object *this) +{ + this->vtable->destroy (this); +} + #endif // __OBJECT_H__