Class

OCODoc

OCODoc(name)

An Open Cut-Out character or meta-rig document.
Constructor

# new OCODoc(name)

Creates a new OCO Document.
Parameters:
Name Type Description
name string The name of the character or the meta rig

View Source DuAEF.jsxinc, line 15665

Members

Array.<float>

# static centerOfMass

The coordinates of the center of mass of the character. [X, Y].

View Source DuAEF.jsxinc, line 15695

float

# static height

The height of the character. Should always be 1!

View Source DuAEF.jsxinc, line 15681

string

# static name

The name of this OCO Doc

View Source DuAEF.jsxinc, line 15674

string

# static type

The type of this OCO Doc

View Source DuAEF.jsxinc, line 15667

float

# static width

The width of the character.

View Source DuAEF.jsxinc, line 15688

string

# icon

An icon or thumbnail path

View Source DuAEF.jsxinc, line 15728

OCO.ImageEncoding

# imageEncoding

How images should be encoded when exporting the doc to a file/folder

View Source DuAEF.jsxinc, line 15733

float

# pixelsPerCm

The definition

View Source DuAEF.jsxinc, line 15723

Array.<int>

# resolution

The resolution, in pixels, of the document

View Source DuAEF.jsxinc, line 15713

Array.<float>

# world

The world origin in pixels in the document

View Source DuAEF.jsxinc, line 15718

Methods

# static extractIcon(file, destinationopt) → {File}

Extracts the icon from the OCO file
Parameters:
Name Type Attributes Description
file string | File The OCO file
destination string | File <optional>
The destination file if the file is included in the OCO file. Next to the OCO file by default.

View Source DuAEF.jsxinc, line 17191

The icon file, or null if there was no icon/the file could not be written.
File

# static fromFile(file) → {OCODoc|null}

Creates a new doc by reading a file
Parameters:
Name Type Description
file File | string The file

View Source DuAEF.jsxinc, line 17218

The document or null if the file couldn't be read or parsed
OCODoc | null

# static zBounds() → {Array.<int>}

Finds the maximum and minimum Z index from all bones

View Source DuAEF.jsxinc, line 17172

The [min, max] Z indices
Array.<int>

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

Gets the boundaries of the doc

View Source DuAEF.jsxinc, line 15799

[left, top, right, bottom]
Array.<float>

# fromPixels(point) → {Array.<float>|float}

Converts coordinates in pixels in the world to centimeters coordinates in the doc
For multidimensionnal values (coordinates), the origin is adjusted image to doc.
Parameters:
Name Type Description
point Array.<float> | float The coordinate to convert

View Source DuAEF.jsxinc, line 17044

The coordinates in centimeters relative to the doc
Array.<float> | float

# getBones() → {Array.<OCOBone>}

Gets all the bones sorted by z index

View Source DuAEF.jsxinc, line 17137

The list of bones
Array.<OCOBone>

# getSpine() → {OCOLimb|null}

Finds the spine

View Source DuAEF.jsxinc, line 15756

The spine.
OCOLimb | null

# newArm(typeopt, sideopt, shoulderopt, armopt, forearmopt, handopt, clawsopt, positionopt, locationopt, viewopt) → {OCOLimb}

Creates a new arm.
Parameters:
Name Type Attributes Default Description
type OCO.LimbType <optional>
OCO.LimbType.HOMINOID The type of limb
side OCO.Side <optional>
OCO.Side.LEFT The side
shoulder Boolean <optional>
false Whether to create a shoulder
arm Boolean <optional>
true Whether to create an arm / humerus
forearm Boolean <optional>
true Whether to create a forearm
hand Boolean <optional>
true Whether to create a hand
claws Boolean <optional>
false Whether to add claws
position Array.<float> <optional>
The position of the first bone of the arm.
If omitted, computed automatically according to the current character in the doc.
location OCO.Location <optional>
OCO.Location.FRONT The location of the limb
view OCO.View <optional>
The view

View Source DuAEF.jsxinc, line 15862

The arm
OCOLimb

# newFin(sideopt, fishbonesopt, positionopt, viewopt) → {OCOLimb}

Creates a new fin.
Parameters:
Name Type Attributes Default Description
side OCO.Side <optional>
OCO.Side.LEFT The side
fishbones int <optional>
5 Number of feathers
position Array.<float> <optional>
The position of the first bone of the arm.
If omitted, computed automatically according to the current character in the doc.
view OCO.View <optional>
OCO.View.RIGHT The view

View Source DuAEF.jsxinc, line 16927

The fin
OCOLimb

# newFishSpine(headopt, spineopt, positionopt) → {OCOLimb}

Creates a new fish spine.
Parameters:
Name Type Attributes Default Description
head Boolean <optional>
true Whether to create a head
spine int <optional>
3 Number of spine bones
position Array.<float> <optional>
The position of the first bone of the spine.
If omitted, computed automatically according to the current character in the doc.

View Source DuAEF.jsxinc, line 16842

The fish spine
OCOLimb

# newHairStrand(numBonesopt) → {OCOLimb}

Creates a new hair strand.
Parameters:
Name Type Attributes Default Description
numBones int <optional>
3 Number of hair bones

View Source DuAEF.jsxinc, line 16540

The hair
OCOLimb

# newLeg(typeopt, sideopt, thighopt, calfopt, footopt, clawsopt, positionopt, locationopt, viewopt) → {OCOLimb}

Creates a new leg.
Parameters:
Name Type Attributes Default Description
type OCO.LimbType <optional>
OCO.LimbType.HOMINOID The type of limb
side OCO.Side <optional>
OCO.Side.LEFT The side
thigh Boolean <optional>
true Whether to create a thigh
calf Boolean <optional>
true Whether to create a calf
foot Boolean <optional>
true Whether to create a foot
claws Boolean <optional>
false Whether to add claws
position Array.<float> <optional>
The position of the first bone of the arm.
If omitted, computed automatically according to the current character in the doc.
location OCO.Location <optional>
OCO.Location.BACK The location of the limb
view OCO.View <optional>
The view

View Source DuAEF.jsxinc, line 16197

The leg
OCOLimb

# newLimb(limbopt, sideopt, locationopt, typeopt) → {OCOLimb}

Creates a new limb and adds it to the doc
Parameters:
Name Type Attributes Default Description
limb OCO.Limb <optional>
OCO.Limb.CUSTOM A Predefined limb
side OCO.Side <optional>
OCO.Side.NONE The side of the limb
location OCO.Location <optional>
OCO.Location.NONE The location of the limb
type OCO.LimbType <optional>
OCO.LimbType.CUSTOM The type of the limb

View Source DuAEF.jsxinc, line 15840

The new limb
OCOLimb

# newSnakeSpine(headopt, spineopt, positionopt) → {OCOLimb}

Creates a new snake spine.
Parameters:
Name Type Attributes Default Description
head Boolean <optional>
true Whether to create a head
spine int <optional>
5 Number of spine bones
position Array.<float> <optional>
The position of the first bone of the arm.
If omitted, computed automatically according to the current character in the doc.

View Source DuAEF.jsxinc, line 16758

The snake spine
OCOLimb

# newSpine(headopt, neckopt, spineopt, hipsopt, positionopt, viewopt) → {OCOLimb}

Creates a new spine.
Parameters:
Name Type Attributes Default Description
head Boolean <optional>
true Whether to create a head
neck int <optional>
1 Number of neck bones
spine int <optional>
2 Number of spine bones
hips Boolean <optional>
true Whether to create hips
position Array.<float> <optional>
The position of the first bone of the arm.
If omitted, computed automatically according to the current character in the doc.
view OCO.View <optional>
The view

View Source DuAEF.jsxinc, line 16389

The spine
OCOLimb

# newTail(numBonesopt) → {OCOLimb}

Creates a new tail.
Parameters:
Name Type Attributes Default Description
numBones int <optional>
3 Number of tail bones

View Source DuAEF.jsxinc, line 16501

The spine
OCOLimb

# newWing(sideopt, armopt, forearmopt, handopt, feathersopt, positionopt, viewopt) → {OCOLimb}

Creates a new wing.
Parameters:
Name Type Attributes Default Description
side OCO.Side <optional>
OCO.Side.LEFT The side
arm Boolean <optional>
true Whether to create an arm / humerus
forearm Boolean <optional>
true Whether to create a forearm
hand Boolean <optional>
true Whether to create a hand
feathers int <optional>
5 Number of feathers
position Array.<float> <optional>
The position of the first bone of the arm.
If omitted, computed automatically according to the current character in the doc.
view OCO.View <optional>
OCO.View.TOP The view

View Source DuAEF.jsxinc, line 16593

The wing
OCOLimb

# normalizeZIndices(offsetopt) → {int}

Normalizes the Z indices of all bones so they're positive (including 0) and continuous integers.
Parameters:
Name Type Attributes Default Description
offset int <optional>
0 An offset/start number

View Source DuAEF.jsxinc, line 17155

The highest index
int

# numBones() → {int}

Counts the total number of bones in this doc

View Source DuAEF.jsxinc, line 15771

int

# numLimbs() → {int}

Counts the total number of limbs in this doc

View Source DuAEF.jsxinc, line 15785

int

# toFile(file) → {File}

Exports the current document to an oco file
Parameters:
Name Type Description
file File | string The file.

View Source DuAEF.jsxinc, line 17120

the file.
File

# toJson(imageEncodingopt, destinationFileopt) → {string}

Creates a JSON string representing this document
Parameters:
Name Type Attributes Default Description
imageEncoding OCO.ImageEncoding <optional>
OCO.ImageEncoding.PATH How to encode images in the OCO File
destinationFile File <optional>
If imageEncoding is `OCO.ImageEncoding.PATH`, you must provide the OCO file to make the paths relative to it.

View Source DuAEF.jsxinc, line 17097

the JSON document
string

# toObject() → {Object}

Creates a js object containing this document data.
This object could then be exported to JSON for example.

View Source DuAEF.jsxinc, line 17066

the JS Object
Object

# toPixels(point) → {Array.<int>}

Converts a doc coordinate/value in centimeters to pixel coordinates.
For multidimensionnal values (coordinates), the origin is adjusted from doc to image.
Parameters:
Name Type Description
point Array.<float> The coordinate to convert

View Source DuAEF.jsxinc, line 17025

The coordinates in pixels
Array.<int>

# updateSize()

Updates the width and height of the character, according to the content.
This method should be called each time a limb/bone is added/removed/edited and the bounds may change.

View Source DuAEF.jsxinc, line 15822