Shape
Defines an arbitrary 2d shape plane using paths with optional holes. It can be used with ExtrudeGeometry, ShapeGeometry, to get points, or to get triangulated faces.
Code Example
const heartShape = new THREE.Shape(); heartShape.moveTo( 25, 25 );
heartShape.bezierCurveTo( 25, 25, 20, 0, 0, 0 ); heartShape.bezierCurveTo( -
30, 0, - 30, 35, - 30, 35 ); heartShape.bezierCurveTo( - 30, 55, - 10, 77, 25,
95 ); heartShape.bezierCurveTo( 60, 77, 80, 55, 80, 35 );
heartShape.bezierCurveTo( 80, 35, 80, 0, 50, 0 ); heartShape.bezierCurveTo(
35, 0, 25, 25, 25, 25 ); const extrudeSettings = { depth: 8, bevelEnabled:
true, bevelSegments: 2, steps: 2, bevelSize: 1, bevelThickness: 1 }; const
geometry = new THREE.ExtrudeGeometry( heartShape, extrudeSettings ); const
mesh = new THREE.Mesh( geometry, new THREE.MeshPhongMaterial() );
Examples
[example:webgl_geometry_shapes geometry / shapes ]
[example:webgl_geometry_extrude_shapes geometry / extrude / shapes ]
Constructor
Shape
function Shape( points: Array ): void;
points -- (optional) array of Vector2s.
Creates a Shape from the points. The first point defines the offset, then successive points are added to the curves array as LineCurves.
If no points are specified, an empty shape is created and the .currentPoint is set to the origin.
Properties
See the base Path class for common properties.
uuid
uuid: String;
UUID of this instance. This gets automatically assigned, so this shouldn't be edited.
holes
holes: Array;
An array of paths that define the holes in the shape.
Methods
See the base Path class for common methods.
extractPoints
function extractPoints( divisions: Integer ): Array;
divisions -- The fineness of the result.
Call getPoints on the shape and the .holes array, and return an object of the form:
{ shape holes }
where shape and holes are arrays of Vector2s.
getPointsHoles
function getPointsHoles( divisions: Integer ): Array;
divisions -- The fineness of the result.
Get an array of Vector2s that represent the holes in the shape.