Здравствуйте, maugli71, Вы писали:
ИМХО делай так:
1. Есть класс абстрактной фигуры Shape с операциями (виртуальными функциями) Draw, Rotate, Scale, etc;
2. От Shape наследуются классы конкретных фигур (Circle, Rectangle и т.д.);
3. Есть класс абстрактного графического контекста Graphics, позволяющий рисовать примитивы a-la DrawCircle, DrawLine, etc;
4. От Graphics наследуются конкретные реализации GraphicsOpenGL и GraphicsGDI;
5. Рулит полиморфизм, руками кастовать ничего не надо.
ЗЫ: надеюсь, понятно объяснил...