Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions docs/api/extras/geometries/ConeBufferGeometry.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:BufferGeometry] &rarr;

<h1>[name]</h1>

<div class="desc">This is the [page:BufferGeometry] port of [page:ConeGeometry].</div>


<h2>Example</h2>

<iframe src='scenes/geometry-browser.html#ConeBufferGeometry'></iframe>

<code>var geometry = new THREE.ConeBufferGeometry( 5, 20, 32 );
var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
var cone = new THREE.Mesh( geometry, material );
scene.add( cone );
</code>


<h2>Constructor</h2>


<h3>[name]([page:Float radiusTop], [page:Float radiusBottom], [page:Float height], [page:Integer radiusSegments], [page:Integer heightSegments], [page:Boolean openEnded], [page:Float thetaStart], [page:Float thetaLength])</h3>
<div>
radius — Radius of the cone base. Default is 20.<br />
height — Height of the cone. Default is 100.<br />
radiusSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
openEnded — A Boolean indicating whether the ends of the cone are open or capped. Default is false, meaning capped.<br />
thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cone.
</div>


<h2>Properties</h2>

<div>
Each of the constructor parameters is accessible as a property of the same name. Any modification of these properties after instantiation does not change the geometry.
</div>


<h2>Source</h2>

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
55 changes: 55 additions & 0 deletions docs/api/extras/geometries/ConeGeometry.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<base href="../../../" />
<script src="list.js"></script>
<script src="page.js"></script>
<link type="text/css" rel="stylesheet" href="page.css" />
</head>
<body>
[page:Geometry] &rarr;

<h1>[name]</h1>

<div class="desc">A class for generating cone geometries</div>


<h2>Example</h2>

<iframe src='scenes/geometry-browser.html#ConeGeometry'></iframe>

<code>var geometry = new THREE.ConeGeometry( 5, 20, 32 );
var material = new THREE.MeshBasicMaterial( {color: 0xffff00} );
var cone = new THREE.Mesh( geometry, material );
scene.add( cone );
</code>


<h2>Constructor</h2>


<h3>[name]([page:Float radiusTop], [page:Float radiusBottom], [page:Float height], [page:Integer radiusSegments], [page:Integer heightSegments], [page:Boolean openEnded], [page:Float thetaStart], [page:Float thetaLength])</h3>
<div>
radius — Radius of the cone at the base. Default is 20.<br />
height — Height of the cone. Default is 100.<br />
radiusSegments — Number of segmented faces around the circumference of the cone. Default is 8<br />
heightSegments — Number of rows of faces along the height of the cone. Default is 1.<br />
openEnded — A Boolean indicating whether the ends of the cone are open or capped. Default is false, meaning capped.<br />
thetaStart — Start angle for first segment, default = 0 (three o'clock position).<br />
thetaLength — The central angle, often called theta, of the circular sector. The default is 2*Pi, which makes for a complete cone.
</div>


<h2>Properties</h2>

<div>
Each of the constructor parameters is accessible as a property of the same name. Any modification of these properties after instantiation does not change the geometry.
</div>


<h2>Source</h2>

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
</body>
</html>
2 changes: 2 additions & 0 deletions docs/list.js
Original file line number Diff line number Diff line change
Expand Up @@ -198,6 +198,8 @@ var list = {
[ "CircleGeometry", "api/extras/geometries/CircleGeometry" ],
[ "CylinderBufferGeometry", "api/extras/geometries/CylinderBufferGeometry" ],
[ "CylinderGeometry", "api/extras/geometries/CylinderGeometry" ],
[ "ConeBufferGeometry", "api/extras/geometries/ConeBufferGeometry" ],
[ "ConeGeometry", "api/extras/geometries/ConeGeometry" ],
[ "DodecahedronGeometry", "api/extras/geometries/DodecahedronGeometry" ],
[ "ExtrudeGeometry", "api/extras/geometries/ExtrudeGeometry" ],
[ "IcosahedronGeometry", "api/extras/geometries/IcosahedronGeometry" ],
Expand Down
91 changes: 89 additions & 2 deletions docs/scenes/js/geometry.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,8 +193,8 @@ var guis = {

var folder = gui.addFolder( 'THREE.CylinderBufferGeometry' );

folder.add( data, 'radiusTop', 1, 30 ).onChange( generateGeometry );
folder.add( data, 'radiusBottom', 1, 30 ).onChange( generateGeometry );
folder.add( data, 'radiusTop', 0, 30 ).onChange( generateGeometry );
folder.add( data, 'radiusBottom', 0, 30 ).onChange( generateGeometry );
folder.add( data, 'height', 1, 50 ).onChange( generateGeometry );
folder.add( data, 'radiusSegments', 3, 64 ).step( 1 ).onChange( generateGeometry );
folder.add( data, 'heightSegments', 1, 64 ).step( 1 ).onChange( generateGeometry );
Expand Down Expand Up @@ -253,6 +253,93 @@ var guis = {

},

ConeBufferGeometry : function( mesh ) {

var data = {
radius : 5,
height : 10,
radiusSegments : 8,
heightSegments : 1,
openEnded : false,
thetaStart : 0,
thetaLength : twoPi,
};

function generateGeometry() {

updateGroupGeometry( mesh,
new THREE.ConeBufferGeometry(
data.radius,
data.height,
data.radiusSegments,
data.heightSegments,
data.openEnded,
data.thetaStart,
data.thetaLength
)
);

}

var folder = gui.addFolder( 'THREE.ConeBufferGeometry' );

folder.add( data, 'radius', 0, 30 ).onChange( generateGeometry );
folder.add( data, 'height', 1, 50 ).onChange( generateGeometry );
folder.add( data, 'radiusSegments', 3, 64 ).step( 1 ).onChange( generateGeometry );
folder.add( data, 'heightSegments', 1, 64 ).step( 1 ).onChange( generateGeometry );
folder.add( data, 'openEnded' ).onChange( generateGeometry );
folder.add( data, 'thetaStart', 0, twoPi ).onChange( generateGeometry );
folder.add( data, 'thetaLength', 0, twoPi ).onChange( generateGeometry );


generateGeometry();

},

ConeGeometry : function( mesh ) {

var data = {
radius : 5,
height : 10,
radiusSegments : 8,
heightSegments : 1,
openEnded : false,
thetaStart : 0,
thetaLength : twoPi,
};

function generateGeometry() {

updateGroupGeometry( mesh,
new THREE.ConeGeometry(
data.radius,
data.height,
data.radiusSegments,
data.heightSegments,
data.openEnded,
data.thetaStart,
data.thetaLength
)
);

}

var folder = gui.addFolder( 'THREE.ConeGeometry' );

folder.add( data, 'radius', 0, 30 ).onChange( generateGeometry );
folder.add( data, 'height', 1, 50 ).onChange( generateGeometry );
folder.add( data, 'radiusSegments', 3, 64 ).step( 1 ).onChange( generateGeometry );
folder.add( data, 'heightSegments', 1, 64 ).step( 1 ).onChange( generateGeometry );
folder.add( data, 'openEnded' ).onChange( generateGeometry );
folder.add( data, 'thetaStart', 0, twoPi ).onChange( generateGeometry );
folder.add( data, 'thetaLength', 0, twoPi ).onChange( generateGeometry );


generateGeometry();

},


CircleBufferGeometry : function( mesh ) {

var data = {
Expand Down
29 changes: 29 additions & 0 deletions src/extras/geometries/ConeBufferGeometry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/*
* @author: abelnation / http://github.com/abelnation
*/

THREE.ConeBufferGeometry = function (
radius, height,
radialSegments, heightSegments,
openEnded, thetaStart, thetaLength ) {

THREE.CylinderBufferGeometry.call( this,
0, radius, height,
radialSegments, heightSegments,
openEnded, thetaStart, thetaLength );

this.type = 'ConeBufferGeometry';

this.parameters = {
radius: radius,
height: height,
radialSegments: radialSegments,
heightSegments: heightSegments,
thetaStart: thetaStart,
thetaLength: thetaLength
};

};

THREE.ConeBufferGeometry.prototype = Object.create( THREE.BufferGeometry.prototype );
THREE.ConeBufferGeometry.prototype.constructor = THREE.ConeBufferGeometry;
30 changes: 30 additions & 0 deletions src/extras/geometries/ConeGeometry.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* @author abelnation / http://github.com/abelnation
*/

THREE.ConeGeometry = function (
radius, height,
radialSegments, heightSegments,
openEnded, thetaStart, thetaLength ) {

THREE.CylinderGeometry.call( this,
0, radius, height,
radialSegments, heightSegments,
openEnded, thetaStart, thetaLength );

this.type = 'ConeGeometry';

this.parameters = {
radius: radius,
height: height,
radialSegments: radialSegments,
heightSegments: heightSegments,
openEnded: openEnded,
thetaStart: thetaStart,
thetaLength: thetaLength
};

};

THREE.ConeGeometry.prototype = Object.create( THREE.CylinderGeometry.prototype );
THREE.ConeGeometry.prototype.constructor = THREE.ConeGeometry;
15 changes: 15 additions & 0 deletions src/loaders/ObjectLoader.js
Original file line number Diff line number Diff line change
Expand Up @@ -146,6 +146,21 @@ THREE.ObjectLoader.prototype = {

break;

case 'ConeGeometry':
case 'ConeBufferGeometry':

geometry = new THREE [ data.type ](
data.radius,
data.height,
data.radialSegments,
data.heightSegments,
data.openEnded,
data.thetaStart,
data.thetaLength
);

break;

case 'SphereGeometry':
case 'SphereBufferGeometry':

Expand Down
2 changes: 2 additions & 0 deletions utils/build/includes/extras.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
"src/extras/geometries/CircleBufferGeometry.js",
"src/extras/geometries/CylinderBufferGeometry.js",
"src/extras/geometries/CylinderGeometry.js",
"src/extras/geometries/ConeBufferGeometry.js",
"src/extras/geometries/ConeGeometry.js",
"src/extras/geometries/EdgesGeometry.js",
"src/extras/geometries/ExtrudeGeometry.js",
"src/extras/geometries/ShapeGeometry.js",
Expand Down