Ejemplo n.º 1
0
TXGridTriangle::TXGridTriangle(TXTriangle *tp)
{
	m_t = tp;
	m_n = m_t->m_norm;

	CVector3f tmp;
	tmp.Sub(m_t->m_v[0]->m_pos,m_t->m_v[1]->m_pos);
	tmp.Cross(tmp,m_n);
	m_en1.Normalize(tmp);
	tmp.Sub(m_t->m_v[1]->m_pos,m_t->m_v[2]->m_pos);
	tmp.Cross(tmp,m_n);
	m_en2.Normalize(tmp);
	tmp.Sub(m_t->m_v[2]->m_pos,m_t->m_v[0]->m_pos);
	tmp.Cross(tmp,m_n);
	m_en3.Normalize(tmp);
}
Ejemplo n.º 2
0
void CCamera::lookTo( const CVector3f& fVector )
{
	if (CVector3f::ZERO == fVector)
		return;
	
	if (m_bYawFixed)
	{
		CVector3f dirFixed = fVector;
		dirFixed.Normalize();

		CVector3f xVec,yVec;
		CMatrix kRot;

		xVec = m_vYawFixed.Cross(dirFixed);
		xVec.Normalize();
		yVec = dirFixed.Cross(xVec);
		yVec.Normalize();
		m_Quaternion.FromAxes( xVec,yVec,dirFixed );
		m_bNeedUpdate = true;
	}
	else
	{
		setDIRECTION(fVector);
	}
}