void CModel::SetDirection( const Quaternion& q ) { Vector3 dir = q.GetDirection(); if( m_Dir == dir ) return; Vector3 pos( m_matWorld._41, m_matWorld._42, m_matWorld._43 ); m_matWorld.SetIdentity(); m_matWorld._11 *= m_fSize; m_matWorld._22 *= m_fSize; m_matWorld._33 *= m_fSize; m_matWorld *= q.GetMatrix(); m_matWorld._41 = pos.x; m_matWorld._42 = pos.y; m_matWorld._43 = pos.z; m_Dir = dir; if( m_pBone ) m_pBone->SetTM( &m_matWorld ); }