anchor.diff:    //Otherwise, the two line segments are not parallel but do not intersect.
     return null;
   }
  -
  +List<Vector2> intersectionPoints = new List<Vector2>();
   List<LineSegment> getPossibleIntersectors(LineSegment line, int parentIndex) {
     List<LineSegment> possibleIntersectors = new List<LineSegment>();
     for (int i = 0; i < Lines.length; i++) {
  
positive.code: List<LineGroup> Lines = new List<LineGroup>();
  LineGroup Horizon = new LineGroup();
  void calculateLines() {
    // Start w/ two lines - set up manually
    LineGroup a = new LineGroup();
    a.add(new LineSegment(new Vector2(-2.0, 1.0), new Vector2(0.0, -1.0)));
    a.add(new LineSegment(new Vector2(0.0, -1.0), new Vector2(2.0, 1.0)));
    Lines.add(a);
    Horizon = a;
    
    LineGroup b = new LineGroup();
    b.add(new LineSegment(new Vector2(-2.0, -1.0), new Vector2(0.0, 1.0)));
    b.add(new LineSegment(new Vector2(0.0, 1.0), new Vector2(2.0, -1.0)));
    Lines.add(b);
  
    // On intersect, remove line and add two new lines with start/end at intersect position.
  
negative.code:   drawLineSegments();
    //drawTriangles();
    //drawLines();
    
    for (Vector2 intersectionPoint in intersectionPoints) {
      var material = new MeshBasicMaterial(color: 0x00ff00);
  
      var radius = 0.1;
      var segments = 32;
  
      var circleGeometry = new CircleGeometry(radius, segments);        
      var circle = new Mesh(circleGeometry, material);
      circle.position = new Vector3(intersectionPoint.x, intersectionPoint.y, 0.0);
      scene.add(circle);
    }
  
    renderer = new WebGLRenderer();
    renderer.setSize(window.innerWidth, window.innerHeight);
  