#ifndef COMMON_GRAPHICS_APP_H #define COMMON_GRAPHICS_APP_H struct DrawGridData { int gridSize; float upOffset; int upAxis; float gridColor[4]; DrawGridData() :gridSize(10), upOffset(0.001f), upAxis(1) { gridColor[0] = 0.6f; gridColor[1] = 0.6f; gridColor[2] = 0.6f; gridColor[3] = 1.f; } }; struct CommonGraphicsApp { CommonGraphicsApp() :m_window(0), m_renderer(0), m_parameterInterface(0), m_2dCanvasInterface(0) { } virtual ~CommonGraphicsApp() { } class b3gWindowInterface* m_window; struct CommonRenderInterface* m_renderer; struct CommonParameterInterface* m_parameterInterface; struct Common2dCanvasInterface* m_2dCanvasInterface; virtual void drawGrid(DrawGridData data=DrawGridData()) = 0; virtual void setUpAxis(int axis) = 0; virtual int getUpAxis() const = 0; virtual void swapBuffer() = 0; virtual void drawText( const char* txt, int posX, int posY) = 0; virtual void drawText3D( const char* txt, float posX, float posZY, float posZ, float size)=0; virtual int registerCubeShape(float halfExtentsX,float halfExtentsY, float halfExtentsZ)=0; virtual int registerGraphicsSphereShape(float radius, bool usePointSprites=true, int largeSphereThreshold=100, int mediumSphereThreshold=10)=0; virtual void registerGrid(int xres, int yres, float color0[4], float color1[4])=0; }; #endif //COMMON_GRAPHICS_APP_H