anchor.diff:    return possibleIntersectors;
   }
   
  +Map<int, LineSegment> horizonReplacementLines = new Map<int, LineSegment>();
   List<LineGroup> Lines = new List<LineGroup>();
   LineGroup Horizon = new LineGroup();
   void calculateLines() {
     Lines.clear();
     intersectionPoints.clear();
  -  const int lineCount = 30;
  +  const int lineCount = 3;
     Math.Random rand = new Math.Random();
     // Start w/ two lines - set up manually
     LineGroup a = new LineGroup();
  
positive.code:     geometry.vertices.add(new Vector3(lineSegment.start.x, lineSegment.start.y + 5, 0.0));
      geometry.vertices.add(new Vector3(lineSegment.end.x, lineSegment.end.y + 5, 0.0));
    }
    var line = new Line(geometry, material);
    scene.add(line);
  }
negative.code:         if (aboveHorizon) {
            newSplitLines[0].hidden = false;
            newSplitLines[1].hidden = true;
            horizonReplacementLines[Horizon.Line.indexOf(horizonSplitLines[0])] = newSplitLines[0];
            //Horizon.Line[Horizon.Line.indexOf(horizonSplitLines[0])] = newSplitLines[0];
            // Replace 
          } else { // If line start is below horizon start, line should be invisible.
            newSplitLines[0].hidden = true;
            newSplitLines[1].hidden = false;
            horizonReplacementLines[Horizon.Line.indexOf(horizonSplitLines[1])] = newSplitLines[1];
            //Horizon.Line[Horizon.Line.indexOf(horizonSplitLines[1])] = newSplitLines[1];
          }
        }
      }
  
  