spite / THREE.MeshLine

Mesh replacement for THREE.Line
MIT License
2.16k stars 380 forks source link

Console warnings when use THREE.Ray intersectsObjects #76

Closed alja closed 4 years ago

alja commented 5 years ago

I have lots of warnings in web console when I try to get list of selected objects by mouse click: log

Here is a segment of code that creates MeshLine:

     var geometry = new THREE.Geometry();
      for (var k=0;k<(N-1);++k) {

         var x   = rnrData.vtxBuff[k*3];
         var y = rnrData.vtxBuff[k*3+1];
         var z = rnrData.vtxBuff[k*3+2];

     var v = new THREE.Vector3( x, y, z );
    geometry.vertices.push( v );
      }

      var mline = new MeshLine();
      mline.setGeometry( geometry );

      var material = new MeshLineMaterial({ color: track_color, linewidth: track_width * 15});

      var mesh = new THREE.Mesh( mline.geometry, material );
      mesh.raycast = mline.raycast;

I'm using THREE.js version 97.

alja commented 5 years ago

In THREE.js version 91 and later, additional argument is required in raycaster's intersectSphere function. Here is the diff, that fixes the warning:

# diff ~/root-dev/jsroot/scripts/THREE.MeshLine.js ~/root-dev/THREE.MeshLine/src/THREE.MeshLine.js
97,99c97
<            var interRay = new THREE.Vector3();
<
<            if ( raycaster.ray.intersectSphere( sphere, interRay ) === false ) {
---
>               if ( raycaster.ray.intersectSphere( sphere ) === false ) {
111c109
<
---
>               var interRay = new THREE.Vector3();
Tankerxyz commented 5 years ago

@alja thanks for the issue, I'll fix that soon.