//Bernard Peng //bpeng #ifndef __SIMSGRAPHICS__ #define __SIMSGRAPHICS__ //building types, these will be defined by logic class Building; class Road; class Character; class SimsGraphics { public: SimsGraphics(); ~SimsGraphics(); //GUI calls, this takes a pixel coordinate and returns the world coordinates int getWorldCoordinates(int pixelx, int pixely, float &x, float &y); //these 3 functions are used by the GUI to manipulate the camera, they take pixel coordinates int cameraPan(int x, int y); int cameraZoom(int x, int y); int cameraRotate(int x, int y); //these 3 functions are used by the GUI to manipulate the camera if it wants to do so with // "real" values (not pixel values, but world coordinate values) int manualCameraPan(double x, double z); int manualCameraZoom(double zoom); int manualCameraRotate(double rotate); //terrain setup // -these sets a terrain type (for a square, since its tile based) int addTerrain(int x, int y, int type); // -this puts in a "prop" which is around to make the scene look good. examples are // trees, mailboxes, bushes, etc. int addProp(int x, int y, int type); //add structures // -these 3 are called, and are passed a class of the corresponding type. Through the class, // we can get the locations and any other information we need to draw the thing. int addBuilding(Building *building); int addRoad(Road *road); int addCharacter(Character *character); //delete structures // -these remove the objects from the map. int deleteBuilding(Building *building); int deleteRoad(Road *road); int deleteCharacter(Character *character); //special functions // -this is called by the GUI to draw some sort of building to show where it would go if the user // were to build it there. int previewBuilding(int x, int y, int type); //driver functions // -this initializes opengl void init(); // -this draws all the objects in the scene. void draw(); private: }; #endif