/**********************************************************************
   File:     CGWorld.h
   Author:   Dr. Dalton R. Hunkins    
   Date:     February 2009      
**********************************************************************/

#ifndef _CGWORLD_H
#define _CGWORLD_H

#include <GL/Utils/ObjModel.h>
#include <GL/Utils/Coordinates.h>
#include <GL/Utils/RGB.h>

class CGWorld { 
  public:

    CGWorld();
  
    void createSubWindow(int parentHandle,
                    int parentWidth, int parentHeight,
                    int startX,      int startY,
                    int width,        int height);

   void init(float clearColor[]); 
   
   void display();
   
   void reshape(int width, int height);
   
   void mouse(int button, int state, int x, int y);
   void mouseMotion(int x, int y);
   void specialKeyboard(int key, int x, int y);
   
   void setModel(ObjModel *model);
   
   int getWindowHandle();
   
   int getCornerX();
   int getCornerY();
   int getWidth();
   int getHeight();
   
private:
    int windowHandle;
    int cornerX;
    int cornerY;
    int width;
    int height;
    int deviceWindowWidth;
    int deviceWindowHeight;
    int startX;
    int startY;
    bool dragging;
    
	float lightColor[3];
	
	double updatedAngleX;
	double updatedAngleY;
	double currentAngleX;
	double currentAngleY;
	
    ObjModel *model;
    
    void setLighting();
};
#endif