예제 #1
0
파일: Sphere.cpp 프로젝트: juj/MathGeoLib
void Sphere::Transform(const float4x4 &transform)
{
	assume(transform.HasUniformScale());
	assume(!transform.ContainsProjection());
	pos = transform.MulPos(pos);
	r *= transform.Col3(0).Length();
}
예제 #2
0
void Circle::Transform(const float4x4 &transform)
{
	assume(transform.HasUniformScale());
	assume(transform.IsColOrthogonal3());
	pos = transform.MulPos(pos);
	normal = transform.MulDir(normal).Normalized();
	r *= transform.Col3(0).Length(); // Scale the radius of the circle.
}
예제 #3
0
void Polygon::Transform(const float4x4 &transform)
{
	for(size_t i = 0; i < p.size(); ++i)
		p[i] = transform.MulPos(p[i]);
}
예제 #4
0
파일: Ray.cpp 프로젝트: Ilikia/naali
Ray operator *(const float4x4 &transform, const Ray &ray)
{
    return Ray(transform.MulPos(ray.pos), transform.MulDir(ray.dir));
}
예제 #5
0
파일: Ray.cpp 프로젝트: ggf31416/CompGraf1
void Ray::Transform(const float4x4 &transform)
{
	pos = transform.MulPos(pos);
	dir = transform.MulDir(dir);
}
예제 #6
0
파일: Ray.cpp 프로젝트: ggf31416/CompGraf1
Ray operator *(const float4x4 &transform, const Ray &ray)
{
	assume(transform.IsInvertible());
	return Ray(transform.MulPos(ray.pos), transform.MulDir(ray.dir).Normalized());
}
예제 #7
0
파일: Triangle.cpp 프로젝트: katik/naali
Triangle operator *(const float4x4 &transform, const Triangle &t)
{
    return Triangle(transform.MulPos(t.a), transform.MulPos(t.b), transform.MulPos(t.c));
}
예제 #8
0
파일: Line.cpp 프로젝트: jnmacd/MathGeoLib
Line operator *(const float4x4 &transform, const Line &l)
{
    return Line(transform.MulPos(l.pos), transform.MulDir(l.dir));
}
예제 #9
0
void Triangle::Transform(const float4x4 &transform)
{
	a = transform.MulPos(a);
	b = transform.MulPos(b);
	c = transform.MulPos(c);
}
예제 #10
0
void Polyhedron::Transform(const float4x4 &transform)
{
	for(size_t i = 0; i < v.size(); ++i)
		v[i] = transform.MulPos(v[i]); ///\todo Add float4x4::BatchTransformPos.
}
예제 #11
0
Ray operator *(const float4x4 &transform, const Ray &ray)
{
	assume(transform.IsInvertible(1e-6f)); // Tundra: use smaller epsilon in order to prevent assumption spam when raycasting to non-uniformly scaled objects.
	return Ray(transform.MulPos(ray.pos), transform.MulDir(ray.dir).Normalized());
}