anchor.diff:  //
   //                    )
   //
  -                let edgeTriangles =
  -                    Array.init (3 * triangles.Length) (fun i ->
  -                        let ti = i / 3
  -                        let ei = i % 3
  -                        let t = triangles.[ti]
  -
  -                        let p0, p1 = 
  -                            match ei with
  -                                | 0 -> 0,1
  -                                | 1 -> 1,2
  -                                | _ -> 2,0
  -
  -                        
  -                        let edgeTris = Set.intersect pointTriangles.[p0] pointTriangles.[p1] |> Set.remove ti
  -
  -                        if Set.isEmpty edgeTris then
  -                            edgeTris
  -                        else
  -                            let ne = Vec.normalize (t.[p1] - t.[p0])
  -                            
  -                            let rotT = Vec.cross (t.ComputeCentroid() - t.[p0]) t.Normal |> Vec.dot ne
  -
  -                            edgeTris |> Set.filter (fun oi ->
  -                                let o = triangles.[oi]
  -                                let rotO = Vec.cross (o.ComputeCentroid() - t.[p0]) o.Normal |> Vec.dot ne
  -
  -                                if rotO * rotT > 0.0 then
  -                                    false
  -                                else
  -                                    true
  -
  -                            )
  -
  -                    )
  +//                let edgeTriangles =
  +//                    Array.init (3 * triangles.Length) (fun i ->
  +//                        let ti = i / 3
  +//                        let ei = i % 3
  +//                        let t = triangles.[ti]
  +//
  +//                        let p0, p1 = 
  +//                            match ei with
  +//                                | 0 -> 0,1
  +//                                | 1 -> 1,2
  +//                                | _ -> 2,0
  +//
  +//                        
  +//                        let edgeTris = Set.intersect pointTriangles.[p0] pointTriangles.[p1] |> Set.remove ti
  +//
  +//                        if Set.isEmpty edgeTris then
  +//                            edgeTris
  +//                        else
  +//                            let ne = Vec.normalize (t.[p1] - t.[p0])
  +//                            
  +//                            let rotT = Vec.cross (t.ComputeCentroid() - t.[p0]) t.Normal |> Vec.dot ne
  +//
  +//                            edgeTris |> Set.filter (fun oi ->
  +//                                let o = triangles.[oi]
  +//                                let rotO = Vec.cross (o.ComputeCentroid() - t.[p0]) o.Normal |> Vec.dot ne
  +//
  +//                                if rotO * rotT > 0.0 then
  +//                                    false
  +//                                else
  +//                                    true
  +//
  +//                            )
  +//
  +//                    )
   
                   pointTriangles
               )
  
positive.code:                     pointTriangles.[3 * ti + 0] <- n0
                      pointTriangles.[3 * ti + 1] <- n1
                      pointTriangles.[3 * ti + 2] <- n2
  
  
  //
  
negative.code: 
                  for ti in 0..triangles.Length-1 do
                      let t = triangles.[ti]
                      let mutable n0 = store.Query(t.P0, Constant.PositiveTinyValue) |> Set.ofSeq
                      let mutable n1 = store.Query(t.P1, Constant.PositiveTinyValue) |> Set.ofSeq
                      let mutable n2 = store.Query(t.P2, Constant.PositiveTinyValue) |> Set.ofSeq
  
  
                      let all = Set.intersect n0 (Set.intersect n1 n2) |> Set.remove ti
  