Ejemplo n.º 1
0
void Mesh::Translate(Vector d)
{
	Triangle *tri = tris;
	for(int i = 0; i < numTris; i++, tri++)
	{
		tri->Translate(d);
	}
	centroidChanged = true;
}
Ejemplo n.º 2
0
void Mesh::Translate(float dx, float dy, float dz)
{
	Triangle *tri = tris;
	for(int i = 0; i < numTris; i++, tri++)
	{
		tri->Translate(dx, dy, dz);
	}
	centroidChanged = true;
}
Ejemplo n.º 3
0
void Mesh::SetRotation(Vector r)
{
	Triangle *tri = tris, *ot = originalTris;
	Vector c = ComputeCentroid();
	Vector o;
	for(int i = 0; i < numTris; i++, tri++, ot++)
	{
		*tri = *ot;
		tri->RotateAboutPoint(rotation + r, o);
		tri->Translate(c);
		tri->RecalcNormal();
	}
}
Ejemplo n.º 4
0
void Mesh::MoveTo(float x, float y, float z)
{
	Triangle *tri = tris, *ot = originalTris;
	Vector c;
	for(int i = 0; i < numTris; i++, tri++, ot++)
	{
		*tri = *ot;
		tri->RotateAboutPoint(rotation, c);
		tri->Translate(x, y, z);
		tri->RecalcNormal();
	}
	centroidChanged = true;
}
Ejemplo n.º 5
0
void Mesh::Explode(float dist, float variance)
{
	Vector c = ComputeCentroid();
	Vector d;
	Triangle *tri = tris;
	float rand;
	variance *= 2;
	for(int i = 0; i < numTris; i++, tri++)
	{
		tri->ComputeCentroid();
		d = tri->centroid - c;
		rand = (Random::randf() - 0.5f) * variance;
		d = d.Normalize() * (dist + rand);
		tri->Translate(d);
	}
}