bool Calc::interceptaFace(vector<float> pontoInter, Face face){ vector<float> aresta1, aresta2, aresta3; vector<float> normal1, normal2, normal3; aresta1 = face.getVertice1().getPos(); aresta2 = face.getVertice2().getPos(); aresta3 = face.getVertice3().getPos(); normal1 = produtoVetorial(aresta2, aresta1); normal2 = produtoVetorial(aresta3, aresta2); normal3 = produtoVetorial(aresta1, aresta3); if((produtoEscalar(pontoInter, normal1) < 0) || (produtoEscalar(pontoInter, normal2) < 0) || (produtoEscalar(pontoInter, normal3) < 0)) return false; return true; }
void lerCamera (string endereco) { ifstream arquivo (endereco); if (arquivo.is_open()) { arquivo >> camera.pontoCamera.x; arquivo >> camera.pontoCamera.y; arquivo >> camera.pontoCamera.z; arquivo >> camera.vetorN.x; arquivo >> camera.vetorN.y; arquivo >> camera.vetorN.z; arquivo >> camera.vetorV.x; arquivo >> camera.vetorV.y; arquivo >> camera.vetorV.z; arquivo >> camera.distancia; arquivo >> camera.hX; arquivo >> camera.hY; camera.vetorN = normalizarVetor(camera.vetorN); camera.vetorV = normalizarVetor(camera.vetorV); camera.vetorU = produtoVetorial(camera.vetorN, camera.vetorV); } else