コード例 #1
0
ファイル: Malla.cpp プロジェクト: hristoivanov/master-ucm-GC
PuntoVector3D* Malla::CalculoVectorNormalPorNewell(Cara* c){
	PuntoVector3D* n = new PuntoVector3D(0, 0, 0, 1);

	for (int i = 0; i < c->getNumeroVertices(); i++){
		PuntoVector3D* vertActual = vertice[c->getIndiceVerticeK(i)];
		PuntoVector3D* vertSiguiente = vertice[c->getIndiceVerticeK((i + 1) % c->getNumeroVertices())];
		int aux = c->getIndiceVerticeK((i + 1) % c->getNumeroVertices());

		n->setX((vertActual->getY() - vertSiguiente->getY()) * (vertActual->getZ() + vertSiguiente->getZ()));

		n->setY((vertActual->getZ() - vertSiguiente->getZ()) * (vertActual->getX() + vertSiguiente->getX()));

		n->setZ((vertActual->getX() - vertSiguiente->getX()) * (vertActual->getY() + vertSiguiente->getY()));

	}

	n->normalizar();

	return n;
}