Threejs - Find intersection Between Lines

by black strings

HTML

<script src="https://rawgit.com/mrdoob/three.js/dev/build/three.js"></script>
<script src="https://rawgit.com/mrdoob/three.js/dev/examples/js/controls/OrbitControls.js"></script>
<!--
  /**
   * corrects gl transparency rendering issues when no decking and framing is selected
   * the lower the number, the higher the priority to be rendered first
   */
  public static readonly RENDER_ORDER_DECK_FLOOR = new DeckDefaults(15);

  /**
   * corrects gl transparency rendering issues when no decking and framing is selected
   * the lower the number, the higher the priority to be rendered first
   */
  public static readonly RENDER_ORDER_FRAMING = new DeckDefaults(10);
  
  -->

CSS

body {
  margin:0;
}

JavaScript

var objects = []; 
var scene = new THREE.Scene();

var width = window.innerWidth;
var height = window.innerHeight;

var camera = new THREE.PerspectiveCamera( 35, width/height, 0.1, 1000 );
var renderer = new THREE.WebGLRenderer();

renderer.setSize( width, height );
renderer.setClearColor( 0xcccccc, 1 ); 
document.body.appendChild( renderer.domElement );
scene.add(camera);

controls = new THREE.OrbitControls(camera, renderer.domElement);
controls.screenSpacePanning = true;
setToFullOrbit(controls)
camera.position.copy(new THREE.Vector3(fti(5), fti(5), fti(5)) );
// fix first frame render issue going invisible
camera.lookAt(new THREE.Vector3(0,0,0));

var axisHelper = new THREE.AxisHelper();
//scene.add(axisHelper);

var grid = new THREE.GridHelper(fti(12), 12);
//scene.add(grid);

// ----- playground starts here ----------------- //
var segmentA = new THREE.Line3(new THREE.Vector3(), new THREE.Vector3(12,0,0));
var segADir = segmentA.end.clone().sub(segmentA.start).normalize();
createLine([segmentA.start, segmentA.end]);

var segmentB = new THREE.Line3(new THREE.Vector3(0,12,0), new THREE.Vector3(12, 16 ,0));
var segBDir = segmentB.end.clone().sub(segmentB.start).normalize();
createLine([segmentB.start, segmentB.end]);

var intersect = getIntersectOnAPoint(segmentA, segmentB);
//var intersect = checkLineIntersection(segmentA, segmentB);

if (intersect) {
  console.log('there is intersection');
  console.log(intersect);
} else {
  console.log('there is no intersection');
}

var v1 = new THREE.Vector3( 1, 1, 0 ).normalize();
var v2 = new THREE.Vector3( -1, -1, 0 ).normalize();
var dot = v1.dot( v2 );
console.log('----');
console.log( dot );

/* var line1res = isPositive( segmentA.start, segmentA.end, intersect );
var line2res = isPositive( segmentB.start, segmentB.end, intersect );
if ( line1res && line2res ) {
  // do something when the intersection is not "false" as both results are "true"
  console.log('there is true intersection');
}
else { // 
  // do...