diff --git a/docs/manual/en/introduction/Import-via-modules.html b/docs/manual/en/introduction/Import-via-modules.html
index 75d19a8df2b9a0caccd412d1203a2c5e01da48c0..3c76908e5ae9e49ac4d8cf2dfc632532f52a6a69 100644
--- a/docs/manual/en/introduction/Import-via-modules.html
+++ b/docs/manual/en/introduction/Import-via-modules.html
@@ -124,6 +124,11 @@
TypedGeometryExporter
+ geometries
+
+
loaders
- 3MFLoader
diff --git a/examples/js/geometries/BoxLineGeometry.js b/examples/js/geometries/BoxLineGeometry.js
index 4c7ed50602e03a37af40b18cccc436d3005db1ea..dfc9e1478450c56321d2865fee81364bfce29271 100644
--- a/examples/js/geometries/BoxLineGeometry.js
+++ b/examples/js/geometries/BoxLineGeometry.js
@@ -28,10 +28,10 @@ THREE.BoxLineGeometry = function ( width, height, depth, widthSegments, heightSe
for ( var i = 0; i <= widthSegments; i ++ ) {
- vertices.push( x, - heightHalf, - depthHalf, x, heightHalf, - depthHalf );
- vertices.push( x, heightHalf, - depthHalf, x, heightHalf, depthHalf );
- vertices.push( x, heightHalf, depthHalf, x, - heightHalf, depthHalf );
- vertices.push( x, - heightHalf, depthHalf, x, - heightHalf, - depthHalf );
+ vertices.push( x, - heightHalf, - depthHalf, x, heightHalf, - depthHalf );
+ vertices.push( x, heightHalf, - depthHalf, x, heightHalf, depthHalf );
+ vertices.push( x, heightHalf, depthHalf, x, - heightHalf, depthHalf );
+ vertices.push( x, - heightHalf, depthHalf, x, - heightHalf, - depthHalf );
x += segmentWidth;
@@ -39,10 +39,10 @@ THREE.BoxLineGeometry = function ( width, height, depth, widthSegments, heightSe
for ( var i = 0; i <= heightSegments; i ++ ) {
- vertices.push( - widthHalf, y, - depthHalf, widthHalf, y, - depthHalf );
- vertices.push( widthHalf, y, - depthHalf, widthHalf, y, depthHalf );
- vertices.push( widthHalf, y, depthHalf, - widthHalf, y, depthHalf );
- vertices.push( - widthHalf, y, depthHalf, - widthHalf, y, - depthHalf );
+ vertices.push( - widthHalf, y, - depthHalf, widthHalf, y, - depthHalf );
+ vertices.push( widthHalf, y, - depthHalf, widthHalf, y, depthHalf );
+ vertices.push( widthHalf, y, depthHalf, - widthHalf, y, depthHalf );
+ vertices.push( - widthHalf, y, depthHalf, - widthHalf, y, - depthHalf );
y += segmentHeight;
@@ -50,10 +50,10 @@ THREE.BoxLineGeometry = function ( width, height, depth, widthSegments, heightSe
for ( var i = 0; i <= depthSegments; i ++ ) {
- vertices.push( - widthHalf, - heightHalf, z, - widthHalf, heightHalf, z );
- vertices.push( - widthHalf, heightHalf, z, widthHalf, heightHalf, z );
- vertices.push( widthHalf, heightHalf, z, widthHalf, - heightHalf, z );
- vertices.push( widthHalf, - heightHalf, z, - widthHalf, - heightHalf, z );
+ vertices.push( - widthHalf, - heightHalf, z, - widthHalf, heightHalf, z );
+ vertices.push( - widthHalf, heightHalf, z, widthHalf, heightHalf, z );
+ vertices.push( widthHalf, heightHalf, z, widthHalf, - heightHalf, z );
+ vertices.push( widthHalf, - heightHalf, z, - widthHalf, - heightHalf, z );
z += segmentDepth;
@@ -61,7 +61,7 @@ THREE.BoxLineGeometry = function ( width, height, depth, widthSegments, heightSe
this.addAttribute( 'position', new THREE.Float32BufferAttribute( vertices, 3 ) );
-}
+};
THREE.BoxLineGeometry.prototype = Object.create( THREE.BufferGeometry.prototype );
THREE.BoxLineGeometry.prototype.constructor = THREE.BoxLineGeometry;
diff --git a/examples/jsm/geometries/BoxLineGeometry.d.ts b/examples/jsm/geometries/BoxLineGeometry.d.ts
new file mode 100644
index 0000000000000000000000000000000000000000..b5c3a0f8544d664e04b94945251caebbf06894d3
--- /dev/null
+++ b/examples/jsm/geometries/BoxLineGeometry.d.ts
@@ -0,0 +1,7 @@
+import {
+ BufferGeometry
+} from '../../../src/Three';
+
+export class BoxLineGeometry extends BufferGeometry {
+ constructor(width?: number, height?: number, depth?: number, widthSegments?: number, heightSegments?: number, depthSegments?: number);
+}
diff --git a/examples/jsm/geometries/BoxLineGeometry.js b/examples/jsm/geometries/BoxLineGeometry.js
new file mode 100644
index 0000000000000000000000000000000000000000..fd30bfaf4cc3d997cfc693027056e0c5c27d9f32
--- /dev/null
+++ b/examples/jsm/geometries/BoxLineGeometry.js
@@ -0,0 +1,74 @@
+/**
+ * @author mrdoob / http://mrdoob.com/
+ */
+
+import {
+ BufferGeometry,
+ Float32BufferAttribute
+} from "../../../build/three.module.js";
+
+var BoxLineGeometry = function ( width, height, depth, widthSegments, heightSegments, depthSegments ) {
+
+ BufferGeometry.call( this );
+
+ width = width || 1;
+ height = height || 1;
+ depth = depth || 1;
+
+ widthSegments = Math.floor( widthSegments ) || 1;
+ heightSegments = Math.floor( heightSegments ) || 1;
+ depthSegments = Math.floor( depthSegments ) || 1;
+
+ var widthHalf = width / 2;
+ var heightHalf = height / 2;
+ var depthHalf = depth / 2;
+
+ var segmentWidth = width / widthSegments;
+ var segmentHeight = height / heightSegments;
+ var segmentDepth = depth / depthSegments;
+
+ var vertices = [];
+
+ var x = - widthHalf, y = - heightHalf, z = - depthHalf;
+
+ for ( var i = 0; i <= widthSegments; i ++ ) {
+
+ vertices.push( x, - heightHalf, - depthHalf, x, heightHalf, - depthHalf );
+ vertices.push( x, heightHalf, - depthHalf, x, heightHalf, depthHalf );
+ vertices.push( x, heightHalf, depthHalf, x, - heightHalf, depthHalf );
+ vertices.push( x, - heightHalf, depthHalf, x, - heightHalf, - depthHalf );
+
+ x += segmentWidth;
+
+ }
+
+ for ( var i = 0; i <= heightSegments; i ++ ) {
+
+ vertices.push( - widthHalf, y, - depthHalf, widthHalf, y, - depthHalf );
+ vertices.push( widthHalf, y, - depthHalf, widthHalf, y, depthHalf );
+ vertices.push( widthHalf, y, depthHalf, - widthHalf, y, depthHalf );
+ vertices.push( - widthHalf, y, depthHalf, - widthHalf, y, - depthHalf );
+
+ y += segmentHeight;
+
+ }
+
+ for ( var i = 0; i <= depthSegments; i ++ ) {
+
+ vertices.push( - widthHalf, - heightHalf, z, - widthHalf, heightHalf, z );
+ vertices.push( - widthHalf, heightHalf, z, widthHalf, heightHalf, z );
+ vertices.push( widthHalf, heightHalf, z, widthHalf, - heightHalf, z );
+ vertices.push( widthHalf, - heightHalf, z, - widthHalf, - heightHalf, z );
+
+ z += segmentDepth;
+
+ }
+
+ this.addAttribute( 'position', new Float32BufferAttribute( vertices, 3 ) );
+
+};
+
+BoxLineGeometry.prototype = Object.create( BufferGeometry.prototype );
+BoxLineGeometry.prototype.constructor = BoxLineGeometry;
+
+export { BoxLineGeometry };
diff --git a/utils/modularize.js b/utils/modularize.js
index ee909bb1393cc74c44111fda3b034f12ffbec2d3..07e969965e7f1a5d8cad4635b2c0b4fa73f8dcc1 100644
--- a/utils/modularize.js
+++ b/utils/modularize.js
@@ -42,6 +42,8 @@ var files = [
{ path: 'exporters/STLExporter.js', dependencies: [], ignoreList: [] },
{ path: 'exporters/TypedGeometryExporter.js', dependencies: [], ignoreList: [] },
+ { path: 'geometries/BoxLineGeometry.js', dependencies: [], ignoreList: [] },
+
{ path: 'loaders/3MFLoader.js', dependencies: [], ignoreList: [] },
{ path: 'loaders/AMFLoader.js', dependencies: [], ignoreList: [] },
{ path: 'loaders/AssimpJSONLoader.js', dependencies: [], ignoreList: [] },