From 1bef771fa963f8107279b68de018938ee8288d15 Mon Sep 17 00:00:00 2001 From: Matthijs van der Burgh Date: Sat, 22 Apr 2023 13:30:51 +0200 Subject: [PATCH] WIP --- package-lock.json | 14 +++++----- package.json | 2 +- rollup.config.js | 12 ++++----- src/markers/Marker.js | 60 ++++++++++++++++++++++++------------------- 4 files changed, 47 insertions(+), 41 deletions(-) diff --git a/package-lock.json b/package-lock.json index d373b848..d49b8a06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,7 @@ "dependencies": { "eventemitter2": "^6.4.0", "roslib": "^1.0.0", - "three": "~0.120.0" + "three": "~0.125.0" }, "devDependencies": { "@rollup/plugin-buble": "^1.0.0", @@ -7403,9 +7403,9 @@ "dev": true }, "node_modules/three": { - "version": "0.120.1", - "resolved": "https://registry.npmjs.org/three/-/three-0.120.1.tgz", - "integrity": "sha512-ktaCRFUR7JUZcKec+cBRz+oBex5pOVaJhrtxvFF2T7on53o9UkEux+/Nh1g/4zeb4t/pbxIFcADbn/ACu3LC1g==" + "version": "0.125.2", + "resolved": "https://registry.npmjs.org/three/-/three-0.125.2.tgz", + "integrity": "sha512-7rIRO23jVKWcAPFdW/HREU2NZMGWPBZ4XwEMt0Ak0jwLUKVJhcKM55eCBWyGZq/KiQbeo1IeuAoo/9l2dzhTXA==" }, "node_modules/through": { "version": "2.3.8", @@ -14009,9 +14009,9 @@ "dev": true }, "three": { - "version": "0.120.1", - "resolved": "https://registry.npmjs.org/three/-/three-0.120.1.tgz", - "integrity": "sha512-ktaCRFUR7JUZcKec+cBRz+oBex5pOVaJhrtxvFF2T7on53o9UkEux+/Nh1g/4zeb4t/pbxIFcADbn/ACu3LC1g==" + "version": "0.125.2", + "resolved": "https://registry.npmjs.org/three/-/three-0.125.2.tgz", + "integrity": "sha512-7rIRO23jVKWcAPFdW/HREU2NZMGWPBZ4XwEMt0Ak0jwLUKVJhcKM55eCBWyGZq/KiQbeo1IeuAoo/9l2dzhTXA==" }, "through": { "version": "2.3.8", diff --git a/package.json b/package.json index 6c69c263..965a5721 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "dependencies": { "eventemitter2": "^6.4.0", "roslib": "^1.0.0", - "three": "~0.120.0" + "three": "~0.125.0" }, "devDependencies": { "@rollup/plugin-buble": "^1.0.0", diff --git a/rollup.config.js b/rollup.config.js index 349f5f41..74eb2878 100644 --- a/rollup.config.js +++ b/rollup.config.js @@ -46,8 +46,8 @@ export default [ ], plugins: [ nodeResolve({ browser: true }), - commonjs(), - buble(), + commonjs({ strictRequires: true }), + buble({ transforms: { asyncAwait: false, forOf: false } }), filesize(), ], }, @@ -67,8 +67,8 @@ export default [ ], plugins: [ nodeResolve({ browser: true }), - commonjs(), - buble(), + commonjs({ strictRequires: true }), + buble({ transforms: { asyncAwait: false, forOf: false } }), filesize(), ], }, @@ -90,7 +90,7 @@ export default [ ], plugins: [ nodeResolve({ browser: true }), - commonjs(), + commonjs({ strictRequires: true }), filesize(), ], }, @@ -112,7 +112,7 @@ export default [ ], plugins: [ nodeResolve({ browser: true }), - commonjs(), + commonjs({ strictRequires: true }), filesize(), terser(), ], diff --git a/src/markers/Marker.js b/src/markers/Marker.js index 99b60cb7..a09b71c4 100644 --- a/src/markers/Marker.js +++ b/src/markers/Marker.js @@ -98,29 +98,31 @@ ROS3D.Marker = function(options) { this.add(cylinderMesh); break; case ROS3D.MARKER_LINE_STRIP: - var lineStripGeom = new THREE.Geometry(); + var lineStripGeom = new THREE.BufferGeometry(); var lineStripMaterial = new THREE.LineBasicMaterial({ linewidth : message.scale.x }); // add the points + var vertices = []; var j; for ( j = 0; j < message.points.length; j++) { - var pt = new THREE.Vector3(); - pt.x = message.points[j].x; - pt.y = message.points[j].y; - pt.z = message.points[j].z; - lineStripGeom.vertices.push(pt); + vertices.push(message.points[j].x); + vertices.push(message.points[j].y); + vertices.push(message.points[j].z); } + lineStripGeom.setAttribute('position', new THREE.BufferAttribute(vertices, 3)); // determine the colors for each if (message.colors.length === message.points.length) { lineStripMaterial.vertexColors = true; + var colors = []; for ( j = 0; j < message.points.length; j++) { - var clr = new THREE.Color(); - clr.setRGB(message.colors[j].r, message.colors[j].g, message.colors[j].b); - lineStripGeom.colors.push(clr); + colors.push(message.colors[j].r); + colors.push(message.colors[j].g); + colors.push(message.colors[j].b); } + lineStripGeom.setAttribute('colors', new THREE.BufferAttribute(colors, 3)); } else { lineStripMaterial.color.setRGB(message.color.r, message.color.g, message.color.b); } @@ -129,29 +131,31 @@ ROS3D.Marker = function(options) { this.add(new THREE.Line(lineStripGeom, lineStripMaterial)); break; case ROS3D.MARKER_LINE_LIST: - var lineListGeom = new THREE.Geometry(); + var lineListGeom = new THREE.BufferGeometry(); var lineListMaterial = new THREE.LineBasicMaterial({ linewidth : message.scale.x }); // add the points + var vertices = []; var k; for ( k = 0; k < message.points.length; k++) { - var v = new THREE.Vector3(); - v.x = message.points[k].x; - v.y = message.points[k].y; - v.z = message.points[k].z; - lineListGeom.vertices.push(v); + vertices.push(message.points[k].x); + vertices.push(message.points[k].y); + vertices.push(message.points[k].z); } + lineListGeom.setAttribute('position', new THREE.BufferAttribute(vertices, 3)); // determine the colors for each if (message.colors.length === message.points.length) { lineListMaterial.vertexColors = true; + var colors = []; for ( k = 0; k < message.points.length; k++) { - var c = new THREE.Color(); - c.setRGB(message.colors[k].r, message.colors[k].g, message.colors[k].b); - lineListGeom.colors.push(c); + colors.push(message.colors[k].r); + colors.push(message.colors[k].g); + colors.push(message.colors[k].b); } + lineStripGeom.setAttribute('colors', new THREE.BufferAttribute(colors, 3)); } else { lineListMaterial.color.setRGB(message.color.r, message.color.g, message.color.b); } @@ -225,29 +229,31 @@ ROS3D.Marker = function(options) { break; case ROS3D.MARKER_POINTS: // for now, use a particle system for the lists - var geometry = new THREE.Geometry(); + var geometry = new THREE.BufferGeometry(); var material = new THREE.PointsMaterial({ size : message.scale.x }); // add the points + var vertices = []; var i; for ( i = 0; i < message.points.length; i++) { - var vertex = new THREE.Vector3(); - vertex.x = message.points[i].x; - vertex.y = message.points[i].y; - vertex.z = message.points[i].z; - geometry.vertices.push(vertex); + vertices.push(message.points[i].x); + vertices.push(message.points[i].y); + vertices.push(message.points[i].z); } + geometry.setAttribute('position', new THREE.BufferAttribute(vertices, 3)); // determine the colors for each if (message.colors.length === message.points.length) { material.vertexColors = true; + var colors = []; for ( i = 0; i < message.points.length; i++) { - var color = new THREE.Color(); - color.setRGB(message.colors[i].r, message.colors[i].g, message.colors[i].b); - geometry.colors.push(color); + colors.push(message.colors[i].r); + colors.push(message.colors[i].g); + colors.push(message.colors[i].b); } + geometry.setAttribute('colors', new THREE.BufferAttribute(colors, 3)); } else { material.color.setRGB(message.color.r, message.color.g, message.color.b); }