#pragma once #include #include "Framework.h" #include "Vector3D.h" #include "Vertex.h" #include "Matrix.h" #include "SharedTools.h" #include "Camera.h" #include "Model.h" #include "MD2Loader.h" #include "Light.h" #include "AmbientLight.h" #include "DirectionalLight.h" #include "PointLight.h" using namespace std; using namespace SharedTools; class Rasteriser : public Framework { public: bool Initialise(); void Update(const Bitmap& bitmap); void Render(const Bitmap& bitmap); void ClearViewport(const Bitmap& bitmap); void SetCurrentCamera(int index); Camera& GetCamera(int index); Camera& GetCurrentCamera(); void DrawSquare(HDC hDc, const vector verticies); void DrawShape(HDC hDc, const vector verticies); void DrawWireFrame(HDC hDc, Model& model); void DrawSolidFlat(HDC hDc, Model& model); private: vector _sceneModels; vector _lights; vector _cameras; int _currentCamera = 0; Matrix _currentPerspectiveMatrix; Matrix _currentViewMatrix; float _currentAspectRatio = 0.0f; int _rotation = 0; };