PV3D* Malla::normalCaraNewell(Cara* cara){ PV3D* n = new PV3D(0.0, 0.0, 0.0, 0); for (int i=0; i<cara->getNumVertices(); i++) { PV3D* vertActual= perfil[cara->getIndiceVerticeK(i)]; PV3D* vertSiguiente= perfil[cara->getIndiceVerticeK((i+1) % cara->getNumVertices())]; n->setCoordenadaX(n->getCoordenadaX() + ((vertActual->getCoordenadaY() - vertSiguiente->getCoordenadaY()) * (vertActual->getCoordenadaZ() + vertSiguiente->getCoordenadaZ()))); n->setCoordenadaY(n->getCoordenadaY() + ((vertActual->getCoordenadaZ() - vertSiguiente->getCoordenadaZ()) * (vertActual->getCoordenadaX() + vertSiguiente->getCoordenadaX()))); n->setCoordenadaZ(n->getCoordenadaZ() + ((vertActual->getCoordenadaX() - vertSiguiente->getCoordenadaX()) * (vertActual->getCoordenadaY() + vertSiguiente->getCoordenadaY()))); } n->normalizarVector(); return n; }