当前位置: 首页>>代码示例>>C++>>正文


C++ GLFrame::TranslateWorld方法代码示例

本文整理汇总了C++中GLFrame::TranslateWorld方法的典型用法代码示例。如果您正苦于以下问题:C++ GLFrame::TranslateWorld方法的具体用法?C++ GLFrame::TranslateWorld怎么用?C++ GLFrame::TranslateWorld使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GLFrame的用法示例。


在下文中一共展示了GLFrame::TranslateWorld方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: clickFunc

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
	}
}
开发者ID:Errim,项目名称:Datorsalsplaneraren,代码行数:96,代码来源:main.cpp


注:本文中的GLFrame::TranslateWorld方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。