Exemple #1
0
void jfVector3_x86::crossProduct(const jfVector3& vec, jfVector3* result) const
{
    jfVector3_x86 tempResult;
	tempResult.setX((m_Y*vec.getZ()) - (m_Z*vec.getY()));
	tempResult.setY((m_Z*vec.getX()) - (m_X*vec.getZ()));
	tempResult.setZ((m_X*vec.getY()) - (m_Y*vec.getX()));
	(*result) = tempResult;
}
Exemple #2
0
void jfRigidBody_x86::calculateTransformMatrix(jfMatrix4* transformMatrix,
												const jfVector3& pos,
												const jfQuaternion& orientation) const
{
	//@ref: Millington p.195
    transformMatrix->setElem(0, (1 - (2*orientation.getJ()*orientation.getJ()) -
                                    (2*orientation.getK()*orientation.getK())));
    transformMatrix->setElem(1, ((2*orientation.getI()*orientation.getJ()) -
                                (2*orientation.getR()*orientation.getK())));
    transformMatrix->setElem(2, ((2*orientation.getI()*orientation.getK()) +
                                (2*orientation.getR()*orientation.getJ())));
    transformMatrix->setElem(3, pos.getX());
    transformMatrix->setElem(4,((2*orientation.getI()*orientation.getJ()) +
                                (2*orientation.getR()*orientation.getK())));
    transformMatrix->setElem(5, ((1 - (2*orientation.getI()*orientation.getI())) -
                                    (2*orientation.getK()*orientation.getK())));
    transformMatrix->setElem(6, ((2*orientation.getJ()*orientation.getK()) -
                                (2*orientation.getR()*orientation.getI())));
    transformMatrix->setElem(7, pos.getY());
    transformMatrix->setElem(8, ((2*orientation.getI()*orientation.getK()) -
                                (2*orientation.getR()*orientation.getJ())));
    transformMatrix->setElem(9, ((2*orientation.getJ()*orientation.getK()) +
                                (2*orientation.getR()*orientation.getI())));
    transformMatrix->setElem(10, (1 - (2*orientation.getI()*orientation.getI()) -
                                    (2*orientation.getJ()*orientation.getJ())));
    transformMatrix->setElem(11, pos.getZ());
}
Exemple #3
0
void jfVector3_x86::addScaledVector(const jfVector3& v, jfReal scale)
{
    m_X += (v.getX() * scale);
    m_Y += (v.getY() * scale);
    m_Z += (v.getZ() * scale);
}
Exemple #4
0
void jfVector3_x86::operator-=(const jfVector3& v)
{
	m_X -= v.getX();
    m_Y -= v.getY();
    m_Z -= v.getZ();
}
Exemple #5
0
void jfVector3_x86::operator+=(const jfVector3& v)
{
    m_X += v.getX();
    m_Y += v.getY();
    m_Z += v.getZ();
}
Exemple #6
0
void jfVector3_x86::componentProduct(const jfVector3& vec, jfVector3* result) const
{
	result->setX(m_X * vec.getX());
	result->setY(m_Y * vec.getY());
	result->setZ(m_Z * vec.getZ());
}
Exemple #7
0
void jfVector3_x86::subtract(const jfVector3& vec, jfVector3* result) const
{
	result->setX(m_X - vec.getX());
	result->setY(m_Y - vec.getY());
	result->setZ(m_Z - vec.getZ());
}
Exemple #8
0
void jfVector3_x86::add(const jfVector3& vec, jfVector3* result) const
{
	result->setX(m_X + vec.getX());
	result->setY(m_Y + vec.getY());
	result->setZ(m_Z + vec.getZ());
}
Exemple #9
0
jfReal jfVector3_x86::dotProduct(const jfVector3& v) const
{
    return ( (v.getX()*m_X) + (v.getY()*m_Y) + (v.getZ()*m_Z) );
}
Exemple #10
0
void jfVector3_x86::componentProductUpdate(const jfVector3& v)
{
	m_X *= v.getX();
    m_Y *= v.getY();
    m_Z *= v.getZ();
}