anchor.diff:      let inline backward (c : CameraView) = c.Backward
       let inline left     (c : CameraView) = c.Left
       let inline down     (c : CameraView) = c.Down
  +
  +
  +
   
   
   type Frustum = { left   : float
  
positive.code: 
  
          Hull3d [|
              r3 + r0 |> toPlane
              r3 - r0 |> toPlane
              r3 + r1 |> toPlane
              r3 - r1 |> toPlane
              r3 + r2 |> toPlane
              r3 - r2 |> toPlane
          |]
  
      let inline toFastHull3d (viewProj : Trafo3d) =
          FastHull3d(toHull3d viewProj)
  
      let intersectsDX (b : Box3d) (viewProj : Trafo3d) =
          let fw = viewProj.Forward
  
negative.code:     let viewTrafo (c : CameraView) =
          c.ViewTrafo
  
      let ofTrafo (t : Trafo3d) =
          let bw = t.Backward
  
          let right       = bw.C0.XYZ     // bw.TransformDir(V3d.IOO)
          let up          = bw.C1.XYZ     // bw.TransformDir(V3d.OIO)
          let forward     = -bw.C2.XYZ    // bw.TransformDir(-V3d.OOI)
          let location    = bw.C3.XYZ     // bw.TransformPos(V3d.OOO)
  
          CameraView(up, location, forward, up, right)
  
      let tryGetCenterOn (p : Plane3d) (c : CameraView) =
          let r = Ray3d(c.Location, c.Forward)
  