// Room.hpp: Declaration of the Room class.
//
// Author: Dominik Slusarczyk <dslusarc@cs.hmc.edu>
// 2/27/04
//

#ifndef __ROOM_HPP_INCLUDED
#define __ROOM_HPP_INCLUDED

#include "geometry.h"
#include "Ball.hpp"
#include "Triangle.hpp"

class Room
{
   public:
      // ** INTERFACE FOR USER
      // --

      // Default constructor.
      Room();

      // Constructor from a Ball and multiple Triangles.
      Room(Ball* ball, Triangle** triangles);

      // Destructor.
      ~Room();

      // Start function.
      void start();

      // ** INTERFACE FOR CONTAINED THINGS
      // --

      // Information for 
      float nfoGravityAcceleration(Tuple& location);

      Ball::State nfoDetectCollision(Tuple& start, Tuple& finish);

   private:
      Ball*        ball;
      Triangle**   triangles;

      // The private timestep function.
      void dtTimestep(float dt);

      // Disable copy constructor and assignment operator.
      Room(Room&);
      Room operator=(Room&);



};

















#endif
