Matriz cal_normais(Matriz &pontos, vector<vector<int>> &triangulos){
vector<vector<Matriz>> normais(pontos.cols);
Matriz retorno(3,pontos.cols);
int sz = triangulos.size();
for(int i =0; i< sz;i++){
Matriz ab = pontos.getCol(triangulos[i][0]-1) - pontos.getCol(triangulos[i][1]-1);//vetor ab
Matriz ac = pontos.getCol(triangulos[i][0]-1) - pontos.getCol(triangulos[i][2]-1);//vetor ac
Matriz normal = ab.cross(ac,0);//produto vetorial
normais[triangulos[i][0]-1].push_back(normal);//normal no vertice 0 do triangulo i
normais[triangulos[i][1]-1].push_back(normal);
normais[triangulos[i][2]-1].push_back(normal);
}
for(int i = 0; i< pontos.cols;i++){//normaliza as normais
int sz = normais[i].size();
Matriz sum(3,1);
for(int j = 0; j<sz;j++){
sum= sum+ normais[i][j];
}
sum.normaliza();
retorno.at(0,i) = sum[0];//normal do triangulo i
retorno.at(1,i) = sum[1];
retorno.at(2,i) = sum[2];
}
return retorno;
}