#include using namespace std; #include "charbitmap.h" /*** uses graphical chars char CharBitMap::ULEFT = 201; // for |- char on PCs char CharBitMap::URIGHT = 187; // for -| char CharBitMap::LLEFT = 200; // for |_ char CharBitMap::LRIGHT = 188; // for _| char CharBitMap::VERT = 186; // for | char CharBitMap::HORIZ = 205; // for -- char CharBitMap::ON = 219; // square on char CharBitMap::OFF = ' '; // square off ***/ char CharBitMap::ULEFT = '+'; // for |- char on PCs char CharBitMap::URIGHT = '+'; // for -| char CharBitMap::LLEFT = '+'; // for |_ char CharBitMap::LRIGHT = '+'; // for _| char CharBitMap::VERT = '|'; // for | char CharBitMap::HORIZ = '-'; // for -- char CharBitMap::ON = '*'; char CharBitMap::OFF = ' '; CharBitMap::CharBitMap(int rows, int cols) : myGrid(rows,cols,white) { } void CharBitMap::SetPixel(int row, int col, CharBitMap::color c) { myGrid[row][col] = c; } CharBitMap::color CharBitMap::GetPixel(int row, int col) const { return myGrid[row][col]; } char CharBitMap::ToChar(CharBitMap::color c) const { static char pixels[] = {ON,OFF}; return pixels[c]; } void CharBitMap::Display(ostream& out) const { int j,k; out << ULEFT; for(j=0; j < myGrid.numcols(); j++) { out << HORIZ; } out << URIGHT << endl; for(j=0; j < myGrid.numrows(); j++) { out << VERT; for(k=0;k < myGrid.numcols(); k++) { out << ToChar(myGrid[j][k]); } out << VERT << endl; } out << LLEFT; for(j=0; j < myGrid.numcols(); j++) { out << HORIZ; } out << LRIGHT << endl; } int CharBitMap::Rows() const { return myGrid.numrows(); } int CharBitMap::Cols() const { return myGrid.numcols(); }