Esempio n. 1
0
void Camera::Update(float delta)
{
	if(this->updateCamera)
	{
		if(activeWindowDisabling)
		{
			if(GetForegroundWindow() == this->g_hWnd)
				UpdateSpecific(delta);
		}
		else
		{
			UpdateSpecific(delta);
		}

		this->MoveToTerrain();
		this->MoveToFollowPosition();
		if(this->forceBoundries)
		{
			if(this->pos.x < this->minBoundries.x)
				this->pos.x = this->minBoundries.x;
			else if(this->pos.x > this->maxBoundries.x)
				this->pos.x = this->maxBoundries.x;

			if(this->pos.y < this->minBoundries.y)
				this->pos.y = this->minBoundries.y;
			else if(this->pos.y > this->maxBoundries.y)
				this->pos.y = this->maxBoundries.y;

			if(this->pos.z < this->minBoundries.z)
				this->pos.z = this->minBoundries.z;
			else if(this->pos.z > this->maxBoundries.z)
				this->pos.z = this->maxBoundries.z;
		}
	}
}
Esempio n. 2
0
void Camera::Update(float delta)
{
	this->MoveFollowingMesh();
	if(this->updateCamera)
	{
		if(activeWindowDisabling)
		{
			if(GetForegroundWindow() == this->g_hWnd)
				UpdateSpecific(delta);
		}
		else
		{
			UpdateSpecific(delta);
		}

		//this->MoveToTerrain();
		
		if(this->forceBoundries)
		{
			if(this->pos.x < this->minBoundries.x)
				this->pos.x = this->minBoundries.x;
			else if(this->pos.x > this->maxBoundries.x)
				this->pos.x = this->maxBoundries.x;

			if(this->pos.y < this->minBoundries.y)
				this->pos.y = this->minBoundries.y;
			else if(this->pos.y > this->maxBoundries.y)
				this->pos.y = this->maxBoundries.y;

			if(this->pos.z < this->minBoundries.z)
				this->pos.z = this->minBoundries.z;
			else if(this->pos.z > this->maxBoundries.z)
				this->pos.z = this->maxBoundries.z;
		}
	}

	if(this->useFBXPosition)
	{
		// Update v p matrix.
		D3DXVECTOR3 curPos = this->FBXPosition;
		D3DXVECTOR3 at = curPos + this->forward;
		D3DXMatrixLookAtLH(&view, &curPos, &at, &this->up);
		D3DXMatrixPerspectiveFovLH(&this->projection, this->params.FOV * 0.01745f, 
			this->params.WindowWidth / (float)this->params.WindowHeight, this->params.NearClip, this->params.FarClip);
		D3DXMatrixMultiply(&this->viewProj, &this->view, &this->projection);
		this->oldpos = curPos;	
	}
	else
	{
		// Update v p matrix.
		D3DXVECTOR3 curPos = this->pos;
		D3DXVECTOR3 at = curPos + this->forward;
		D3DXMatrixLookAtLH(&view, &curPos, &at, &this->up);
		D3DXMatrixPerspectiveFovLH(&this->projection, this->params.FOV * 0.01745f, 
			this->params.WindowWidth / (float)this->params.WindowHeight, this->params.NearClip, this->params.FarClip);
		D3DXMatrixMultiply(&this->viewProj, &this->view, &this->projection);
		this->oldpos = curPos;
	}
}