Files
Work/engine/DIB3D.HPP
2024-08-07 09:16:27 -04:00

72 lines
1.9 KiB
C++

#ifndef _ENGINE_DIB3D_HPP_
#define _ENGINE_DIB3D_HPP_
#ifndef _ENGINE_VIEWSYSTEM_HPP_
#include <engine/viewsys.hpp>
#endif
#ifndef _COMMON_DIBITMAP_HPP_
#include <common/dib.hpp>
#endif
#ifndef _COMMON_CALLBACK_HPP_
#include <common/callback.hpp>
#endif
#ifndef _COMMON_GUIWINDOW_HPP_
#include <common/guiwnd.hpp>
#endif
#ifndef _COMMON_PUREDEVICE_HPP_
#include <common/purehdc.hpp>
#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<DIB3D> 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