# ShapeStim

## visual ShapeStim

This class provides the basic functionality of shape stimuli.

## Constructor

#### new ShapeStim(options)

Source:
  - visual/ShapeStim.js, line 24
Mixes In:
  - ColorMixin

##### Parameters:

Name | Type | Description
--- | --- | ---
`options` | Object | ###### Properties
Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`name` | String |  |  | the name used when logging messages from this stimulus
`win` | module:core.Window |  |  | the associated Window
`lineWidth` | number |  |  | the line width
`lineColor` | Color | <optional> | `'white'` | the line color
`fillColor` | Color |  |  | the fill color
`opacity` | number | <optional> | `1.0` | the opacity
`vertices` | Array.<Array.<number>> | <optional> | `[[-0.5, 0], [0, 0.5], [0.5, 0]]` | the shape vertices
`closeShape` | boolean | <optional> | `true` | whether or not the shape is closed
`pos` | Array.<number> | <optional> | `[0, 0]` | the position of the center of the shape
`size` | number | <optional> | `1.0` | the size
`ori` | number | <optional> | `0.0` | the orientation (in degrees)
`units` | string |  |  | the units of the stimulus vertices, size and position
`contrast` | number | <optional> | `1.0` | the contrast
`depth` | number | <optional> | `0` | the depth
`interpolate` | boolean | <optional> | `true` | whether or not the shape is interpolated
`autoDraw` | boolean | <optional> | `false` | whether or not the stimulus should be automatically drawn on every frame flip
`autoLog` | boolean | <optional> | `false` | whether or not to log

### Extends

- VisualStim

### Members

#### (static, readonly) KnownShapes

Source:
  - visual/ShapeStim.js, line 335

Known shapes.

### Methods

#### (protected) _estimateBoundingBox()

Source:
  - visual/ShapeStim.js, line 184

Estimate the bounding box.

#### (protected) _getPixiPolygon() → {Object}

Source:
  - visual/ShapeStim.js, line 268

Get the PIXI polygon (in pixel units) corresponding to the vertices.

##### Returns:

the PIXI polygon corresponding to this stimulus vertices.

Type
  Object

#### (protected) _getVertices_px() → {Array.<Array.<number>>}

Source:
  - visual/ShapeStim.js, line 304

Get the vertices in pixel units.

##### Returns:

the vertices (in pixel units)

Type
  Array.<Array.<number>>

#### (protected) _updateIfNeeded()

Source:
  - visual/ShapeStim.js, line 218

Update the stimulus, if necessary.

#### contains(object, units) → {boolean}

Source:
  - visual/ShapeStim.js, line 157

Determine whether an object is inside the bounding box of the ShapeStim.

This is overridden in order to provide a finer inclusion test.

##### Parameters:

Name | Type | Description
--- | --- | ---
`object` | Object | the object
`units` | string | the units

##### Returns:

whether or not the object is inside the bounding box of the ShapeStim

Type
  boolean

#### setVertices(vertices, logopt)

Source:
  - visual/ShapeStim.js, line 113

Setter for the vertices attribute.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`vertices` | Array.<Array.<number>> |  |  | the vertices
`log` | boolean | <optional> | `false` | whether of not to log