J'essaie d'utiliser three.js. "version": "0.113.2"
.
J'ai le message Cannot read property 'isInterleavedBufferAttribute' of undefined
.
Mes trois.js ont le code suivant comme le dit le message.
Cependant, je ne l'ai pas fait moi-même, mais certaines choses de mon code conduisent à cela.
Quelqu'un peut me dire comment résoudre ce problème.
function get( attribute ) {
if ( attribute.isInterleavedBufferAttribute ) { attribute = attribute.data; }
return buffers.get( attribute );
}
function remove( attribute ) {
if ( attribute.isInterleavedBufferAttribute ) { attribute = attribute.data; }
var data = buffers.get( attribute );
if ( data ) {
gl.deleteBuffer( data.buffer );
buffers.delete( attribute );
}
}
function update( attribute, bufferType ) {
if ( attribute.isInterleavedBufferAttribute ) { attribute = attribute.data; }
var data = buffers.get( attribute );
if ( data === undefined ) {
buffers.set( attribute, createBuffer( attribute, bufferType ) );
} else if ( data.version < attribute.version ) {
updateBuffer( data.buffer, attribute, bufferType );
data.version = attribute.version;
}
}
}
Une partie de mon code qui essaie d'ajouter pointcloud sur la scène. Si vous commentez la dernière ligne scene.add( points )
,le message d'erreur s'arrête.
var vertices = [];
var colors = [];
var pcUrl = " <?php echo $pcUrl ?> ";
var req = new XMLHttpRequest();
req.open("get", pcUrl, true);
req.send(null);
req.onload = function(){
convertCSVtoArray(req.responseText);
}
function convertCSVtoArray(str){
line = str.split("\n"); /
for (var i =0; i< line.length-1 ; ++i){
row = line[i].split(',');
var x = row[0];
var y = row[1];
var z = row[2];
vertices.push( x, y, z );
}
}
var geometry = new THREE.BufferGeometry();
geometry.setAttribute( vertices );
var material = new THREE.PointsMaterial( { color: 0xff4444 } );
var points = new THREE.Points( geometry, material );
scene.add( points );