Exemple #1
0
void clickFunc(int key, int state, int x, int y)
{
	if ((key == GLUT_LEFT_BUTTON) && (state == GLUT_DOWN))
	{
		// Click "New Desk(s)"-button
		if ((x >= newDeskButton.getXPos()) && (x <= newDeskButton.getXPos() + newDeskButton.getWidth()) && (W_HEIGHT - y >= newDeskButton.getYPos()-newDeskButton.getHeight()/2) && (W_HEIGHT - y <= newDeskButton.getYPos()+newDeskButton.getHeight()/2))
		{
			buildMode = !buildMode;
			hlGrid.deactivateAllSquares();
			if (destroyMode)
				destroyMode = false;
			else
				cRoom.toggleGrid();
		}
		
		// Click "Remove Desk(s)"-button 
		else if ((x >= removeDeskButton.getXPos()) && (x <= removeDeskButton.getXPos() + removeDeskButton.getWidth()) && (W_HEIGHT - y >= removeDeskButton.getYPos()-removeDeskButton.getHeight()/2) && (W_HEIGHT - y <= removeDeskButton.getYPos()+removeDeskButton.getHeight()/2))
		{
			destroyMode = !destroyMode;
			hlGrid.deactivateAllSquares();
			if (buildMode)
				buildMode = false;
			else
				cRoom.toggleGrid();
		}
		
		// Click "Export to .TGA"-button 
		else if ((x >= exportButton.getXPos()) && (x <= exportButton.getXPos() + exportButton.getWidth()) && (W_HEIGHT - y >= exportButton.getYPos()-exportButton.getHeight()/2) && (W_HEIGHT - y <= exportButton.getYPos()+exportButton.getHeight()/2))
		{
			screenshot = true;
		}
		
		else
		{
			in.getCursor3(x, y, clickPos, cameraFrame, projectionStack);
			if (buildMode)
			{
				hlGrid.deactivateAllSquares();
			}
			else if (!buildMode && !destroyMode)
			{
				trackCursor = true;
				lastPos[0] = clickPos[0];
				lastPos[1] = clickPos[1];
			}

			else if (destroyMode)
			{
				hlGrid.deactivateAllSquares();
			}
		}
	}
	else if ((key == GLUT_LEFT_BUTTON) && (state == GLUT_UP))
	{
		hlGrid.deactivateAllSquares();
		// Do not act as ground if clicked on button
		if (!((x >= newDeskButton.getXPos()) && (x <= newDeskButton.getXPos() + newDeskButton.getWidth()) && (W_HEIGHT - y >= newDeskButton.getYPos()-newDeskButton.getHeight()/2) && (W_HEIGHT - y <= newDeskButton.getYPos()+newDeskButton.getHeight()/2)) && !((x >= removeDeskButton.getXPos()) && (x <= removeDeskButton.getXPos() + removeDeskButton.getWidth()) && (W_HEIGHT - y >= removeDeskButton.getYPos()-removeDeskButton.getHeight()/2) && (W_HEIGHT - y <= removeDeskButton.getYPos()+removeDeskButton.getHeight()/2)) && !screenshot && !((x >= exportButton.getXPos()) && (x <= exportButton.getXPos() + exportButton.getWidth()) && (W_HEIGHT - y >= exportButton.getYPos()-exportButton.getHeight()/2) && (W_HEIGHT - y <= exportButton.getYPos()+exportButton.getHeight()/2)))
		{
			if (buildMode && !destroyMode)
			{
				in.getCursor3(x, y, actualPos, cameraFrame, projectionStack);
				hlGrid.boxActivation(clickPos, actualPos);
				
				vector< vector< float > > pos;
				hlGrid.getSquarePositions(pos);
				stuDesks.createDesks(pos);

				hlGrid.deactivateAllSquares();
			}

			else if (!buildMode && destroyMode)
			{
				in.getCursor3(x, y, actualPos, cameraFrame, projectionStack);
				hlGrid.boxActivation(clickPos, actualPos);
				
				vector< vector< float > > dPos;
				hlGrid.getSquarePositions(dPos);
				stuDesks.destroyDesks(dPos);

				hlGrid.deactivateAllSquares();
			}
			
			else if (!buildMode && !destroyMode)
				trackCursor = false;

		}
	}

	if (!mouseActive)
	{
		if (key == 3) //Scroll up
			cameraFrame.TranslateWorld(0.0f, 0.0f, -0.5f); //Zoom in
		if (key == 4) //Scroll down
			cameraFrame.TranslateWorld(0.0f, 0.0f, 0.5f); //Zoom out
	}
}