anchor.diff:          )
       )
   
  -    ctrl.Keyboard.KeyDown(Keys.G).Values.Add (fun () ->
  +    let mutable oldGroup = 0
  +    ctrl.Keyboard.KeyDown(Keys.Y).Values.Add (fun () ->
           transact (fun () ->
  -            group.Value <- group.Value + 1
  -            Log.warn "showing group %d" group.Value
  +            transact (fun () ->
  +                if group.Value >= 0 then 
  +                    oldGroup <- group.Value
  +                    group.Value <- -1
  +                else 
  +                    group.Value <- oldGroup
  +                Log.warn "showing group %d" group.Value
  +            )
           )
  +    )
  +    ctrl.Keyboard.DownWithRepeats.Values.Add (fun k ->
  +        if k = Keys.G then
  +            transact (fun () ->
  +                group.Value <- group.Value + 1
  +                Log.warn "showing group %d" group.Value
  +            )
       )
       let task = 
           RenderTask.ofList [
  
positive.code: 
  
  
      let scene = Aardvark.SceneGraph.IO.Loader.Assimp.load @"C:\Users\Schorsch\Desktop\3d\witcher\geralt.obj"
      let sg = Sg.AdapterNode(scene) |> normalizeTo (Box3d(-V3d.III, V3d.III))
  
  
  
negative.code:                     pointTriangles.[3 * ti + 0] <- n0
                      pointTriangles.[3 * ti + 1] <- n1
                      pointTriangles.[3 * ti + 2] <- n2
  
  
                  for ti in 0..triangles.Length-1 do
                      let t0 = pointTriangles.[3 * ti + 0]
                      let t1 = pointTriangles.[3 * ti + 1]
                      let t2 = pointTriangles.[3 * ti + 2]
  
                      let t01 = Set.intersect t0 t1 |> Set.remove ti
                      let t12 = Set.intersect t1 t2 |> Set.remove ti
                      let t20 = Set.intersect t2 t0 |> Set.remove ti
  
                      for oi in Set.unionMany [t01; t12; t20] do
                          let o0 = pointTriangles.[3 * oi + 0]
                          let o1 = pointTriangles.[3 * oi + 1]
                          let o2 = pointTriangles.[3 * oi + 2]
                          let o01 = Set.intersect t0 t1 |> Set.contains ti
                          let o12 = Set.intersect t1 t2 |> Set.contains ti
                          let o20 = Set.intersect t2 t0 |> Set.contains ti
  
  
                          if not o01 || not o12 || not o20 then
                              Log.warn "broken topology"
  
  
                          ()
  
  
  
  
  //
  