# Extrusion

Extrusion is a geometry node stretching a 2D cross section along a 3D-spine path in the local coordinate system. Scaling/rotating cross-sections can produce a variety of shapes.

The Extrusion node belongs to the **Geometry3D** component and its container field is *geometry.* It is available since X3D version 3.0 or later.

# Fields

### SFNode [in, out] **metadata** NULL [X3DMetadataObject]

Metadata are not part of the X3D world and not interpreted by the X3D browser, but they can be accessed via the ECMAScript interface.

### SFBool [ ] **beginCap** TRUE

Whether beginning cap is drawn (similar to Cylinder top cap).

#### Warning

Cannot be changed after initial creation.

### SFBool [ ] **endCap** TRUE

Whether end cap is drawn (similar to Cylinder end cap).

#### Warning

Cannot be changed after initial creation.

### SFBool [ ] **solid** TRUE

Setting solid true means draw only one side of polygons (backface culling on), setting solid false means draw both sides of polygons (backface culling off).

#### Hint

If in doubt, use solid='false' for maximum visibility.

#### Warning

Default value true can completely hide geometry if viewed from wrong side!

### SFBool [ ] **ccw** TRUE

Ccw = counterclockwise: ordering of vertex-coordinates orientation.

#### Hint

Ccw false can reverse solid (backface culling) and normal-vector orientation.

### SFBool [ ] **convex** TRUE

Whether all polygons in a shape are convex (true), or possibly concave (false). A convex polygon is planar, does not intersect itself, and has all interior angles < 180 degrees.

#### Warning

Concave geometry may be invisible default convex=true.

### SFFloat [ ] **creaseAngle** [0,∞)

CreaseAngle defines angle (in radians) where adjacent polygons are drawn with sharp edges or smooth shading. If angle between normals of two adjacent polygons is less than creaseAngle, smooth shading is rendered across the shared line segment.

#### Hint

CreaseAngle=0 means render all edges sharply, creaseAngle=3.14159 means render all edges smoothly.

### MFVec2f [in, out] **crossSection** [ 1 1, 1 -1, -1 -1, -1 1, 1 1 ] (-∞,∞)

An ordered set of 2D points drawing a piecewise-linear curve and forming a planar series of connected vertices. This provides a silhouette of the outer surface.

#### Warning

Match clockwise/counterclockwise or impossible/inverted geometry can result!

### MFRotation [in, out] **orientation** 0 0 1 0 [-1,1] or (-∞,∞)

Orientation is a list of axis-angle orientation 4-tuples applied at each spine-aligned cross-section plane.

#### Hint

Number of spine points, scale values and orientation values must be the same.

### MFVec2f [in, out] **scale** 1 1 (0,∞)

Scale is a list of 2D-scale parameters applied at each spine-aligned cross-section plane.

#### Hint

Number of spine points, scale values and orientation values must be the same.

#### Warning

Zero or negative scale values not allowed.

### MFVec3f [in, out] **spine** [ 0 0 0, 0 1 0 ] (-∞,∞)

Spine is a list of 3D points for a piecewise-linear curve forming a series of connected vertices, open or closed. This is the path along which the crossSection is extruded.

#### Hint

Number of spine points, scale values and orientation values must be the same.