All pastes #66582 Raw Edit

Someone

public text v1 · immutable
#66582 ·published 2006-06-17 15:38 UTC
rendered paste body
void Model::averageNormals(const std::vector<Poly>& polyNet, const std::vector<Vertice>& vertices, std::vector<Vertice>& normals) {
	normals.resize(vertices.size());
	for (int i = 0; i < polyNet.size(); i++) {
		Vertice temp1;
		Vertice temp2;
		Vertice result;

		temp1 = vertices[polyNet[i].index[0]] - vertices[polyNet[i].index[1]];
		temp2 = vertices[polyNet[i].index[0]] - vertices[polyNet[i].index[2]];


		//Wenn man es andersrum macht zeigen die normalen in die falsche richtung
		//damn - depends on the file

		result = temp2 * temp1;
		result.normalize();

		//add the normal of the polygon to the polygon of the vertex and normalize it
		normals[polyNet[i].index[0]] = normals[polyNet[i].index[0]] + result;
		normals[polyNet[i].index[0]].normalize();
		normals[polyNet[i].index[1]] = normals[polyNet[i].index[1]] + result;
		normals[polyNet[i].index[1]].normalize();
		normals[polyNet[i].index[2]] = normals[polyNet[i].index[2]] + result;
		normals[polyNet[i].index[2]].normalize();

		// move (result.coord, polyNet[i].normal);

	}
}