|
@@ -67,10 +67,25 @@
|
|
parent.position.y = 50;
|
|
parent.position.y = 50;
|
|
scene.add( parent );
|
|
scene.add( parent );
|
|
|
|
|
|
- function addGeometry( geometry, points, spacedPoints, color, x, y, z, rx, ry, rz, s ) {
|
|
|
|
|
|
+ function addShape( shape, extrudeSettings, color, x, y, z, rx, ry, rz, s ) {
|
|
|
|
+
|
|
|
|
+ var points = shape.createPointsGeometry();
|
|
|
|
+ var spacedPoints = shape.createSpacedPointsGeometry( 100 );
|
|
|
|
+
|
|
|
|
+ // flat shape
|
|
|
|
+
|
|
|
|
+ var geometry = new THREE.ShapeGeometry( shape );
|
|
|
|
+
|
|
|
|
+ var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ new THREE.MeshLambertMaterial( { color: color } ), new THREE.MeshBasicMaterial( { color: 0x000000, wireframe: true, transparent: true } ) ] );
|
|
|
|
+ mesh.position.set( x, y, z - 125 );
|
|
|
|
+ mesh.rotation.set( rx, ry, rz );
|
|
|
|
+ mesh.scale.set( s, s, s );
|
|
|
|
+ parent.add( mesh );
|
|
|
|
|
|
// 3d shape
|
|
// 3d shape
|
|
|
|
|
|
|
|
+ var geometry = new THREE.ExtrudeGeometry( shape, extrudeSettings );
|
|
|
|
+
|
|
var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ new THREE.MeshLambertMaterial( { color: color } ), new THREE.MeshBasicMaterial( { color: 0x000000, wireframe: true, transparent: true } ) ] );
|
|
var mesh = THREE.SceneUtils.createMultiMaterialObject( geometry, [ new THREE.MeshLambertMaterial( { color: color } ), new THREE.MeshBasicMaterial( { color: 0x000000, wireframe: true, transparent: true } ) ] );
|
|
mesh.position.set( x, y, z - 75 );
|
|
mesh.position.set( x, y, z - 75 );
|
|
mesh.rotation.set( rx, ry, rz );
|
|
mesh.rotation.set( rx, ry, rz );
|
|
@@ -105,7 +120,7 @@
|
|
// transparent line from equidistance sampled points
|
|
// transparent line from equidistance sampled points
|
|
|
|
|
|
var line = new THREE.Line( spacedPoints, new THREE.LineBasicMaterial( { color: color, opacity: 0.2 } ) );
|
|
var line = new THREE.Line( spacedPoints, new THREE.LineBasicMaterial( { color: color, opacity: 0.2 } ) );
|
|
- line.position.set( x, y, z + 100 );
|
|
|
|
|
|
+ line.position.set( x, y, z + 125 );
|
|
line.rotation.set( rx, ry, rz );
|
|
line.rotation.set( rx, ry, rz );
|
|
line.scale.set( s, s, s );
|
|
line.scale.set( s, s, s );
|
|
parent.add( line );
|
|
parent.add( line );
|
|
@@ -114,14 +129,13 @@
|
|
|
|
|
|
var pgeo = THREE.GeometryUtils.clone( spacedPoints );
|
|
var pgeo = THREE.GeometryUtils.clone( spacedPoints );
|
|
var particles2 = new THREE.ParticleSystem( pgeo, new THREE.ParticleBasicMaterial( { color: color, size: 2, opacity: 0.5 } ) );
|
|
var particles2 = new THREE.ParticleSystem( pgeo, new THREE.ParticleBasicMaterial( { color: color, size: 2, opacity: 0.5 } ) );
|
|
- particles2.position.set( x, y, z + 100 );
|
|
|
|
|
|
+ particles2.position.set( x, y, z + 125 );
|
|
particles2.rotation.set( rx, ry, rz );
|
|
particles2.rotation.set( rx, ry, rz );
|
|
particles2.scale.set( s, s, s );
|
|
particles2.scale.set( s, s, s );
|
|
parent.add( particles2 );
|
|
parent.add( particles2 );
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- var extrudeSettings = { amount: 20, bevelEnabled: true, bevelSegments: 2, steps: 2 }; // bevelSegments: 2, steps: 2 , bevelSegments: 5, bevelSize: 8, bevelThickness:5,
|
|
|
|
|
|
|
|
// California
|
|
// California
|
|
|
|
|
|
@@ -152,9 +166,6 @@
|
|
|
|
|
|
var californiaShape = new THREE.Shape( californiaPts );
|
|
var californiaShape = new THREE.Shape( californiaPts );
|
|
|
|
|
|
- var california3d = new THREE.ExtrudeGeometry( californiaShape, { amount: 20 } );
|
|
|
|
- var californiaPoints = californiaShape.createPointsGeometry();
|
|
|
|
- var californiaSpacedPoints = californiaShape.createSpacedPointsGeometry( 100 );
|
|
|
|
|
|
|
|
// Triangle
|
|
// Triangle
|
|
|
|
|
|
@@ -164,10 +175,6 @@
|
|
triangleShape.lineTo( 120, 80 );
|
|
triangleShape.lineTo( 120, 80 );
|
|
triangleShape.lineTo( 80, 20 ); // close path
|
|
triangleShape.lineTo( 80, 20 ); // close path
|
|
|
|
|
|
- var triangle3d = triangleShape.extrude( extrudeSettings );
|
|
|
|
- var trianglePoints = triangleShape.createPointsGeometry();
|
|
|
|
- var triangleSpacedPoints = triangleShape.createSpacedPointsGeometry();
|
|
|
|
-
|
|
|
|
|
|
|
|
// Heart
|
|
// Heart
|
|
|
|
|
|
@@ -183,11 +190,6 @@
|
|
heartShape.bezierCurveTo( x + 80, y + 35, x + 80, y, x + 50, y );
|
|
heartShape.bezierCurveTo( x + 80, y + 35, x + 80, y, x + 50, y );
|
|
heartShape.bezierCurveTo( x + 35, y, x + 25, y + 25, x + 25, y + 25 );
|
|
heartShape.bezierCurveTo( x + 35, y, x + 25, y + 25, x + 25, y + 25 );
|
|
|
|
|
|
- var heart3d = heartShape.extrude( extrudeSettings );
|
|
|
|
- var heartPoints = heartShape.createPointsGeometry();
|
|
|
|
- var heartSpacedPoints = heartShape.createSpacedPointsGeometry();
|
|
|
|
-
|
|
|
|
- //heartShape.debug( document.getElementById("debug") );
|
|
|
|
|
|
|
|
// Square
|
|
// Square
|
|
|
|
|
|
@@ -200,9 +202,6 @@
|
|
squareShape.lineTo( sqLength, 0 );
|
|
squareShape.lineTo( sqLength, 0 );
|
|
squareShape.lineTo( 0, 0 );
|
|
squareShape.lineTo( 0, 0 );
|
|
|
|
|
|
- var square3d = squareShape.extrude( extrudeSettings );
|
|
|
|
- var squarePoints = squareShape.createPointsGeometry();
|
|
|
|
- var squareSpacedPoints = squareShape.createSpacedPointsGeometry();
|
|
|
|
|
|
|
|
// Rectangle
|
|
// Rectangle
|
|
|
|
|
|
@@ -215,20 +214,12 @@
|
|
rectShape.lineTo( rectLength, 0 );
|
|
rectShape.lineTo( rectLength, 0 );
|
|
rectShape.lineTo( 0, 0 );
|
|
rectShape.lineTo( 0, 0 );
|
|
|
|
|
|
- var rect3d = rectShape.extrude( extrudeSettings );
|
|
|
|
- var rectPoints = rectShape.createPointsGeometry();
|
|
|
|
- var rectSpacedPoints = rectShape.createSpacedPointsGeometry();
|
|
|
|
|
|
|
|
// Rounded rectangle
|
|
// Rounded rectangle
|
|
|
|
|
|
var roundedRectShape = new THREE.Shape();
|
|
var roundedRectShape = new THREE.Shape();
|
|
- roundedRect( roundedRectShape, 0, 0, 50, 50, 20 );
|
|
|
|
-
|
|
|
|
- var roundedRect3d = roundedRectShape.extrude( extrudeSettings );
|
|
|
|
- var roundedRectPoints = roundedRectShape.createPointsGeometry();
|
|
|
|
- var roundedRectSpacedPoints = roundedRectShape.createSpacedPointsGeometry();
|
|
|
|
|
|
|
|
- function roundedRect( ctx, x, y, width, height, radius ){
|
|
|
|
|
|
+ ( function roundedRect( ctx, x, y, width, height, radius ){
|
|
|
|
|
|
ctx.moveTo( x, y + radius );
|
|
ctx.moveTo( x, y + radius );
|
|
ctx.lineTo( x, y + height - radius );
|
|
ctx.lineTo( x, y + height - radius );
|
|
@@ -240,7 +231,8 @@
|
|
ctx.lineTo( x + radius, y );
|
|
ctx.lineTo( x + radius, y );
|
|
ctx.quadraticCurveTo( x, y, x, y + radius );
|
|
ctx.quadraticCurveTo( x, y, x, y + radius );
|
|
|
|
|
|
- }
|
|
|
|
|
|
+ } )( roundedRectShape, 0, 0, 50, 50, 20 );
|
|
|
|
+
|
|
|
|
|
|
// Circle
|
|
// Circle
|
|
|
|
|
|
@@ -252,9 +244,6 @@
|
|
circleShape.quadraticCurveTo( -circleRadius, -circleRadius, -circleRadius, 0 );
|
|
circleShape.quadraticCurveTo( -circleRadius, -circleRadius, -circleRadius, 0 );
|
|
circleShape.quadraticCurveTo( -circleRadius, circleRadius, 0, circleRadius );
|
|
circleShape.quadraticCurveTo( -circleRadius, circleRadius, 0, circleRadius );
|
|
|
|
|
|
- var circle3d = circleShape.extrude( extrudeSettings );
|
|
|
|
- var circlePoints = circleShape.createPointsGeometry();
|
|
|
|
- var circleSpacedPoints = circleShape.createSpacedPointsGeometry();
|
|
|
|
|
|
|
|
// Fish
|
|
// Fish
|
|
|
|
|
|
@@ -269,9 +258,6 @@
|
|
fishShape.quadraticCurveTo(x + 100, y + 10, x + 90, y + 10);
|
|
fishShape.quadraticCurveTo(x + 100, y + 10, x + 90, y + 10);
|
|
fishShape.quadraticCurveTo(x + 50, y + 80, x, y);
|
|
fishShape.quadraticCurveTo(x + 50, y + 80, x, y);
|
|
|
|
|
|
- var fish3d = fishShape.extrude( extrudeSettings );
|
|
|
|
- var fishPoints = fishShape.createPointsGeometry();
|
|
|
|
- var fishSpacedPoints = fishShape.createSpacedPointsGeometry();
|
|
|
|
|
|
|
|
// Arc circle
|
|
// Arc circle
|
|
|
|
|
|
@@ -284,10 +270,6 @@
|
|
holePath.absarc( 10, 10, 10, 0, Math.PI*2, true );
|
|
holePath.absarc( 10, 10, 10, 0, Math.PI*2, true );
|
|
arcShape.holes.push( holePath );
|
|
arcShape.holes.push( holePath );
|
|
|
|
|
|
- var arc3d = arcShape.extrude( extrudeSettings );
|
|
|
|
- var arcPoints = arcShape.createPointsGeometry();
|
|
|
|
- var arcSpacedPoints = arcShape.createSpacedPointsGeometry();
|
|
|
|
-
|
|
|
|
|
|
|
|
// Smiley
|
|
// Smiley
|
|
|
|
|
|
@@ -299,7 +281,7 @@
|
|
smileyEye1Path.moveTo( 35, 20 );
|
|
smileyEye1Path.moveTo( 35, 20 );
|
|
// smileyEye1Path.absarc( 25, 20, 10, 0, Math.PI*2, true );
|
|
// smileyEye1Path.absarc( 25, 20, 10, 0, Math.PI*2, true );
|
|
smileyEye1Path.absellipse( 25, 20, 10, 10, 0, Math.PI*2, true );
|
|
smileyEye1Path.absellipse( 25, 20, 10, 10, 0, Math.PI*2, true );
|
|
-
|
|
|
|
|
|
+
|
|
smileyShape.holes.push( smileyEye1Path );
|
|
smileyShape.holes.push( smileyEye1Path );
|
|
|
|
|
|
var smileyEye2Path = new THREE.Path();
|
|
var smileyEye2Path = new THREE.Path();
|
|
@@ -324,10 +306,6 @@
|
|
smileyShape.holes.push( smileyMouthPath );
|
|
smileyShape.holes.push( smileyMouthPath );
|
|
|
|
|
|
|
|
|
|
- var smiley3d = smileyShape.extrude( extrudeSettings );
|
|
|
|
- var smileyPoints = smileyShape.createPointsGeometry();
|
|
|
|
- var smileySpacedPoints = smileyShape.createSpacedPointsGeometry();
|
|
|
|
-
|
|
|
|
// Spline shape + path extrusion
|
|
// Spline shape + path extrusion
|
|
|
|
|
|
var splinepts = [];
|
|
var splinepts = [];
|
|
@@ -340,7 +318,7 @@
|
|
splineShape.moveTo( 0, 0 );
|
|
splineShape.moveTo( 0, 0 );
|
|
splineShape.splineThru( splinepts );
|
|
splineShape.splineThru( splinepts );
|
|
|
|
|
|
- //splineShape.debug( document.getElementById("debug") );
|
|
|
|
|
|
+ // splineShape.debug( document.getElementById("debug") );
|
|
|
|
|
|
// TODO 3d path?
|
|
// TODO 3d path?
|
|
|
|
|
|
@@ -350,25 +328,31 @@
|
|
apath.points.push(new THREE.Vector3(40, 220, 50));
|
|
apath.points.push(new THREE.Vector3(40, 220, 50));
|
|
apath.points.push(new THREE.Vector3(200, 290, 100));
|
|
apath.points.push(new THREE.Vector3(200, 290, 100));
|
|
|
|
|
|
|
|
+
|
|
|
|
+ var extrudeSettings = { amount: 20 }; // bevelSegments: 2, steps: 2 , bevelSegments: 5, bevelSize: 8, bevelThickness:5
|
|
|
|
+
|
|
|
|
+ // addShape( shape, color, x, y, z, rx, ry,rz, s );
|
|
|
|
+
|
|
|
|
+ addShape( californiaShape, extrudeSettings, 0xffaa00, -300, -100, 0, 0, 0, 0, 0.25 );
|
|
|
|
+
|
|
|
|
+ extrudeSettings.bevelEnabled = true;
|
|
|
|
+ extrudeSettings.bevelSegments = 2;
|
|
|
|
+ extrudeSettings.steps = 2;
|
|
|
|
+
|
|
|
|
+ addShape( triangleShape, extrudeSettings, 0xffee00, -180, 0, 0, 0, 0, 0, 1 );
|
|
|
|
+ addShape( roundedRectShape, extrudeSettings, 0x005500, -150, 150, 0, 0, 0, 0, 1 );
|
|
|
|
+ addShape( squareShape, extrudeSettings, 0x0055ff, 150, 100, 0, 0, 0, 0, 1 );
|
|
|
|
+ addShape( heartShape, extrudeSettings, 0xff1100, 0, 100, 0, Math.PI, 0, 0, 1 );
|
|
|
|
+ addShape( circleShape, extrudeSettings, 0x00ff11, 120, 250, 0, 0, 0, 0, 1 );
|
|
|
|
+ addShape( fishShape, extrudeSettings, 0x222222, -60, 200, 0, 0, 0, 0, 1 );
|
|
|
|
+ addShape( smileyShape, extrudeSettings, 0xee00ff, -270, 250, 0, Math.PI, 0, 0, 1 );
|
|
|
|
+ addShape( arcShape, extrudeSettings, 0xbb4422, 150, 0, 0, 0, 0, 0, 1 );
|
|
|
|
+
|
|
extrudeSettings.extrudePath = apath;
|
|
extrudeSettings.extrudePath = apath;
|
|
extrudeSettings.bevelEnabled = false;
|
|
extrudeSettings.bevelEnabled = false;
|
|
extrudeSettings.steps = 20;
|
|
extrudeSettings.steps = 20;
|
|
|
|
|
|
- var splineShape3d = splineShape.extrude( extrudeSettings );
|
|
|
|
- var splinePoints = splineShape.createPointsGeometry( );
|
|
|
|
- var splineSpacedPoints = splineShape.createSpacedPointsGeometry( );
|
|
|
|
-
|
|
|
|
- addGeometry( california3d, californiaPoints, californiaSpacedPoints, 0xffaa00, -300, -100, 0, 0, 0, 0, 0.25 );
|
|
|
|
- addGeometry( triangle3d, trianglePoints, triangleSpacedPoints, 0xffee00, -180, 0, 0, 0, 0, 0, 1 );
|
|
|
|
- addGeometry( roundedRect3d, roundedRectPoints, roundedRectSpacedPoints, 0x005500, -150, 150, 0, 0, 0, 0, 1 );
|
|
|
|
- addGeometry( square3d, squarePoints, squareSpacedPoints, 0x0055ff, 150, 100, 0, 0, 0, 0, 1 );
|
|
|
|
- addGeometry( heart3d, heartPoints, heartSpacedPoints, 0xff1100, 0, 100, 0, Math.PI, 0, 0, 1 );
|
|
|
|
- addGeometry( circle3d, circlePoints, circleSpacedPoints, 0x00ff11, 120, 250, 0, 0, 0, 0, 1 );
|
|
|
|
- addGeometry( fish3d, fishPoints, fishSpacedPoints, 0x222222, -60, 200, 0, 0, 0, 0, 1 );
|
|
|
|
- addGeometry( splineShape3d, splinePoints, splineSpacedPoints, 0x888888, -50, -100, -50, 0, 0, 0, 0.2 );
|
|
|
|
- addGeometry( arc3d, arcPoints, arcSpacedPoints, 0xbb4422, 150, 0, 0, 0, 0, 0, 1 );
|
|
|
|
- addGeometry( smiley3d, smileyPoints, smileySpacedPoints, 0xee00ff, -270, 250, 0, Math.PI, 0, 0, 1 );
|
|
|
|
-
|
|
|
|
|
|
+ addShape( splineShape, extrudeSettings, 0x888888, -50, -100, -50, 0, 0, 0, 0.2 );
|
|
|
|
|
|
//
|
|
//
|
|
|
|
|