ThreeJS r125 is incompatible with MeshLine
Blakeinstein opened this issue · 2 comments
Blakeinstein commented
Since THREE.Geometry
got deprecated, this section breaks
MeshLine.prototype.setGeometry = function(g, c) {
// as the input geometry are mutated we store them
// for later retreival when necessary (declaritive architectures)
this._geometry = g;
if (g instanceof THREE.Geometry) {
this.setPoints(g.vertices, c);
} else if (g instanceof THREE.BufferGeometry) {
this.setPoints(g.getAttribute("position").array, c);
} else {
this.setPoints(g, c);
}
}
A simple removal of if (g instanceof THREE.Geometry)
should resolve this issue.
Blakeinstein commented
A simple workaround, for the users currently is to add the following code to their js files.
MeshLine.prototype.setGeometry = function(g, c) {
// as the input geometry are mutated we store them
// for later retreival when necessary (declaritive architectures)
this._geometry = g;
if (g instanceof THREE.BufferGeometry) {
this.setPoints(g.getAttribute("position").array, c);
} else {
this.setPoints(g, c);
}
}
milewski commented
Another way to go around this issue is to use setPoints
instead of setGeometry
const line = new MeshLine();
line.setPoints(new Float32Array(positions));