Torus::Torus(float* position, Game *game, float innerRadius, float outerRadius, int rings, int sides) : Object(position, game) 
{
	float tubeRadius = (outerRadius - innerRadius) * 0.5f;
	float *p = circularProfile(-3.14159f, 3.14159f, tubeRadius, sides, innerRadius + tubeRadius);
	computeVAO(sides + 1, p + 2, p, rings, 0.0f);
	free(p);
}
Exemple #2
0
void 
VSResSurfRevLib::createTorus(float innerRadius, float outerRadius, int rings, int sides) {

	float tubeRadius = (outerRadius - innerRadius) * 0.5f;
	float *p = circularProfile(-3.14159f, 3.14159f, tubeRadius, sides, innerRadius + tubeRadius);
	computeVAO(sides+1, p+2, p, rings, 0.0f);
}
Exemple #3
0
void 
VSSurfRevLib::createSphere(float radius, int divisions) {

	std::vector<float> p;
	circularProfile(p, -3.14159f/2.0f, 3.14159f/2.0f, radius, divisions);
	computeVAO(divisions+1, &(p[2]), &(p[0]), divisions*2, 0.0f);
}
Exemple #4
0
void 
VSSurfRevLib::createTorus(float innerRadius, float outerRadius, int rings, int sides) {

	float tubeRadius = (outerRadius - innerRadius) * 0.5f;
	std::vector<float> p;
	circularProfile(p, -3.14159f, 3.14159f, tubeRadius, sides, innerRadius + tubeRadius);
	computeVAO(sides+1, &(p[2]), &(p[0]), rings, 0.0f);
}
Exemple #5
0
void 
VSResSurfRevLib::createSphere(float radius, int divisions) {

	float *p = circularProfile(-3.14159f/2.0f, 3.14159f/2.0f, radius, divisions);
	computeVAO(divisions+1, p+2, p, divisions*2, 0.0f);
}