[page:Object3D] → [page:Line] → [page:LineSegments] →

# [name]

Renders [page:ArrowHelper arrows] to visualize an object's [page:Face3 face] normals. Requires that face normals have been specified on all [page:Face3 faces] or calculated with [page:Geometry.computeFaceNormals computeFaceNormals].
Note that this only works with the objects whose geometry is an instance of [page:Geometry]. For [page:BufferGeometry] use a [page:VertexNormalsHelper] instead.

## Example

[example:webgl_helpers WebGL / helpers]
`geometry = new THREE.BoxGeometry( 10, 10, 10, 2, 2, 2 ); material = new THREE.MeshBasicMaterial( { color: 0xff0000 } ); box = new THREE.Mesh( geometry, material ); helper = new THREE.FaceNormalsHelper( box, 2, 0x00ff00, 1 ); scene.add( box ); scene.add( helper );`

## Constructor

### [name]( [param:Object3D object], [param:Number size], [param:Color color], [param:Number linewidth] )

[page:Object3D object] -- object for which to render face normals.
[page:Number size] -- (optional) length of the arrows. Default is *1*.
[page:Hex color] -- (optional) hex color of the arrows. Default is *0xffff00*.
[page:Number linewidth] -- (optional) width of the arrow lines. Default is *1*.

## Properties

See the base [page:LineSegments] class for common properties.

### [property:object matrixAutoUpdate]

See [page:Object3D.matrixAutoUpdate]. Set to *false* here as the helper is using the objects's [page:Object3D.matrixWorld matrixWorld].

### [property:Object3D object]

The object for which the face normals are being visualized.

### [property:Number size]

Length of the arrows. Default is *1*.

## Methods

See the base [page:LineSegments] class for common methods.

### [method:null update]()

Updates the face normal preview based on movement of the object.

## Source

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]