PV3D* Malla::calculoNormalNewell(Cara* c){ GLdouble nx = 0.0; GLdouble ny = 0.0; GLdouble nz = 0.0; PV3D* verticeActual = NULL; PV3D* verticeSig = NULL; int nV = c->getNumVertices(); for(int i = 0; i < nV;i++){ verticeActual = vertices[c->getIndice(i)->get_indiceVertice()]; verticeSig = vertices[c->getIndice((i+1)%nV)->get_indiceVertice()]; nx += (verticeActual->getY()-verticeSig->getY())*(verticeActual->getZ()+verticeSig->getZ()); ny += (verticeActual->getZ()-verticeSig->getZ())*(verticeActual->getX()+verticeSig->getX()); nz += (verticeActual->getX()-verticeSig->getX())*(verticeActual->getY()+verticeSig->getY()); } PV3D* n = new PV3D(nx,ny,nz,0); n->normalizar(); return n; }