/**
* 
* Adds the flag plate to the viewports.
* 
* @author Rebeccah Cox
* @param float32 _fDeltaTick
* @return void
*/
void
CFlagPlate::Process(float32 _fDeltaTick)
{
	CTotalCubeDomination::GetInstance().GetRenderer()->AddToAllViewports(this, RENDERTYPE_3DCOORDS | RENDERTYPE_OPAQUE);

	// Create bounding box.
	CreateAABB();
}
AABoundingBox::AABoundingBox(const std::vector<TangentSpaceVertex>& verts)
    : BoundingVolume(CL_AABB),
      m_max(std::numeric_limits<Real>::lowest(), std::numeric_limits<Real>::lowest(), std::numeric_limits<Real>::lowest()),
      m_min(std::numeric_limits<Real>::infinity(), std::numeric_limits<Real>::infinity(), std::numeric_limits<Real>::infinity())
{
    CreateAABB(verts);
    m_baseMin = m_min;
    m_baseMax = m_max;
}
Beispiel #3
0
	void Geometry::SetWorld(const D3DXMATRIX& world)
	{
		mWorld = world;
		mAABB = CreateAABB();
		mDrawableAABB.SetBox(mAABB);
	}
bool
CTower::Initialise(EFacePosition _eSide, int32 _iX, int32 _iY, ETeam _eTeam, uint32 _uiTextureID, uint32 _uiDisabledTextureID,
				   uint32 _uiModelID, uint32 _uiTurretModelID)
{
	// Set the position and side member variables in CTile.
    m_iX = _iX;
    m_iY = _iY;
	m_eFace = _eSide;
	m_iX = _iX;
	m_iY = _iY;

	m_eTeam = _eTeam;

	m_vec3Position = g_atUpRightDirectionVecs[_eSide].vec3Up * 22.5f;

	m_vec3Position += g_atUpRightDirectionVecs[_eSide].vec3Right * ((_iX * 3.0f) - 21.0f);

	m_vec3Position -= g_atUpRightDirectionVecs[_eSide].vec3Direction * ((_iY * 3.0f) - 21.0f);

	m_bTraversable = false;

	// Set the world matrix using the vectors.
	m_matWorld._11 = g_atUpRightDirectionVecs[_eSide].vec3Right.x;
	m_matWorld._21 = g_atUpRightDirectionVecs[_eSide].vec3Up.x;
	m_matWorld._31 = g_atUpRightDirectionVecs[_eSide].vec3Direction.x;

	m_matWorld._12 = g_atUpRightDirectionVecs[_eSide].vec3Right.y;
	m_matWorld._22 = g_atUpRightDirectionVecs[_eSide].vec3Up.y;
	m_matWorld._32 = g_atUpRightDirectionVecs[_eSide].vec3Direction.y;

	m_matWorld._13 = g_atUpRightDirectionVecs[_eSide].vec3Right.z; 
	m_matWorld._23 = g_atUpRightDirectionVecs[_eSide].vec3Up.z; 
	m_matWorld._33 = g_atUpRightDirectionVecs[_eSide].vec3Direction.z;

	m_matWorld._41 = m_vec3Position.x;
	m_matWorld._42 = m_vec3Position.y;
	m_matWorld._43 = m_vec3Position.z;

	m_vec3ShootRight = g_atUpRightDirectionVecs[_eSide].vec3Right;
	m_vec3ShootDir = g_atUpRightDirectionVecs[_eSide].vec3Direction;
	m_vec3Up = g_atUpRightDirectionVecs[_eSide].vec3Up;

	// Set the turrets world matrix
	RotateTurret(3.14f, 6.283185f/ m_fTurnSpeed);
	/*m_matTurretWorld._11 = m_vec3ShootRight.x; m_matTurretWorld._21 = m_vec3Up.x; m_matTurretWorld._31 = m_vec3ShootDir.x; m_matTurretWorld._41 = m_vec3Position.x;
	m_matTurretWorld._12 = m_vec3ShootRight.y; m_matTurretWorld._22 = m_vec3Up.y; m_matTurretWorld._32 = m_vec3ShootDir.y; m_matTurretWorld._42 = m_vec3Position.y;
	m_matTurretWorld._13 = m_vec3ShootRight.z; m_matTurretWorld._23 = m_vec3Up.z; m_matTurretWorld._33 = m_vec3ShootDir.z; m_matTurretWorld._43 = m_vec3Position.z;
	*/
	m_iModelID = _uiModelID;
	m_iTextureID = _uiTextureID;
	m_uiDisabledTextureID = _uiDisabledTextureID;
	m_uiTurretModelID = _uiTurretModelID;

	D3DXVECTOR3* pFirstVertex = 0;

	LPD3DXMESH pMesh = CModelManager::GetInstance().GetModel(m_iModelID)->GetModel();

	pMesh->LockVertexBuffer(0, (void**)&pFirstVertex);

	D3DXComputeBoundingBox(pFirstVertex, 
							pMesh->GetNumVertices(),
							pMesh->GetNumBytesPerVertex(), 
							&m_tOBB.m_vec3Min, &m_tOBB.m_vec3Max);

	pMesh->UnlockVertexBuffer();

	SetCurrentShield(m_fMaxShieldStrength);

	CEntity::Initialise();

	m_eCurrentState = TOWERAI_STATE_IDLE;
	m_eNextState = TOWERAI_STATE_IDLE;
	m_pCurrentState = new CTowerIdle();
	m_pCurrentState->Initialise(this);

	// Create bounding box.
	CreateAABB();

	return (true);
}