示例#1
0
float3x4 Plane::ObliqueProjection(const vec & /*obliqueProjectionDir*/) const
{
#ifdef _MSC_VER
#pragma warning(Plane::ObliqueProjection not implemented!)
#else
#warning Plane::ObliqueProjection not implemented!
#endif
	assume(false && "Plane::ObliqueProjection not implemented!"); /// @todo Implement.
	return float3x4();
}
示例#2
0
float3x4 MUST_USE_RESULT Quat::ToFloat3x4() const
{
#if defined(MATH_AUTOMATIC_SSE) && defined(MATH_SSE)
	float3x4 m;
	quat_to_mat3x4(q, _mm_set_ps(1,0,0,0), m.row);
	return m;
#else
	return float3x4(*this);
#endif
}
示例#3
0
文件: Plane.cpp 项目: Ilikia/naali
float3x4 Plane::ObliqueProjection(const float3 &obliqueProjectionDir) const
{
    assume(false && "Not implemented!"); ///\todo
    return float3x4();
}
示例#4
0
文件: Plane.cpp 项目: Ilikia/naali
float3x4 Plane::OrthoProjection() const
{
    assume(false && "Not implemented!"); ///\todo
    return float3x4();
}
示例#5
0
void Placeable::SetWorldTransform(const float3x3 &tm, const float3 &pos)
{
    SetWorldTransform(float3x4(tm, pos));
}
示例#6
0
void Placeable::SetWorldTransform(const Quat &orientation, const float3 &pos)
{
    assume(orientation.IsNormalized());
    SetWorldTransform(float3x4(orientation, pos));
}
示例#7
0
float3x4 float3x4::ShearZ(float xFactor, float yFactor)
{
	return float3x4(1.f, 0.f, 0.f, 0.f,
					0.f, 1.f, 0.f, 0.f,
					xFactor, yFactor, 1.f, 0.f);
}
示例#8
0
float3x4 operator *(const Quat &lhs, const float3x4 &rhs)
{
	return float3x4(lhs) * rhs;
}
示例#9
0
float3x4 float3x4::ShearX(float yFactor, float zFactor)
{
	return float3x4(1.f, yFactor, zFactor, 0.f,
					0.f, 1.f, 0.f, 0.f,
					0.f, 0.f, 1.f, 0.f);
}
示例#10
0
float3x4 float3x4::ShearY(float xFactor, float zFactor)
{
	return float3x4(1.f, 0.f, 0.f,  0.f,
					xFactor, 1.f, zFactor, 0.f,
					0.f, 0.f, 1.f, 0.f);
}
示例#11
0
float3x4 float3x4::FromTRS(const float3 &translate, const float3x4 &rotate, const float3 &scale)
{
	return float3x4::Translate(translate) * float3x4(rotate) * float3x4::Scale(scale);
}
示例#12
0
float3x4 float3x4::RandomRotation(LCG &lcg)
{
	return float3x4(float3x3::RandomRotation(lcg));
}
示例#13
0
float3x4 operator *(const float3x3 &lhs, const float3x4 &rhs)
{
	///\todo SSE.
	return float3x4(lhs) * rhs;
}
示例#14
0
文件: Plane.cpp 项目: Ilikia/naali
float3x4 Plane::ReflectionMatrix() const
{
    assume(false && "Not implemented!"); ///\todo
    return float3x4();
}
示例#15
0
void Placeable::SetTransform(const Quat &orientation, const float3 &pos)
{
    SetTransform(float3x4(orientation, pos));
}
示例#16
0
float3x4 MUST_USE_RESULT Quat::ToFloat3x4() const
{
	return float3x4(*this);
}
示例#17
0
	///\todo SSE.
	return float4(DOT3STRIDED(lhs, rhs.ptr(), 4),
				  DOT3STRIDED(lhs, rhs.ptr()+1, 4),
				  DOT3STRIDED(lhs, rhs.ptr()+2, 4),
				  DOT3STRIDED(lhs, rhs.ptr()+3, 4) + lhs.w);
}

float3x4 float3x4::Mul(const float3x3 &rhs) const { return *this * rhs; }
float3x4 float3x4::Mul(const float3x4 &rhs) const { return *this * rhs; }
float4x4 float3x4::Mul(const float4x4 &rhs) const { return *this * rhs; }
float3x4 float3x4::Mul(const Quat &rhs) const { return *this * rhs; }
float3 float3x4::MulPos(const float3 &pointVector) const { return this->TransformPos(pointVector); }
float4 float3x4::MulPos(const float4 &pointVector) const
{
	assume(!EqualAbs(pointVector.w, 0.f));
	return this->Transform(pointVector);
}
float3 float3x4::MulDir(const float3 &directionVector) const { return this->TransformDir(directionVector); }
float4 float3x4::MulDir(const float4 &directionVector) const
{
	assume(EqualAbs(directionVector.w, 0.f));
	return this->TransformDir(directionVector);
}
float4 float3x4::Mul(const float4 &vector) const { return *this * vector; }

const float3x4 float3x4::zero	 = float3x4(0,0,0,0, 0,0,0,0, 0,0,0,0);
const float3x4 float3x4::identity = float3x4(1,0,0,0, 0,1,0,0, 0,0,1,0);
const float3x4 float3x4::nan = float3x4(FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN, FLOAT_NAN);

MATH_END_NAMESPACE