Skip to content

Commit c77d345

Browse files
committed
Add icosahedron geometry
1 parent b6eebe2 commit c77d345

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

‎src/geometries/icosahedron.js‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
var registerGeometry = require('../core/geometry').registerGeometry;
2+
var THREE = require('../lib/three');
3+
4+
registerGeometry('icosahedron', {
5+
schema: {
6+
detail: {default: 0, min: 0, max: 1},
7+
radius: {default: 1, min: 0}
8+
},
9+
10+
init: function (data) {
11+
this.geometry = new THREE.IcosahedronGeometry(data.radius, data.detail);
12+
}
13+
});

‎src/geometries/index.js‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ require('./box.js');
22
require('./circle.js');
33
require('./cone.js');
44
require('./cylinder.js');
5+
require('./icosahedron.js');
56
require('./plane.js');
67
require('./ring.js');
78
require('./sphere.js');

‎tests/components/geometry.test.js‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,18 @@ suite('standard geometries', function () {
173173
assert.equal(geometry.parameters.thetaLength, degToRad(350));
174174
});
175175

176+
test('icosahedron', function () {
177+
var el = this.el;
178+
var geometry;
179+
el.setAttribute('geometry', {
180+
buffer: false, primitive: 'icosahedron', detail: 0, radius: 5});
181+
182+
geometry = el.getObject3D('mesh').geometry;
183+
assert.equal(geometry.type, 'IcosahedronGeometry');
184+
assert.equal(geometry.parameters.radius, 5);
185+
assert.equal(geometry.parameters.detail, 0);
186+
});
187+
176188
test('plane', function () {
177189
var el = this.el;
178190
var geometry;

0 commit comments

Comments
 (0)