Constructor
# new OCODoc(name)
Creates a new OCO Document.
Parameters:
Name | Type | Description |
---|---|---|
name |
string
|
The name of the character or the meta rig |
Members
OCO.ImageEncoding
# imageEncoding
How images should be encoded when exporting the doc to a file/folder
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. |
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 |
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
The [min, max] Z indices
Array.<int>
# bounds() → {Array.<float>}
Gets the boundaries of the doc
[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.
For multidimensionnal values (coordinates), the origin is adjusted image to doc.
Parameters:
Name | Type | Description |
---|---|---|
point |
Array.<float>
|
float
|
The coordinate to convert |
The coordinates in centimeters relative to the doc
Array.<float>
|
float
# getBones() → {Array.<OCOBone>}
Gets all the bones sorted by z index
The list of bones
Array.<OCOBone>
# getLimbs() → {Array.<OCOLimb>}
Recursively gets all the limbs contained in the doc
The array of all limbs
Array.<OCOLimb>
# 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 |
The arm
# 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 |
The fin
# 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. |
The fish spine
# newHairStrand(numBonesopt) → {OCOLimb}
Creates a new hair strand.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
numBones |
int
|
<optional> |
3 | Number of hair bones |
The hair
# 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 |
The leg
# 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 |
The new limb
# 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. |
The snake spine
# 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 |
The spine
# newTail(numBonesopt) → {OCOLimb}
Creates a new tail.
Parameters:
Name | Type | Attributes | Default | Description |
---|---|---|---|---|
numBones |
int
|
<optional> |
3 | Number of tail bones |
The spine
# 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 |
The wing
# 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 |
The highest index
int
# toFile(file) → {File}
Exports the current document to an oco file
Parameters:
Name | Type | Description |
---|---|---|
file |
File
|
string
|
The file. |
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. |
the JSON document
string
# toObject() → {Object}
Creates a js object containing this document data.
This object could then be exported to JSON for example.
This object could then be exported to JSON for example.
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.
For multidimensionnal values (coordinates), the origin is adjusted from doc to image.
Parameters:
Name | Type | Description |
---|---|---|
point |
Array.<float>
|
The coordinate to convert |
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.
This method should be called each time a limb/bone is added/removed/edited and the bounds may change.