-
Notifications
You must be signed in to change notification settings - Fork 2
/
simulation.h
62 lines (42 loc) · 1.34 KB
/
simulation.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#ifndef SIMULATION_H_
#define SIMULATION_H_
#include "maze.h"
#include <cimg/CImg.h>
class Maze;
#define MMPERPIXEL 6
#define CELLWIDTH_MM 180 // Each square cell is 18 cm
#define POSTWIDTH_MM 12
#define MOUSEWIDTH_MM 60 // only square mouse is supported currently
class Simulation
{
public:
Simulation()
{
imgHeight = (CELLWIDTH_MM * MAZESIZE) / MMPERPIXEL + 50;
imgWidth = (CELLWIDTH_MM * MAZESIZE) / MMPERPIXEL + 50;
imgScale = 1;
image = cimg_library::CImg<unsigned char>(imgHeight, imgWidth, 1, 3, 0);
image.fill(0);
xprev = 0;
yprev = 0;
};
void render(Maze const * maze, const unsigned char * color);
// store coords of previous render to erase before calling this render
void render(Mouse const* mouse);
cimg_library::CImgDisplay display;
void scaleAndDisplay();
void saveBMP(std::string& fileName);
void saveBMP();
void readMouseArt(std::string const& fileName);
// private:
// helper method that draws cell, should probably be private
void render(Maze const* maze, int x, int y, const unsigned char* color);
int xprev, yprev;
cimg_library::CImg<unsigned char> image;
std::vector< cimg_library::CImg<unsigned char> > orientedMouseArt;
int imgHeight;
int imgWidth;
int imgScale;
static int frameNumber;
};
#endif