Exemple #1
0
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