Permalink
Browse files

Hierarchical reorganization of code into RSAGL.Math, RSAGL.FRP, RSAGL…

….Modeling, RSAGL.Animation, RSAGL.Scene, and RSAGL.RayTrace. A problem with this commit is that most of RSAGL is recompiled for the demo/test programs.
  • Loading branch information...
Christopher Lane Hinson
Christopher Lane Hinson committed Apr 16, 2009
1 parent 3cb4a23 commit 2901b060415e764fd8b482c43d8a1001fc3858b0
Showing with 576 additions and 717 deletions.
  1. +0 −73 Makefile
  2. +143 −18 RSAGL/Main.hs → ModelView.hs
  3. +0 −142 Models/PlanetRingMoon.hs
  4. +6 −6 {RSAGL → }/ProcessColors.hs
  5. +13 −0 RSAGL/Animation.hs
  6. +8 −8 RSAGL/{ → Animation}/Animation.lhs
  7. +12 −12 RSAGL/{ → Animation}/AnimationExtras.lhs
  8. +12 −12 RSAGL/{ → Animation}/InverseKinematics.lhs
  9. +6 −6 RSAGL/{ → Animation}/Joint.lhs
  10. +5 −5 RSAGL/{ → Animation}/KinematicSensors.lhs
  11. +1 −1 RSAGL/{ → Auxiliary}/ApplicativeWrapper.hs
  12. +1 −1 RSAGL/{ → Auxiliary}/Auxiliary.hs
  13. +5 −5 RSAGL/Extras/ColorPhysics.hs
  14. +9 −9 RSAGL/Extras/Sky.hs
  15. +10 −0 RSAGL/FRP.hs
  16. +1 −1 RSAGL/{ → FRP}/ArrowTransformerOptimizer.lhs
  17. +5 −5 RSAGL/{ → FRP}/Edge.lhs
  18. +24 −24 RSAGL/{ → FRP}/FRP.lhs
  19. +17 −17 RSAGL/{ → FRP}/FRPBase.hs
  20. +1 −1 RSAGL/{ → FRP}/StatefulArrow.lhs
  21. +5 −5 RSAGL/{ → FRP}/SwitchedArrow.lhs
  22. +6 −6 RSAGL/{ → FRP}/ThreadedArrow.lhs
  23. +3 −3 RSAGL/{ → FRP}/Time.lhs
  24. +23 −0 RSAGL/Math.hs
  25. +2 −2 RSAGL/{ → Math}/AbstractVector.lhs
  26. +19 −19 RSAGL/{ → Math}/Affine.hs
  27. +2 −2 RSAGL/{ → Math}/Angle.hs
  28. +8 −8 RSAGL/{ → Math}/Curve.hs
  29. +8 −8 RSAGL/{ → Math}/CurveExtras.lhs
  30. +3 −3 RSAGL/{ → Math}/Homogenous.hs
  31. +2 −2 RSAGL/{ → Math}/Interpolation.lhs
  32. +3 −3 RSAGL/{ → Math}/Matrix.lhs
  33. +5 −5 RSAGL/{ → Math}/Orthagonal.lhs
  34. +4 −4 RSAGL/{ → Math}/RK4.lhs
  35. +4 −4 RSAGL/{ → Math}/Ray.lhs
  36. +4 −4 RSAGL/{ → Math}/Vector.lhs
  37. +3 −3 RSAGL/{ → Math}/WrappedAffine.hs
  38. +13 −0 RSAGL/Modeling.hs
  39. +3 −3 RSAGL/{ → Modeling}/BakedModel.hs
  40. +4 −4 RSAGL/{ → Modeling}/BoundingBox.lhs
  41. +3 −3 RSAGL/{ → Modeling}/Color.lhs
  42. +6 −6 RSAGL/{ → Modeling}/Deformation.lhs
  43. +7 −7 RSAGL/{ → Modeling}/Extrusion.lhs
  44. +6 −6 RSAGL/{ → Modeling}/Material.hs
  45. +22 −21 RSAGL/{ → Modeling}/Model.lhs
  46. +16 −16 RSAGL/{ → Modeling}/ModelingExtras.lhs
  47. +4 −4 RSAGL/{ → Modeling}/Noise.lhs
  48. +1 −1 RSAGL/{ → Modeling}/OpenGLPrimitives.hs
  49. +4 −4 RSAGL/{ → Modeling}/Optimization.lhs
  50. +2 −2 RSAGL/{ → Modeling}/RSAGLColors.hs
  51. +6 −6 RSAGL/{ → Modeling}/Tesselation.lhs
  52. +6 −6 RSAGL/{ → RayTrace}/RayTrace.lhs
  53. +6 −6 RSAGL/{ → RayTrace}/Scattering.lhs
  54. +9 −0 RSAGL/Scene.hs
  55. +4 −4 RSAGL/{ → Scene}/CoordinateSystems.lhs
  56. +1 −1 RSAGL/{ → Scene}/LODCache.hs
  57. +5 −5 RSAGL/{ → Scene}/LightSource.hs
  58. +10 −10 RSAGL/{ → Scene}/Scene.lhs
  59. +0 −137 RSAGL/rsagl.tex
  60. +14 −14 {RSAGL → }/Tests.hs
  61. +41 −24 rsagl.cabal
View
@@ -1,73 +0,0 @@
-not-a-makefile-based-project:
- @echo "This isn't a Makefile-based project!"
- @echo "You probably want to: runghc Setup.hs configure/build/install"
-
-all : doc tests
-
-doc :
- pdflatex -output-directory RSAGL rsagl.tex && cp RSAGL/rsagl.pdf ./
-
-tests: rsagl-tests rsagl-modelview
-
-rsagl-tests-prof :
- ghc --version
- -rm -f rsagl-tests.tix
- ghc -fext-core -fhpc -prof -auto-all -caf-all -O2 -Wall -fno-warn-type-defaults --make RSAGL/Tests.hs -main-is RSAGL.Tests.main -o rsagl-tests-prof ${GHC_OPTS}
-
-rsagl-tests :
- ghc --version
- ghc -fext-core -threaded -Wall -fno-warn-type-defaults -O2 -fexcess-precision --make RSAGL/Tests.hs -main-is RSAGL.Tests.main -o rsagl-tests ${GHC_OPTS}
-
-rsagl-modelview-prof:
- ghc --version
- -rm -f rsagl-modelview.tix
- ghc -fext-core -fhpc -prof -auto-all -caf-all -lglut -O2 -Wall -fno-warn-type-defaults --make RSAGL/Main.hs -main-is RSAGL.Main.main -o rsagl-modelview-prof ${GHC_OPTS}
-
-rsagl-modelview:
- ghc --version
- ghc -fext-core -threaded -lglut -Wall -fno-warn-type-defaults -fexcess-precision -O2 --make RSAGL/Main.hs -main-is RSAGL.Main.main -o rsagl-modelview ${GHC_OPTS}
-
-colors:
- ghc -lglut -O2 --make RSAGL/ProcessColors.hs -main-is RSAGL.ProcessColors.main -o rsagl-process-colors
- ./rsagl-process-colors
-
-hpc-metrics: rsagl-tests-prof rsagl-modelview-prof
- -rm -f rsagl-tests.tix
- -rm -f rsagl-modelview.tix
- -rm -f rsagl-sum.tix
- ./rsagl-tests-prof
- ./rsagl-modelview-prof
- hpc sum --union rsagl-tests.tix rsagl-modelview-prof > rsagl-sum.tix
- hpc markup rsagl-sum.tix
-
-clean :
- -rm -f RSAGL/*.dvi
- -rm -f RSAGL/*.hcr
- -rm -f RSAGL/*.aux
- -rm -f RSAGL/*.log
- -rm -f RSAGL/*.pdf
- -rm -f RSAGL/*.toc
- -rm -f RSAGL/*.hi
- -rm -f RSAGL/*.o
- -rm -f RSAGL/*.out
- -rm -f Models/*.o
- -rm -f Models/*.hi
- -rm -f Models/*.hcr
- -rm -f rsagl-tests
- -rm -f rsagl-tests-prof
- -rm -f rsagl-modelview
- -rm -f rsagl-modelview-prof
- -rm -f rsagl-process-colors
- -rm -f rsagl.pdf
- -rm -f ./rsagl-modelview.aux
- -rm -f ./rsagl-modelview.hp
- -rm -f ./rsagl-modelview.pdf
- -rm -f ./rsagl-modelview.ps
- -rm -f ./*.tix
- -rm -f hpc_index_alt.html hpc_index_exp.html hpc_index_fun.html hpc_index.html
- -rm -f ./.hpc/*
- -rmdir ./.hpc
- -rm -f ./*.hs.html
- -rm -f ./*.lhs.html
-
-.PHONY : clean doc tests all rsagl-modelview rsagl-modelview-prof rsagl-tests rsagl-tests-prof colors hpc-metrics
@@ -1,34 +1,30 @@
{-# LANGUAGE Arrows #-}
-module RSAGL.Main
+module Main
(main,
displayModel)
where
import Data.IORef
import System.IO
-import Graphics.UI.GLUT as GLUT
+import Graphics.UI.GLUT as GLUT hiding (specular,scale,translate,rotate)
import Graphics.Rendering.OpenGL.GLU.Errors
-import RSAGL.Model
-import Models.PlanetRingMoon
-import RSAGL.Time
+import System.Random
+import RSAGL.Modeling
+import RSAGL.FRP
+import RSAGL.Animation
+import RSAGL.Scene
+import RSAGL.Math
+import RSAGL.Scene.LODCache
+import RSAGL.RayTrace.RayTrace as RT
+import RSAGL.Extras.Sky
+import RSAGL.Math.CurveExtras
+import RSAGL.Auxiliary.Auxiliary
import Control.Monad
-import RSAGL.Angle
import System.Exit
import RSAGL.Bottleneck
-import RSAGL.LODCache
-import RSAGL.Scene
-import RSAGL.FRP
-import RSAGL.Animation
-import RSAGL.AnimationExtras
-import RSAGL.ThreadedArrow
import Control.Arrow
-import RSAGL.Vector
-import RSAGL.CoordinateSystems
-import qualified RSAGL.Affine as Affine
-import RSAGL.ModelingExtras
-import RSAGL.InverseKinematics
-import RSAGL.LightSource
+import qualified RSAGL.Math.Affine as Affine
test_quality :: Integer
test_quality = 2^14
@@ -176,3 +172,132 @@ rsaglTimerCallback :: Window -> IO ()
rsaglTimerCallback window =
do addTimerCallback timer_callback_millis (rsaglTimerCallback window)
postRedisplay $ Just window
+
+
+
+ring :: Modeling ()
+ring = model $ do openDisc origin_point_3d (Vector3D 0 1 0) 0.75 1.0
+ material $
+ do transparent $ pure $ alpha 0.25 purple
+ specular 2 $ pure purple
+ bumps $ waves 0.2 0.01
+ twoSided True
+
+planet :: Modeling ()
+planet = model $
+ do RSAGL.Modeling.sphere (Point3D 0 0 0) 0.65
+ deform $ constrain (\(SurfaceVertex3D (Point3D x y z) _) -> x > 0 && y > 0 && z > 0) $
+ RT.shadowDeform (Vector3D (-1) (-1) (-1)) (map (RT.plane (Point3D 0 0 0)) [Vector3D 1 0 0,Vector3D 0 1 0,Vector3D 0 0 1])
+ let land_vs_water land water = pattern (cloudy 26 0.4) [(0,water),(0.5,water),(0.51,land),(1,land)]
+ let grass_and_mountains = pattern (cloudy 81 0.25) [(0.4,pattern (cloudy 99 0.1) [(0.0,pure brown),(1.0,pure slate_gray)]),(0.5,pure forest_green)]
+ let land_and_water = land_vs_water grass_and_mountains (pure blue)
+ let cities bright dark = land_vs_water (pattern (cloudy 5 0.1) [(0.0,bright),(0.5,dark)]) (dark)
+ let planet_surface = pattern (gradient (Point3D 0 0 0) (Vector3D 0 0.65 0))
+ [(-0.9,pure white),(-0.85,land_and_water),(0.85,land_and_water),(0.9,pure white)]
+ let planet_interior inner_core outer_core crust = pattern (spherical (Point3D 0 0 0) 0.65)
+ [(0.0,inner_core),(0.25,inner_core),(0.5,outer_core),(0.95,outer_core),(1.0,crust)]
+ material $
+ do pigment $ planet_interior (pure blackbody) (pure blackbody) $ cities (pure black) planet_surface
+ emissive $ planet_interior (pure yellow) (pure red) $ cities (pure $ scaleRGB 0.2 white) (pure blackbody)
+ specular 20 $ planet_interior (pure blackbody) (pure blackbody) $ land_vs_water (pure blackbody) (pure white)
+
+moon :: Modeling ()
+moon = model $
+ do RSAGL.Modeling.sphere (Point3D 0 0 0) 0.2
+ material $ pigment $ pattern (cloudy 8 0.05) [(0.0,pure slate_gray),(1.0,pure white)]
+ regenerateNormals
+
+monolith :: Modeling ()
+monolith = model $
+ do smoothbox 0.1 (Point3D 4 9 1) (Point3D (-4) (-9) (-1))
+ affine (translate $ Vector3D 0 9 0)
+ affine (scale' 0.20)
+ material $
+ do pigment $ pure blackbody
+ specular 100 $ pure white
+
+ground :: Modeling ()
+ground = model $
+ do closedDisc (Point3D 0 (-0.1) 0) (Vector3D 0 1 0) 30
+ regenerateNormals
+ material $ pigment $ pattern (cloudy 27 1.0) [(0.0,pure brown),(1.0,pure forest_green)]
+ affine $ translate (Vector3D 0 (-0.1) 0)
+
+station :: Modeling ()
+station = model $
+ do model $
+ do torus 0.5 0.1
+ openCone (Point3D (-0.5) 0 0,0.02) (Point3D 0.5 0 0,0.02)
+ openCone (Point3D 0 0 (-0.5),0.02) (Point3D 0 0 0.5,0.02)
+ closedCone (Point3D 0 0.2 0,0.2) (Point3D 0 (-0.2) 0,0.2)
+ material $
+ do pigment $ pure silver
+ specular 100 $ pure silver
+ model $
+ do box (Point3D (-0.15) 0.19 (-0.05)) (Point3D 0.15 0.21 0.05)
+ material $ emissive $ pure white
+ sequence_ $ dropRandomElements 30 (mkStdGen 19) $ concatMap (rotationGroup (Vector3D 0 1 0) 40) $
+ [window_box,
+ transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees 25) window_box,
+ transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees (-25)) window_box,
+ transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees 50) window_box,
+ transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees (-50)) window_box]
+ where window_box = model $
+ do quadralateral (Point3D 0.51 (-0.105) 0.03) (Point3D 0.49 (-0.105) 0.03)
+ (Point3D 0.49 (-0.105) (-0.03)) (Point3D 0.51 (-0.105) (-0.03))
+ quadralateral (Point3D 0.51 0.105 (-0.03)) (Point3D 0.49 0.105 (-0.03))
+ (Point3D 0.49 0.105 0.03) (Point3D 0.51 0.105 0.03)
+ material $
+ do pigment $ pure black
+ emissive $ pure white
+ tesselationHintComplexity 0
+ fixed (3,3)
+
+orb :: Modeling ()
+orb = model $
+ do sor $ linearInterpolation $ points2d
+ [(-0.001,0.4),
+ (0.5,0.45),
+ (0.5,0.4),
+ (0.6,0.4),
+ (0.6,0.6),
+ (0.5,0.6),
+ (0.5,0.55),
+ (-0.001,0.6)]
+ sequence_ $ rotationGroup (Vector3D 0 1 0) 5 $
+ tube $ zipCurve (,) (pure 0.05) $ smoothCurve 3 0.4 $ loopedLinearInterpolation $ points3d
+ [(0.4,0.2,0.4),
+ (0.4,0.8,0.8),
+ (-0.4,0.8,0.8),
+ (-0.4,0.2,0.4)]
+ regularPrism (Point3D 0 0.5 0,0.5) (Point3D 0 1.0 0,-0.001) 4
+ material $
+ do pigment $ pure gold
+ specular 64 $ pure silver
+
+glow_orb :: Modeling ()
+glow_orb = translate (Vector3D 0 1 0) $
+ do closedDisc (Point3D 0 0 0) (Vector3D 0 1 0) 1
+ material $ emissive $ pattern (spherical (Point3D 0 0 0) 1) [(0.0,pure $ scaleRGB 1.5 white),(0.25,pure white),(0.95,pure blackbody)]
+
+orb_upper_leg :: Modeling ()
+orb_upper_leg = model $
+ do tube $ zipCurve (,) (pure 0.05) $ linearInterpolation [Point3D 0 0 0,Point3D 0 0.1 0.5,Point3D 0 0 1]
+ RSAGL.Modeling.sphere (Point3D 0 0 1) 0.05
+ material $
+ do pigment $ pure gold
+ specular 64 $ pure silver
+
+orb_lower_leg :: Modeling ()
+orb_lower_leg = model $
+ do openCone (Point3D 0 0 0,0.05) (Point3D 0 0 1,0)
+ material $
+ do pigment $ pure gold
+ specular 64 $ pure silver
+
+sky :: Modeling ()
+sky = model $
+ do skyHemisphere (Point3D 0 0 0) (Vector3D 0 1 0) 1.0
+ affine $ scale $ Vector3D 5 1 5
+ material $ atmosphereScatteringMaterial earth_atmosphere [(rotate (Vector3D 0 0 1) (fromTimeOfDayHMS 0 15 0) $ Vector3D 1 0 0,gray 1)] (dynamicSkyFilter 0.2 1.0)
+
View
@@ -1,142 +0,0 @@
-module Models.PlanetRingMoon
- (planet,ring,moon,ground,monolith,station,orb,glow_orb,orb_upper_leg,orb_lower_leg,Models.PlanetRingMoon.sky)
- where
-
-import RSAGL.Model
-import RSAGL.Vector
-import RSAGL.ModelingExtras
-import qualified RSAGL.RayTrace as RT
-import RSAGL.Affine
-import RSAGL.Auxiliary
-import System.Random
-import RSAGL.Angle
-import RSAGL.CurveExtras
-import RSAGL.Curve
-import RSAGL.Extras.Sky as Sky
-
-ring :: Modeling ()
-ring = model $ do openDisc origin_point_3d (Vector3D 0 1 0) 0.75 1.0
- material $
- do transparent $ pure $ alpha 0.25 purple
- specular 2 $ pure purple
- bumps $ waves 0.2 0.01
- twoSided True
-
-planet :: Modeling ()
-planet = model $
- do sphere (Point3D 0 0 0) 0.65
- deform $ constrain (\(SurfaceVertex3D (Point3D x y z) _) -> x > 0 && y > 0 && z > 0) $
- RT.shadowDeform (Vector3D (-1) (-1) (-1)) (map (RT.plane (Point3D 0 0 0)) [Vector3D 1 0 0,Vector3D 0 1 0,Vector3D 0 0 1])
- let land_vs_water land water = pattern (cloudy 26 0.4) [(0,water),(0.5,water),(0.51,land),(1,land)]
- let grass_and_mountains = pattern (cloudy 81 0.25) [(0.4,pattern (cloudy 99 0.1) [(0.0,pure brown),(1.0,pure slate_gray)]),(0.5,pure forest_green)]
- let land_and_water = land_vs_water grass_and_mountains (pure blue)
- let cities bright dark = land_vs_water (pattern (cloudy 5 0.1) [(0.0,bright),(0.5,dark)]) (dark)
- let planet_surface = pattern (gradient (Point3D 0 0 0) (Vector3D 0 0.65 0))
- [(-0.9,pure white),(-0.85,land_and_water),(0.85,land_and_water),(0.9,pure white)]
- let planet_interior inner_core outer_core crust = pattern (spherical (Point3D 0 0 0) 0.65)
- [(0.0,inner_core),(0.25,inner_core),(0.5,outer_core),(0.95,outer_core),(1.0,crust)]
- material $
- do pigment $ planet_interior (pure blackbody) (pure blackbody) $ cities (pure black) planet_surface
- emissive $ planet_interior (pure yellow) (pure red) $ cities (pure $ scaleRGB 0.2 white) (pure blackbody)
- specular 20 $ planet_interior (pure blackbody) (pure blackbody) $ land_vs_water (pure blackbody) (pure white)
-
-moon :: Modeling ()
-moon = model $
- do sphere (Point3D 0 0 0) 0.2
- material $ pigment $ pattern (cloudy 8 0.05) [(0.0,pure slate_gray),(1.0,pure white)]
- regenerateNormals
-
-monolith :: Modeling ()
-monolith = model $
- do smoothbox 0.1 (Point3D 4 9 1) (Point3D (-4) (-9) (-1))
- affine (translate $ Vector3D 0 9 0)
- affine (scale' 0.20)
- material $
- do pigment $ pure blackbody
- specular 100 $ pure white
-
-ground :: Modeling ()
-ground = model $
- do closedDisc (Point3D 0 (-0.1) 0) (Vector3D 0 1 0) 30
- regenerateNormals
- material $ pigment $ pattern (cloudy 27 1.0) [(0.0,pure brown),(1.0,pure forest_green)]
- affine $ translate (Vector3D 0 (-0.1) 0)
-
-station :: Modeling ()
-station = model $
- do model $
- do torus 0.5 0.1
- openCone (Point3D (-0.5) 0 0,0.02) (Point3D 0.5 0 0,0.02)
- openCone (Point3D 0 0 (-0.5),0.02) (Point3D 0 0 0.5,0.02)
- closedCone (Point3D 0 0.2 0,0.2) (Point3D 0 (-0.2) 0,0.2)
- material $
- do pigment $ pure silver
- specular 100 $ pure silver
- model $
- do box (Point3D (-0.15) 0.19 (-0.05)) (Point3D 0.15 0.21 0.05)
- material $ emissive $ pure white
- sequence_ $ dropRandomElements 30 (mkStdGen 19) $ concatMap (rotationGroup (Vector3D 0 1 0) 40) $
- [window_box,
- transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees 25) window_box,
- transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees (-25)) window_box,
- transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees 50) window_box,
- transformAbout (Point3D 0.5 0 0) (rotateZ $ fromDegrees (-50)) window_box]
- where window_box = model $
- do quadralateral (Point3D 0.51 (-0.105) 0.03) (Point3D 0.49 (-0.105) 0.03)
- (Point3D 0.49 (-0.105) (-0.03)) (Point3D 0.51 (-0.105) (-0.03))
- quadralateral (Point3D 0.51 0.105 (-0.03)) (Point3D 0.49 0.105 (-0.03))
- (Point3D 0.49 0.105 0.03) (Point3D 0.51 0.105 0.03)
- material $
- do pigment $ pure black
- emissive $ pure white
- tesselationHintComplexity 0
- fixed (3,3)
-
-orb :: Modeling ()
-orb = model $
- do sor $ linearInterpolation $ points2d
- [(-0.001,0.4),
- (0.5,0.45),
- (0.5,0.4),
- (0.6,0.4),
- (0.6,0.6),
- (0.5,0.6),
- (0.5,0.55),
- (-0.001,0.6)]
- sequence_ $ rotationGroup (Vector3D 0 1 0) 5 $
- tube $ zipCurve (,) (pure 0.05) $ smoothCurve 3 0.4 $ loopedLinearInterpolation $ points3d
- [(0.4,0.2,0.4),
- (0.4,0.8,0.8),
- (-0.4,0.8,0.8),
- (-0.4,0.2,0.4)]
- regularPrism (Point3D 0 0.5 0,0.5) (Point3D 0 1.0 0,-0.001) 4
- material $
- do pigment $ pure gold
- specular 64 $ pure silver
-
-glow_orb :: Modeling ()
-glow_orb = translate (Vector3D 0 1 0) $
- do closedDisc (Point3D 0 0 0) (Vector3D 0 1 0) 1
- material $ emissive $ pattern (spherical (Point3D 0 0 0) 1) [(0.0,pure $ scaleRGB 1.5 white),(0.25,pure white),(0.95,pure blackbody)]
-
-orb_upper_leg :: Modeling ()
-orb_upper_leg = model $
- do tube $ zipCurve (,) (pure 0.05) $ linearInterpolation [Point3D 0 0 0,Point3D 0 0.1 0.5,Point3D 0 0 1]
- sphere (Point3D 0 0 1) 0.05
- material $
- do pigment $ pure gold
- specular 64 $ pure silver
-
-orb_lower_leg :: Modeling ()
-orb_lower_leg = model $
- do openCone (Point3D 0 0 0,0.05) (Point3D 0 0 1,0)
- material $
- do pigment $ pure gold
- specular 64 $ pure silver
-
-sky :: Modeling ()
-sky = model $
- do skyHemisphere (Point3D 0 0 0) (Vector3D 0 1 0) 1.0
- affine $ scale $ Vector3D 5 1 5
- material $ atmosphereScatteringMaterial earth_atmosphere [(rotate (Vector3D 0 0 1) (fromTimeOfDayHMS 0 15 0) $ Vector3D 1 0 0,gray 1)] (dynamicSkyFilter 0.2 1.0)
-
Oops, something went wrong.

0 comments on commit 2901b06

Please sign in to comment.