The DejaVU Framework --
hush 3.1
 
 - 
[up]
[top] - 
index
make
include
source
logic
grammar
scripts
html
configure
mx
slides
talks
scenes
reports
projects
  
  <body bgcolor="#FFFFFF" text="#000000">
  
  
// Grid.h
template 
  
<h4 align=right text=red> Grid</h4><hr>
  class Grid
{
 public:
  Grid(int inWidth = kDefaultWidth, int inHeight = kDefaultHeight);
  Grid(const Grid& src);
  ~Grid();
  Grid& operator=(const Grid& rhs);
  void setElementAt(int x, int y, const T& inElem);
  T& getElementAt(int x, int y);
  const T& getElementAt(int x, int y) const;
  int getHeight() const { return mHeight; }
  int getWidth() const { return mWidth; }
  static const int kDefaultWidth = 10;
  static const int kDefaultHeight = 10;
 protected:
  void copyFrom(const Grid& src);
  T** mCells;
  int mWidth, mHeight;
};<hr>
template 
Grid::Grid(int inWidth, int inHeight) :
  mWidth(inWidth), mHeight(inHeight)
{
  mCells = new T* [mWidth];
  for (int i = 0; i < mWidth; i++) {
    mCells[i] = new T[mHeight];
    for (int j = 0; j < mHeight; j++) {
      mCells[i][j] = EMPTY;
    }
  }
}
template 
const int Grid::kDefaultWidth;
template 
const int Grid::kDefaultHeight;
template 
Grid::Grid(const Grid& src)
{
  copyFrom(src);
}
template 
Grid::~Grid()
{
  // free the old memory
  for (int i = 0; i < mWidth; i++) {
    delete [] mCells[i];
  }
  delete [] mCells;
}
template 
void Grid::copyFrom(const Grid& src)
{
  int i, j;
  mWidth = src.mWidth;
  mHeight = src.mHeight;
  mCells = new T* [mWidth];
  for (i = 0; i < mWidth; i++) {
    mCells[i] = new T[mHeight];
  }
  for (i = 0; i < mWidth; i++) {
    for (j = 0; j < mHeight; j++) {
      mCells[i][j] = src.mCells[i][j];
    }
  }
}
template 
Grid& Grid::operator=(const Grid& rhs)
{
  // check for self-assignment
  if (this == &rhs) {
    return (*this);
  }
  // free the old memory
  for (int i = 0; i < mWidth; i++) {
    delete [] mCells[i];
  }
  delete [] mCells;
  // copy the new memory
  copyFrom(rhs);
  return (*this);
}
template 
void Grid::setElementAt(int x, int y, const T& inElem)
{
  mCells[x][y] = inElem;
}
template 
T& Grid::getElementAt(int x, int y)
{
  return (mCells[x][y]);
}
template 
const T& Grid::getElementAt(int x, int y) const
{
  return (mCells[x][y]);
}
  
    
  
    
  <hr>
  
  <style type="text/css">
  div.mainnavigate {
    margin: 20px 2px;
    /*
    background-color: #ffffff;
    */
    border: 1px solid black;
  }
  </style>
  <div class=xnavigate>
  []
  <black>readme</black>
  course(s)
   preface 
  <black>I</black>
   1 
   2 
  <black>II</black>
   3 
   4 
  <black>III</black>
   5 
   6 
   7 
  <black>IV</black>
   8 
   9 
   10 
  <black>V</black>
   11 
   12 
  afterthought(s)
  <black>appendix</black>
  reference(s)
  example(s)
  <black>resource(s)</black>
  _
    </div>
  
  <hr>
 
  </div>
  
  <hr>
  
  (C) Æliens 
  20/2/2008
  
  
  You may not copy or print any of this material without explicit permission of the author or the publisher. 
  In case of other copyright issues, contact the author.
  
  </div>
  <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
  </script>
  <script type="text/javascript">
  _uacct = "UA-2780434-1";
  urchinTracker();
  </script> 
    
  </body>
  </html>
  
  <hr>
  
  <hr>
  
  <table cellpadding=10>
  <tr>
  <td>
  <address>
  Hush Online Technology
  </address>
  hush@cs.vu.nl
  <br>10/19/08
  </td><td>
   </td>
  <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
  <td>
  </td>
  <td></td><td></td><td></td><td></td><td></td><td></td><td></td>
  <td>
   </td>
  </tr>
  </table>
  </td>
  </tr>
  </table>