Safe HaskellSafe-Inferred

Funciones

Synopsis

Documentation

chunksOf :: Int -> [e] -> [[e]] Source #

Función auxiliar, divide una lista en n sublistas.

objAleatorio :: Set Shape -> Obj -> StdGen -> Obj Source #

Función auxiliar, que devuelve un objeto aleatorio tirado desde otro objeto.

objEspejo :: Set Shape -> Direction -> Direction -> Point3D -> Obj Source #

Función auxiliar, que devuelve el siguiente objeto después de chocar con un objeto con propiedades de espejo.

objCristal :: Set Shape -> Direction -> Direction -> Float -> Float -> Point3D -> (Obj, Float) Source #

Función auxiliar, que devuelve el siguiente objeto después de chocar con un objeto con propiedades de cristal.

mediaLRGB :: [[RGB]] -> [RGB] Source #

Función auxiliar, que realiza la media de una una matriz a una lista.

mediaRGB :: [RGB] -> RGB Source #

Función auxiliar, que realiza la media RGB de una lista de RGBs dados.

sumRGB :: [RGB] -> RGB Source #

Función auxiliar, que realiza el sumatorio RGB de una lista de RGBs dados.

formula :: RGB -> Float -> Point3D -> Point3D -> Direction -> RGB -> RGB Source #

Función básica, calcula la formula de render.

tuplasAleatorias :: [(Float, Float)] -> Float -> StdGen -> [(Float, Float)] Source #

Función auxiliar, aplica un valor aleatorio € [0,salto], sobre la lista de tuplas float.

generarTuplas :: [Float] -> [Float] -> [(Float, Float)] Source #

Función auxiliar, dadas dos listas genera todas las permutaciones de estas generando todas las combinaciones de 2 a 2.

generateRaysForPixels :: Int -> Int -> Int -> Int -> Camara -> Float -> Float -> Int -> StdGen -> [Ray] Source #

Función básica, daados los datos de entrada, la camara y el tamaño de la imagen, lanza los rayos pertinentes desde la cámara.

polarToCartesian :: Float -> Float -> Float -> Point3D Source #

Función auxiliar, convierte de coordenadas polares a coordenadas cartesianas.

genPointTotal :: StdGen -> Point3D Source #

Función auxiliar, genera un punto aleatorio sobre la superficie de una esfera.

genPoint :: StdGen -> Point3D Source #

Función auxiliar, genera un punto aleatorio sobre la superficie de una semiesfera.

obtenerPrimeraColision :: Set Obj -> Obj Source #

Función básica, dada una lista de colisiones devuelve la primera(por cercanía).

listRay :: Set Obj -> Obj Source #

Función auxiliar, dada una lista de colisiones devuelve la primera(por cercanía)(probablemente sobra esta función :c).

colision :: Point3D -> Point3D -> Set Shape -> Bool Source #

Función básica, dados dos puntos y una figura, devuelve si existe o no una colisión directa entre ellos.

dirEspejo :: Direction -> Direction -> Direction Source #

Función básica, dada una dirección y la direción normal de un objeto, devuelve la dirección espejo.

calcularDirCristal :: Direction -> Direction -> Float -> Float -> Direction Source #

Función básica, dada una dirección y la direción normal de un objeto y los coeficientes de refracción, devuelve la dirección refractada.

ruletaRusa :: (Float, Float, Float) -> StdGen -> (Int, Float) Source #

Función básica, depende de las caracterisicas del material, devuelve como se comporta el objeto y su probabilidad.

brdf :: Obj -> Set Shape -> RGB Source #

Función básica, dicta de que color se comporta un objeto.

getRGBTexture :: String -> Obj -> RGB Source #

Función auxiliar, devuelve el color de un objeto en una textura.

loadTexture :: FilePath -> Image PixelRGB8 Source #

Función auxiliar, carga una textura de un fichero.

pixtoRGB :: PixelRGB8 -> RGB Source #

Función auxiliar, convierte el tipo PixelRGB8 a RGB.

sumFlLuz :: [Luz] -> Float Source #

Función auxiliar, suma los valores de las luces.

media :: [Float] -> Float Source #

Calcular la media de una lista de valores.

varianza :: [Float] -> Float Source #

Calcular la varianza de una lista de valores.

desviacionEstandar :: [Float] -> Float Source #

Calcular la desviación estándar de una lista de valores.

fGaus :: [Foton] -> Obj -> Foton -> Float Source #

Calcula mediante una Función Gaussiana el peso de un fotón.

addNiebla :: Luz -> Obj -> Float -> Set Shape -> RGB -> RGB Source #

Función auxiliar, devuelve el color después de que un rayo pase a traves de niebla homogenea.

distanceToRay :: Point3D -> Ray -> Point3D Source #

Función auxiliar, devuelve el punto en un rayo más cerca de un punto dado.

fPhong :: Point3D -> Obj -> Float -> Set Shape -> Float Source #

Función auxiliar, brdf de Phong.

fresnell :: Obj -> Float -> Float Source #

Función auxiliar, devuelve el porcentaje de especular de como se comporta un objeto después de aplicarle las ecuaciones de fresnell.

mulCam :: Camara -> Int -> Float -> [Camara] Source #

Función auxiliar, genera múltiples cámaras en un radio dado.