#ifndef _ENGINE_DIB3D_HPP_ #define _ENGINE_DIB3D_HPP_ #ifndef _ENGINE_VIEWSYSTEM_HPP_ #include #endif #ifndef _COMMON_DIBITMAP_HPP_ #include #endif #ifndef _COMMON_CALLBACK_HPP_ #include #endif #ifndef _COMMON_GUIWINDOW_HPP_ #include #endif #ifndef _COMMON_PUREDEVICE_HPP_ #include #endif class Point3D; class Rect3D; class DIB3D : public DIBitmap, public ViewSystem { public: DIB3D(GUIWindow &someGUIWindow); DIB3D(GUIWindow &someGUIWindow,const PurePalette &purePalette); virtual ~DIB3D(); void line(Point3D &firstPoint3D,Point3D &secondPoint,BYTE byteValue); void rectangle(const Rect3D &someRect3D,int paletteIndex); void axis(BOOL drawFlag); protected: WORD viewPortWidth(void)const; WORD viewPortHeight(void)const; private: WORD operator==(const DIB3D &someDIB3D)const; CallbackData::ReturnType sizeHandler(CallbackData &someCallbackData); Callback mSizeHandler; GUIWindow &mDisplayWindow; }; inline DIB3D::DIB3D(GUIWindow &someGUIWindow) : DIBitmap(PureDevice(someGUIWindow),someGUIWindow.width(),someGUIWindow.height(),PurePalette(PurePalette::InitSys)), mDisplayWindow(someGUIWindow) { mSizeHandler.setCallback(this,&DIB3D::sizeHandler); mDisplayWindow.insertHandler(VectorHandler::SizeHandler,&mSizeHandler); } inline DIB3D::DIB3D(GUIWindow &someGUIWindow,const PurePalette &purePalette) : DIBitmap(PureDevice(someGUIWindow),someGUIWindow.width(),someGUIWindow.height(),purePalette), mDisplayWindow(someGUIWindow) { mSizeHandler.setCallback(this,&DIB3D::sizeHandler); mDisplayWindow.insertHandler(VectorHandler::SizeHandler,&mSizeHandler); } inline DIB3D::~DIB3D() { mDisplayWindow.removeHandler(VectorHandler::SizeHandler,&mSizeHandler); } inline WORD DIB3D::operator==(const DIB3D &someDIB3D)const { // private implementation return FALSE; } #endif