packages feed

roguestar-gl-0.6.0.0: src/Models/Encephalon.hs

module Models.Encephalon
    (encephalon)
    where
    
import Quality
import RSAGL.Math
import RSAGL.Math.CurveExtras
import RSAGL.Modeling
import RSAGL.Color.RSAGLColors
import Models.Materials

encephalon_head :: Quality -> Modeling ()
encephalon_head _ = model $
    do sor $ linearInterpolation $
           points2d $ reverse
	            [(0,9),
                     (0.5,9),
                     (1,9),
                     (1.5,9),
                     (2,9),
                     (3,8.5),
                     (4,7),
                     (4,5),
                     (3,3)]
       deform dfn
       encephalon_skin
  where dfn (Point3D x y z) = Point3D x (min (abs x ** 4 + 7.5) y) z 

encephalon_eye :: Quality -> Modeling ()
encephalon_eye _ = model $
    do sphere origin_point_3d 0.4
       material $ pigment $ pure black

encephalon_suit :: Quality -> Modeling ()
encephalon_suit _ = model $ 
    do sor $ linearInterpolation $ 
           points2d $ reverse 
	            [(3,5),
                     (5,5),
                     (6,3),
                     (8,1),
                     (8,0.5),
		     (7,0),
		     (0,0)]
       alliance_metal
                          
encephalon :: Quality -> Modeling ()
encephalon q = model $ scale' (1/30) $
    do encephalon_head q
       encephalon_suit q
       translate (Vector3D (-1) 6 4) $ encephalon_eye q
       translate (Vector3D 1 6 4) $ encephalon_eye q