亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? camera.cpp

?? c++程序
?? CPP
字號:
// Camera.cpp: Implementierung der Klasse CCamera.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Camera.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

// Conversion factor for converting between degrees and radians
#define PI_OVER_180 0.0174532925f

//////////////////////////////////////////////////////////////////////
// Construcktion/Destrucktion
//////////////////////////////////////////////////////////////////////

CCamera::CCamera()
{
	// Init all member variables to default values
	m_XPos          = 0.0f;
	m_YPos          = 1.0f;
	m_ZPos          = 0.0f;
	m_YRotate       = 0.0f;
	m_UpDown        = 0.0f;
	m_WalkBiasAngle = 0.0f;
	m_WalkBias      = 0.0f;
	m_SizeOfViewer  = 0.075f;
	m_Speed         = 0.45f;
	m_Landscape     = 0;
}

CCamera::~CCamera()
{

}

void CCamera::RotateHorizontal(float fDegrees)
{
	// Rotate horizontal
	m_YRotate += fDegrees;
}

void CCamera::RotateVertical(float fDegrees)
{
	// Rotate vertikal
	m_UpDown += fDegrees;

	// Check range
	if (m_UpDown > 90.0f)
		m_UpDown = 90.0f;
	if (m_UpDown < -90.0f)
		m_UpDown = -90.0f;
}

void CCamera::CenterVertical()
{
	// Center the vertical axis of the camera
	m_UpDown = 0.0f;
}

void CCamera::MoveDefaultSpeed(bool bForward, bool bBackward, bool bStrafeLeft, bool bStrafeRight,
							   bool bMoveUp, bool bMoveDown)
{
	// Move the camera with the speed defined at m_Speed.
	
	// Covert parameters for MoveCustomSpeed() and pass them
	MoveCustomSpeed(bForward * m_Speed, bBackward * m_Speed,
		bStrafeLeft * m_Speed, bStrafeRight * m_Speed,
		bMoveUp * m_Speed, bMoveDown * m_Speed);
}

void CCamera::MoveCustomSpeed(float fForward, float fBackward, float fStrafeLeft, float fStrafeRight,
							  float fMoveUp, float fMoveDown)
{
	// Move the camera with the passed speed values.

	// Temp variables to store target position
	float fNewXPos = m_XPos;
	float fNewYPos = m_YPos;
	float fNewZPos = m_ZPos;
	
	// Should the camera move forward ?
	if (fForward)
	{
		// Calculate new position
		fNewXPos -= (float) sin(m_YRotate * PI_OVER_180) * fForward;
		fNewZPos -= (float) cos(m_YRotate * PI_OVER_180) * fForward;
	}

	// Should the camera move backward ?
	if (fBackward)
	{
		// Calculate new position
		fNewXPos += (float) sin(m_YRotate * PI_OVER_180) * fBackward;
		fNewZPos += (float) cos(m_YRotate * PI_OVER_180) * fBackward;
	}

	// Should the camera strafe left ?
	if (fStrafeLeft)
	{
		// Calculate new position
		fNewXPos += (float) sin((m_YRotate - 90) * PI_OVER_180) * fStrafeLeft;
		fNewZPos += (float) cos((m_YRotate - 90) * PI_OVER_180) * fStrafeLeft;
	}

	// Should the camera strafe right ?
	if (fStrafeRight)
	{
		// Calculate new position
		fNewXPos -= (float) sin((m_YRotate - 90) * PI_OVER_180) * fStrafeRight;
		fNewZPos -= (float) cos((m_YRotate - 90) * PI_OVER_180) * fStrafeRight;
	}

	// Should the camera move up ?
	if (fMoveUp)
	{
		// Calculate new position
		fNewYPos += fMoveUp;
	}

	// Should the camera move down ?
	if (fMoveUp)
	{
		// Calculate new position
		fNewYPos -= fMoveDown;
	}

	// Walkbias
	IncrementWalkBias();

	// Collision detection
	// (If a landscape has been associated with the camera)
	if (m_Landscape)
	{
		// Restrict movement to the landscape, abort if camera would
		// leave it.
		if (m_Landscape->GetSurfaceHeight(fNewZPos, fNewXPos) == -1.0f)
			// Movement failed
			return;
	}
	
	// Set target position
	m_XPos = fNewXPos;
	m_YPos = fNewYPos;
	m_ZPos = fNewZPos;
}

float CCamera::GetSurfaceHeight()
{
	// Return the height of the eventually associated landscape
	// at the current camera position. If no landscape has been
	// associated return the current camera height.

	if (m_Landscape)
		// Height of landscape
		return m_Landscape->GetSurfaceHeight(m_ZPos, m_XPos);
	else
		// Current camera height
		return m_YPos;
}

void CCamera::IncrementWalkBias()
{
	// Calculate the new walkbias

	if (m_WalkBiasAngle <= 30.0f)
		m_WalkBiasAngle = 359.0f;
	else m_WalkBiasAngle+= 15;
	m_WalkBias = (float) sin(m_WalkBiasAngle * PI_OVER_180) / 20.0f;
}


void CCamera::TransformWorld()
{
	// Transform the world

	// Transformation variables
	GLfloat fXTrans, fZTrans, fYTrans;
	GLfloat fSceneRotY;
	
	// Calculate translations & rotations
	fXTrans = -m_XPos;
	fZTrans = -m_ZPos;
	fSceneRotY = 360.0f - m_YRotate;
	// Walkbias
	fYTrans = -m_YPos + (-m_WalkBias) / 13.0f;
	// Size of viewer
	fYTrans -= m_SizeOfViewer;

	// Do translations & rotations
	glRotatef(m_UpDown, 1.0f, 0.0f , 0.0f);
	glRotatef(fSceneRotY, 0.0f, 1.0f, 0.0f);
	glTranslatef(fXTrans, fYTrans, fZTrans);
}

void CCamera::SetLandscape(CLandscape *pLandscape)
{
	m_Landscape = pLandscape;
}

void CCamera::SetSizeOfViewer(float fSizeOfViewer)
{
	if (fSizeOfViewer >= 0.0f)
		m_SizeOfViewer = fSizeOfViewer;
}

void CCamera::SetSpeed(float fSpeed)
{
	if (fSpeed > 0.0f)
		m_Speed = fSpeed;
}

void CCamera::SetXPos(float fXPos)
{
	m_XPos = fXPos;
}

void CCamera::SetYPos(float fYPos)
{
	m_YPos = fYPos;
}

void CCamera::SetZPos(float fZPos)
{
	m_ZPos = fZPos;
}

float CCamera::GetSizeOfViewer()
{
	return m_SizeOfViewer;
}

float CCamera::GetSpeed()
{
	return m_Speed;
}

float CCamera::GetUpDownRotation()
{
	return m_UpDown;
}

float CCamera::GetXPos()
{
	return m_XPos;
}

float CCamera::GetYPos()
{
	return m_YPos;
}

float CCamera::GetZPos()
{
	return m_ZPos;
}

float CCamera::GetYRotation()
{
	return m_YRotate;
}

CLandscape* CCamera::GetLandscape()
{
	return m_Landscape;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品二区亚洲w码| 欧美大片日本大片免费观看| 欧美日精品一区视频| 日韩无一区二区| 国产欧美一区二区精品性| 国产精品入口麻豆九色| 亚洲第四色夜色| 国产很黄免费观看久久| thepron国产精品| 欧美日韩国产另类一区| 国产欧美日韩亚州综合| 亚洲国产精品综合小说图片区| 久久国产夜色精品鲁鲁99| 成人动漫一区二区| 欧洲国产伦久久久久久久| 日韩精品综合一本久道在线视频| 国产亚洲一本大道中文在线| 亚洲资源中文字幕| 国产精品一区二区不卡| 欧美吻胸吃奶大尺度电影| 久久久久久久综合日本| 亚洲综合成人网| 国产高清视频一区| 欧美日韩精品欧美日韩精品一 | 亚洲高清视频在线| 国产精品911| 欧美美女网站色| 国产精品久久久久久久久免费相片 | 亚洲一区二区三区四区五区中文| 国产呦萝稀缺另类资源| 欧美色成人综合| 中文字幕一区二区在线观看| 在线成人av影院| 中文字幕一区av| 国产裸体歌舞团一区二区| 欧美日韩一区三区| 国产精品对白交换视频 | 久久精品视频免费观看| 韩国欧美国产1区| 精品国产一区二区亚洲人成毛片| 婷婷开心激情综合| 久久99久久久久| 欧美视频中文字幕| 国产精品久久午夜夜伦鲁鲁| 狠狠v欧美v日韩v亚洲ⅴ| 在线不卡a资源高清| 亚洲色图欧美偷拍| 成人av在线网| 久久久国产综合精品女国产盗摄| 另类小说欧美激情| 91精品国产综合久久久久久| 亚洲欧美成人一区二区三区| 成人性生交大片| 国产欧美日韩综合| 国产剧情在线观看一区二区| 91精品国产综合久久精品麻豆| 一区二区三区日韩欧美精品| 成人性生交大片免费看在线播放 | 久久99这里只有精品| 欧美区视频在线观看| 一区二区三区在线观看网站| 成人av第一页| 一区免费观看视频| 成人动漫av在线| 国产精品成人免费精品自在线观看| 国产一区二区导航在线播放| 日韩精品中文字幕一区二区三区| 免费看日韩a级影片| 欧美三级日韩在线| 午夜精品成人在线视频| 欧美日韩国产一级| 亚洲高清三级视频| 欧美丰满少妇xxxxx高潮对白| 亚洲一区二区高清| 欧美日韩不卡在线| 天使萌一区二区三区免费观看| 欧美日韩亚洲另类| 五月综合激情婷婷六月色窝| 欧美日韩1234| 奇米四色…亚洲| 日韩欧美国产一区二区三区| 久久国产精品露脸对白| 久久婷婷久久一区二区三区| 国产精品一卡二| 国产精品久久久久久亚洲伦| 色综合一区二区| 亚洲一线二线三线视频| 亚洲精品午夜久久久| 中文字幕一区不卡| 亚洲综合色丁香婷婷六月图片| 亚洲18女电影在线观看| 日韩一区欧美二区| 久久狠狠亚洲综合| 大桥未久av一区二区三区中文| 成人va在线观看| 欧洲精品一区二区| 日韩久久久精品| 久久久亚洲欧洲日产国码αv| 日韩一区二区免费在线电影 | 91精品国产免费| 久久精品国产**网站演员| 国产欧美日韩在线视频| 色哟哟一区二区三区| 日韩在线a电影| 国产欧美一区二区三区在线看蜜臀 | 欧美一区午夜视频在线观看| 极品美女销魂一区二区三区免费| 国产精品久久久久7777按摩| 欧美日韩在线一区二区| 久久精品72免费观看| 中文字幕一区二区不卡| 91麻豆精品国产91久久久使用方法| 激情丁香综合五月| 国产精品剧情在线亚洲| 欧美日韩成人激情| 国产成人精品免费在线| 亚洲精品国产视频| 日韩精品中文字幕一区| 99久久99精品久久久久久| 偷窥国产亚洲免费视频 | 99精品桃花视频在线观看| 亚洲成va人在线观看| 久久这里只有精品首页| 色av一区二区| 国产老肥熟一区二区三区| 亚洲综合区在线| 国产亚洲精品aa| 69精品人人人人| 国产免费成人在线视频| 欧美在线观看视频在线| 国产做a爰片久久毛片| 一区二区三区免费| 久久免费电影网| 欧美在线小视频| 国产福利一区在线观看| 日韩成人精品在线观看| 国产精品久久夜| 欧美精品一区二区久久久| 欧美亚洲一区三区| 国产91在线观看| 美女视频第一区二区三区免费观看网站| |精品福利一区二区三区| 国产精品视频看| 看片的网站亚洲| 在线观看91精品国产麻豆| 国产高清久久久| 国产精品成人在线观看| 欧美岛国在线观看| 欧美日韩一二三区| 99re这里只有精品首页| 国产精品正在播放| 奇米精品一区二区三区在线观看 | 日韩精品91亚洲二区在线观看| 国产精品麻豆视频| 精品国产91乱码一区二区三区| 亚洲高清久久久| 波多野洁衣一区| 欧美一a一片一级一片| 精品国产人成亚洲区| 中文字幕色av一区二区三区| 亚欧色一区w666天堂| 国产成人亚洲精品狼色在线| 欧美在线色视频| 国产午夜精品久久久久久免费视 | 九色综合狠狠综合久久| 91在线云播放| 久久免费视频色| 婷婷丁香激情综合| 91麻豆产精品久久久久久| 日韩精品一区二区在线观看| 亚洲精品写真福利| 国产成a人亚洲精品| 日韩亚洲欧美在线观看| 亚洲狼人国产精品| 国产精品中文字幕欧美| 欧美一二三四区在线| 亚洲午夜影视影院在线观看| 丁香天五香天堂综合| 日韩欧美黄色影院| 亚洲国产成人91porn| 99riav一区二区三区| 国产日韩欧美综合在线| 精品伊人久久久久7777人| 欧美日韩一级大片网址| 亚洲人成网站在线| 成人午夜电影网站| 久久综合给合久久狠狠狠97色69| 日本大胆欧美人术艺术动态| 欧美日韩在线直播| 一区二区三区四区蜜桃| 色综合久久精品| 中文字幕亚洲一区二区va在线| 丰满少妇在线播放bd日韩电影| 精品国产亚洲在线| 美日韩一区二区| 欧美r级在线观看| 久久av资源网| xvideos.蜜桃一区二区| 精品一区二区三区欧美| 欧美α欧美αv大片|