## DuOCOLimb(limbopt, sideopt, locationopt, typeopt)

A limb contained in an OCO Doc.
Constructor

#### # new DuOCOLimb(limbopt, sideopt, locationopt, typeopt)

Creates a new OCO Limb.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`limb` | `DuOCO.Limb` | <optional> | DuOCO.Limb.CUSTOM | A Predefined limb
`side` | `DuOCO.Side` | <optional> | DuOCO.Side.NONE | The side of the limb
`location` | `DuOCO.Location` | <optional> | DuOCO.Location.NONE | The location of the limb
`type` | `DuOCO.LimbType` | <optional> | DuOCO.LimbType.CUSTOM | The type of the limb

View Source DuAEF_Duik_api.jsxinc, line 15682

# Members

Type: `DuOCO.Limb`

#### # static limb

The predefined limb

View Source DuAEF_Duik_api.jsxinc, line 15684

Type: `Array.<DuOCOLimb>`

#### # static limbs

The limbs/ Armatures

View Source DuAEF_Duik_api.jsxinc, line 14400

Type: `DuOCO.Location`

#### # static location

The location of the limb

View Source DuAEF_Duik_api.jsxinc, line 15705

Type: `Array.<DuOCOBone>`

#### # static location

The bones of the limb

View Source DuAEF_Duik_api.jsxinc, line 15712

Type: `DuOCO.Side`

#### # static side

The sided of the limb

View Source DuAEF_Duik_api.jsxinc, line 15698

Type: `DuOCO.LimbType`

#### # static type

The type of the limb

View Source DuAEF_Duik_api.jsxinc, line 15691

# Methods

#### # armatureFromLayers(doc, name, layers) → {DuOCOBone}

Creates a new chain of bones located on the layer anchor points.

##### Parameters:

Name | Type | Description
--- | --- | ---
`doc` | `DuOCODoc` | The doc containing the limb.
`name` | `string` | The name of the bones (will increment if needed)
`layers` | `Array.<Layer>` | `LayerCollection` | The layers

View Source DuAEF_Duik_api.jsxinc, line 34035

Returns:
The root bone of the new chain
Type: `DuOCOBone`

#### # armatureFromPath(doc, name, pathProp) → {DuOCOBone}

Creates a new chain of bones located on the vertices of the path.

##### Parameters:

Name | Type | Description
--- | --- | ---
`doc` | `DuOCODoc` | The doc containing the limb.
`name` | `string` | The name of the bones (will increment if needed)
`pathProp` | `PropertyGroup` | `DuAEProperty` | The path property (either an "ADBE Vector Shape - Group" or an "ADBE Mask Atom")

View Source DuAEF_Duik_api.jsxinc, line 33828

Returns:
The root bone of the new chain
Type: `DuOCOBone`

#### # armatureFromPuppetPins(doc, name, pins) → {DuOCOBone}

Creates a new chain of bones located on the puppet pins.

##### Parameters:

Name | Type | Description
--- | --- | ---
`doc` | `DuOCODoc` | The doc containing the limb.
`name` | `string` | The name of the bones (will increment if needed)
`pins` | `Array.<Property>` | `Array.<DuAEProperty>` | The puppet pins

View Source DuAEF_Duik_api.jsxinc, line 33940

Returns:
The root bone of the new chain
Type: `DuOCOBone`

#### # bounds() → {Array.<float>}

Gets the boundaries of the limb

View Source DuAEF_Duik_api.jsxinc, line 15725

Returns:
[left, top, right, bottom]
Type: `Array.<float>`

#### # moveArmatureToLayers(doc, layers)

Moves the armature of the limb to the layers.

##### Parameters:

Name | Type | Description
--- | --- | ---
`doc` | `DuOCODoc` | The doc containing the limb.
`layers` | `Array.<Layer>` | `LayerCollection` | The layers

View Source DuAEF_Duik_api.jsxinc, line 33989

#### # moveArmatureToPath(doc, pathProp)

Moves the armature of the limb to the vertices of the path.

##### Parameters:

Name | Type | Description
--- | --- | ---
`doc` | `DuOCODoc` | The doc containing the limb.
`pathProp` | `PropertyGroup` | `DuAEProperty` | The path property (either an "ADBE Vector Shape - Group" or an "ADBE Mask Atom")

View Source DuAEF_Duik_api.jsxinc, line 33869

#### # moveArmatureToPuppetPins(doc, pins)

Moves the armature of the limb to the puppet pins.

##### Parameters:

Name | Type | Description
--- | --- | ---
`doc` | `DuOCODoc` | The doc containing the limb.
`pins` | `Array.<Property>` | `Array.<DuAEProperty>` | The puppet pins

View Source DuAEF_Duik_api.jsxinc, line 33901

#### # newArmature(name, numopt, lengthopt) → {DuOCOBone}

Creates a new chain of bones and adds it to the limb.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`name` | `string` |  |  | The name of the bones (will increment if needed)
`num` | `int` | <optional> | 2 | The number of bones in the chain
`length` | `float` | <optional> | 100.0 | The length in centimeters

View Source DuAEF_Duik_api.jsxinc, line 15737

Returns:
The root bone.
Type: `DuOCOBone`

#### # toComp(doc, compopt, parentLayeropt, limbIdopt) → {Array.<Layer>}

Creates the limb and armatures in the comp

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`doc` | `DuOCODoc` |  |  | The doc containing the limb.
`comp` | `CompItem` | <optional> | DuAEProject.getActiveComp() | The composition to use.
`parentLayer` | `Layer` | <optional> | null | The parent layer of the bone.
`limbId` | `int` | <optional> |  | A Unique identifier for this armature. If omitted, a new one will be assigned.

View Source DuAEF_Duik_api.jsxinc, line 33804

Returns:
The new layers
Type: `Array.<Layer>`