void primeiraLinha(pixel *linha, int largura, float limiteMargens, int fluxoDesejado, int distanciaEntreIlhas, float probIlha) { /* Insere os valores da primeira linha do programa */ int tamanhoDaMargemEsquerda; int tamanhoDaMargemDireita; int i = 0; float v; aleatorizaPrimeiraMargem (linha, largura, limiteMargens); tamanhoDaMargemEsquerda = margemEsquerda(linha); tamanhoDaMargemDireita = margemDireita(linha, largura); insereIlha(linha, distanciaEntreIlhas, probIlha, tamanhoDaMargemEsquerda, tamanhoDaMargemDireita, largura); for (i = tamanhoDaMargemEsquerda; i < largura - tamanhoDaMargemDireita; i++) { /* Insere a velocidade água */ if (linha[i-1].tipo == TERRA || tipo(&linha[i]) == TERRA || linha[i+1].tipo == TERRA) setaVelocidade(&linha[i],0); else{ v = velocidadeDaAguaPrimeiraLinha (linha[i-1].velocidade); setaVelocidade(&linha[i], v); } } suavizaVelocidades(linha, largura); /* Consideramos a probabilidade de a primeira linha ter ilhas */ normaliza(linha, largura, fluxoDesejado); }
void calcPerpendicularNorm(double vec[3]){ camDir[0] = camAt[0] - camPos[0]; camDir[1] = camAt[1] - camPos[1]; camDir[2] = camAt[2] - camPos[2]; vec[0] = -camDir[2]; vec[1] = camDir[1]; vec[2] = camDir[0]; normaliza(vec); }
void calcDirectionNorm(double vec[3]){ camDir[0] = camAt[0] - camPos[0]; camDir[1] = camAt[1] - camPos[1]; camDir[2] = camAt[2] - camPos[2]; vec[0] = camDir[0]; vec[1] = camDir[1]; vec[2] = camDir[2]; normaliza(vec); }
void proximaLinha (pixel *linhaAnterior, pixel *linha, int largura, float limiteMargens, int fluxoDesejado, int distanciaEntreIlhas, float probIlha) { /* Calcula como deve ser a nova linha do frame */ int tamanhoDaMargemEsquerda; int tamanhoDaMargemDireita; aleatorizaMargem(linhaAnterior, linha, limiteMargens, largura); /* Insere as novas margens aleatorizadas */ tamanhoDaMargemEsquerda = margemEsquerda(linha); tamanhoDaMargemDireita = margemDireita(linha, largura); insereIlha(linha, distanciaEntreIlhas, probIlha, tamanhoDaMargemEsquerda, tamanhoDaMargemDireita, largura); velocidadeProximaLinha(linha, linhaAnterior, fluxoDesejado, largura); suavizaVelocidades(linha, largura); normaliza(linha, largura, fluxoDesejado); }
char* CTexto::getNormalizado(){ if(normalizado) return normalizado; if(parent && parent->getNormalizado() && getOffset() > -1){ normalizado = this->parent->getNormalizado() + this->getOffset(); return normalizado; } if(!normalizado && getTexto() && getTamanho() > -1){ normalizado = new char[tamanho + 1]; memcpy(normalizado, texto, tamanho + 1); normaliza(normalizado,tamanho); } //fwrite(texto,1,tamanho,stdout); // printf(" %d\n", tamanho); //fwrite(normalizado,1,tamanho,stdout); // printf(" %d --------------------\n", tamanho); return normalizado; }