anchor.diff:          frustum : Frustum
       }
   
  -
   [<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
   module Camera =
       
  
positive.code: open Aardvark.Base
  open System.Runtime.CompilerServices
  
  type CameraView private(sky : V3d, location : V3d, forward : V3d, up : V3d, right : V3d) =
      let viewTrafo = lazy ( Trafo3d.ViewTrafo(location, right, up, -forward) )
  
      member x.Sky = sky
  
negative.code:         height (r3 - r1) b >= 0.0 &&
          height (     r2) b >= 0.0 &&
          height (r3 - r2) b >= 0.0        
  
      let containsDX (point : V3d) (viewProj : Trafo3d) =
          let fw = viewProj.Forward
          let r0 = fw.R0
          let r1 = fw.R1
          let r2 = fw.R2
          let r3 = fw.R3
          let p = V4d(point, 1.0)
  
          Vec.dot (r3 + r0) p >= 0.0 &&
          Vec.dot (r3 - r0) p >= 0.0 &&
          Vec.dot (r3 + r1) p >= 0.0 &&
          Vec.dot (r3 - r1) p >= 0.0 &&
          Vec.dot (     r2) p >= 0.0 &&
          Vec.dot (r3 - r2) p >= 0.0       
  
      let toHull3dDX (viewProj : Trafo3d) =
          let r0 = viewProj.Forward.R0
  