@ikijs/editor 0.24.1 → 0.25.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -14
- package/dist/index.d.mts +78 -3
- package/dist/index.d.ts +78 -3
- package/dist/index.js +437 -125
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +435 -123
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,19 +40,19 @@ leaves the document untouched.
|
|
|
40
40
|
|
|
41
41
|
## API
|
|
42
42
|
|
|
43
|
-
| Area | Exports
|
|
44
|
-
| ------------------ |
|
|
45
|
-
| Document | `EditorDocument`, `EditCommand`
|
|
46
|
-
| Part edits | `AddPart`, `DeletePart`, `SetPartColor`, `SetPartWidth`, `SetPartHeight`, `SetPartOrder`, `SetPartTransform`, `SetPartBindings`, `SetPartMesh`, `SetPartDeformer`
|
|
47
|
-
| Deformer edits | `AddDeformer`, `DeleteDeformer`, `SetDeformerParent`, `SetDeformerTransform`, `SetDeformerBindings`, `SetDeformerPivot` (+ `X`/`Y`), `CaptureGridKeyform`
|
|
48
|
-
| Physics edits | `AddPhysicsRig`, `SetPhysicsRig`, `DeletePhysicsRig`
|
|
49
|
-
| Referential guards | `validateDeformerReparent`, `validateDeformerDelete`, `validatePartAttach`
|
|
50
|
-
| Atlas | `packAtlas`, `uvRectFor`, `ATLAS_PADDING`, `UV_INSET_PX`
|
|
51
|
-
| Grid keyforms | `computeGridOffsets`, `interpolateGridOffsets`, `upsertGridKeyform`
|
|
52
|
-
| Factories | `createDefaultPart`, `createDefaultMatrixDeformer`, `createDefaultWarpDeformer`, `createGridMesh`
|
|
53
|
-
| Pixels | `detectAlphaBbox`, `ALPHA_BBOX_THRESHOLD`, `AlphaBbox`, `ALPHA_OPAQUE`, `HEAD_BAND`, `SPECK_CORE_FRACTION`, `denseCoreOf`, `isSpeckCore`, `foregroundSpan`, `headHalfOf`
|
|
54
|
-
| Auto-rig | `generateIkiFromLayerSet`, `parseLayerRoles`, `partIdsOfRole`, `createLayerSetMeasurer`, `armGeometry`, `ArmGeometry`, `forearmPoseGeometry`, `ForearmPoseGeometry`, `mouthOpening`, `mouthFold`, `mouthRestShift`, `columnRuns`, `LIP_ROLES`, `LipRole`, `Opening`, `OpeningColumn`, `TurnTargets`, `DEFAULT_TURN_TARGETS`, `TurnSolveReport`, `RigStyle`, `LayerGeometryError` |
|
|
55
|
-
| Bindings | `captureBindingEndpoint`
|
|
43
|
+
| Area | Exports |
|
|
44
|
+
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
45
|
+
| Document | `EditorDocument`, `EditCommand` |
|
|
46
|
+
| Part edits | `AddPart`, `DeletePart`, `SetPartColor`, `SetPartWidth`, `SetPartHeight`, `SetPartOrder`, `SetPartTransform`, `SetPartBindings`, `SetPartMesh`, `SetPartDeformer` |
|
|
47
|
+
| Deformer edits | `AddDeformer`, `DeleteDeformer`, `SetDeformerParent`, `SetDeformerTransform`, `SetDeformerBindings`, `SetDeformerPivot` (+ `X`/`Y`), `CaptureGridKeyform` |
|
|
48
|
+
| Physics edits | `AddPhysicsRig`, `SetPhysicsRig`, `DeletePhysicsRig` |
|
|
49
|
+
| Referential guards | `validateDeformerReparent`, `validateDeformerDelete`, `validatePartAttach` |
|
|
50
|
+
| Atlas | `packAtlas`, `uvRectFor`, `ATLAS_PADDING`, `UV_INSET_PX` |
|
|
51
|
+
| Grid keyforms | `computeGridOffsets`, `interpolateGridOffsets`, `upsertGridKeyform` |
|
|
52
|
+
| Factories | `createDefaultPart`, `createDefaultMatrixDeformer`, `createDefaultWarpDeformer`, `createGridMesh` |
|
|
53
|
+
| Pixels | `detectAlphaBbox`, `ALPHA_BBOX_THRESHOLD`, `AlphaBbox`, `ALPHA_OPAQUE`, `HEAD_BAND`, `SPECK_CORE_FRACTION`, `denseCoreOf`, `isSpeckCore`, `foregroundSpan`, `headHalfOf` |
|
|
54
|
+
| Auto-rig | `generateIkiFromLayerSet`, `parseLayerRoles`, `partIdsOfRole`, `createLayerSetMeasurer`, `armGeometry`, `ArmGeometry`, `forearmPoseGeometry`, `ForearmPoseGeometry`, `mouthOpening`, `mouthFold`, `mouthRestShift`, `columnRuns`, `LIP_ROLES`, `LipRole`, `Opening`, `OpeningColumn`, `TurnTargets`, `DEFAULT_TURN_TARGETS`, `TurnSolveReport`, `RigStyle`, `RigPatch`, `PatchReport`, `PatchError`, `SHUT_BY`, `LayerGeometryError` |
|
|
55
|
+
| Bindings | `captureBindingEndpoint` |
|
|
56
56
|
|
|
57
57
|
## Auto-rig
|
|
58
58
|
|
|
@@ -98,7 +98,9 @@ shift. With none given the profile itself renders (`DEFAULT_TURN_TARGETS`
|
|
|
98
98
|
expresses it in the cues' units). `options.style` tunes a character from the
|
|
99
99
|
profile: the whole turn, the
|
|
100
100
|
features' lead, the front hair's follow and its outline's, the blink and the
|
|
101
|
-
hair sway.
|
|
101
|
+
hair sway. `options.patches` adds displacements to a generated rig's keyform
|
|
102
|
+
stops (`RigPatch`), replayed on every rig and reported through
|
|
103
|
+
`options.onPatchesApplied`; a refused op throws `PatchError`. The turn
|
|
102
104
|
is bounded by the art: the far eye stays inside the plate's outline and, given
|
|
103
105
|
`options.strandEdges`, the far iris may not slide under the bangs' side strand
|
|
104
106
|
any further than it is painted — best effort, never a refusal. The report's
|
package/dist/index.d.mts
CHANGED
|
@@ -690,8 +690,8 @@ interface RigStyle {
|
|
|
690
690
|
|
|
691
691
|
/**
|
|
692
692
|
* The public shapes of the auto-rig: what a host hands `generateIkiFromLayerSet`
|
|
693
|
-
* and what the turn solve
|
|
694
|
-
* `layer-measure.ts`; everything here is already-decoded geometry.
|
|
693
|
+
* and what the turn solve and the patch replay report back. Pixel measurement
|
|
694
|
+
* lives in `layer-measure.ts`; everything here is already-decoded geometry.
|
|
695
695
|
*/
|
|
696
696
|
|
|
697
697
|
/** One role layer, as a host measured it off its decoded pixels. */
|
|
@@ -839,6 +839,68 @@ interface TurnSolveReport {
|
|
|
839
839
|
right?: StrandOverlap;
|
|
840
840
|
};
|
|
841
841
|
}
|
|
842
|
+
/**
|
|
843
|
+
* One `displace` op of the rig patch layer: a displacement ADDED to one
|
|
844
|
+
* EXISTING keyform stop of `target` on the freshly generated rig, so it is
|
|
845
|
+
* replayed on every re-rig over whatever the generator now bakes. Every other
|
|
846
|
+
* stop and the rest pose stay as generated; between stops the engine blends
|
|
847
|
+
* linearly, so a fix at AngleX −30 shows at half strength at −15.
|
|
848
|
+
*/
|
|
849
|
+
interface RigPatch {
|
|
850
|
+
/** A feature grid (`eyeWarp_L`/`_R`, `browWarp_L`/`_R`, `noseWarp`,
|
|
851
|
+
* `mouthWarp`) or a mesh part with warps (`face`, `hair_front`, …). The
|
|
852
|
+
* body warp and the matrix deformers are not patchable. */
|
|
853
|
+
target: string;
|
|
854
|
+
/** The stop. A grid's names both `ParamAngleX` and `ParamAngleY`, each one
|
|
855
|
+
* of its stops (−30, 0, 30), never both 0; a part's names exactly one
|
|
856
|
+
* parameter it has a warp keyform at, never at that parameter's default
|
|
857
|
+
* nor where the rig shuts the part on purpose (`SHUT_BY` at 0). */
|
|
858
|
+
at: Record<string, number>;
|
|
859
|
+
/** A rectangle in fractions of the REST layer box of `role`, origin
|
|
860
|
+
* top-left, x right, y DOWN; it may reach past the box (x < 0 or > 1).
|
|
861
|
+
* The target's points whose REST position lies inside take the whole of
|
|
862
|
+
* `by`. */
|
|
863
|
+
region: {
|
|
864
|
+
role: string;
|
|
865
|
+
x: [number, number];
|
|
866
|
+
y: [number, number];
|
|
867
|
+
};
|
|
868
|
+
/** In face widths (the `face` layer's crop width), screen axes: +dx toward
|
|
869
|
+
* the viewer's right (a character's `_L` side), +dy DOWN. */
|
|
870
|
+
by: {
|
|
871
|
+
dx: number;
|
|
872
|
+
dy: number;
|
|
873
|
+
};
|
|
874
|
+
/** Face widths past the region over which `by` eases to nothing; 0 or
|
|
875
|
+
* absent, a hard edge. */
|
|
876
|
+
falloff?: number;
|
|
877
|
+
/** Why the op exists, for whoever edits the patches next; the rig ignores
|
|
878
|
+
* it. */
|
|
879
|
+
why?: string;
|
|
880
|
+
}
|
|
881
|
+
/** What one op moved on the rig it was replayed on. */
|
|
882
|
+
interface PatchReport {
|
|
883
|
+
/** The op's index in `patches`. */
|
|
884
|
+
index: number;
|
|
885
|
+
target: string;
|
|
886
|
+
at: Record<string, number>;
|
|
887
|
+
/** Points (grid) or vertices (part) the op moved at all. */
|
|
888
|
+
moved: number;
|
|
889
|
+
/** All of the target's points or vertices. */
|
|
890
|
+
of: number;
|
|
891
|
+
/** Grid targets only: the lattice columns and rows the moved points span,
|
|
892
|
+
* 0 at the left and at the top. */
|
|
893
|
+
cols?: [number, number];
|
|
894
|
+
rows?: [number, number];
|
|
895
|
+
/** The largest move, model px. */
|
|
896
|
+
maxPx: number;
|
|
897
|
+
}
|
|
898
|
+
/** A patch op that is malformed or misses the rig: an unknown target, role,
|
|
899
|
+
* key or stop, the rest stop, a by-design closure, or a region that catches
|
|
900
|
+
* none of the target's points. Its message starts `patches[i]`. */
|
|
901
|
+
declare class PatchError extends Error {
|
|
902
|
+
constructor(message: string);
|
|
903
|
+
}
|
|
842
904
|
interface HeadEdges {
|
|
843
905
|
left: {
|
|
844
906
|
role: string;
|
|
@@ -854,6 +916,12 @@ interface GenerateOptions {
|
|
|
854
916
|
/** Per-character tuning from the profile's defaults (`profile.ts`). */
|
|
855
917
|
style?: RigStyle;
|
|
856
918
|
onTurnSolved?: (report: TurnSolveReport) => void;
|
|
919
|
+
/** Displacements added to the generated rig's stops (`RigPatch`), replayed
|
|
920
|
+
* on every rig; a refused op throws `PatchError` and rigs nothing. */
|
|
921
|
+
patches?: RigPatch[];
|
|
922
|
+
/** What each of `patches` moved, in order — called only when `patches` is
|
|
923
|
+
* given, and only for a model that validates. */
|
|
924
|
+
onPatchesApplied?: (report: PatchReport[]) => void;
|
|
857
925
|
headEdges?: HeadEdges;
|
|
858
926
|
strandEdges?: {
|
|
859
927
|
left?: IrisStrand;
|
|
@@ -1004,6 +1072,13 @@ type LipRole = (typeof LIP_ROLES)[number];
|
|
|
1004
1072
|
declare const LIP_INSIDE_ROLES: readonly ["mouth_tongue", "mouth_teeth"];
|
|
1005
1073
|
type LipInsideRole = (typeof LIP_INSIDE_ROLES)[number];
|
|
1006
1074
|
declare const isLipInsideRole: (role: string) => role is LipInsideRole;
|
|
1075
|
+
/**
|
|
1076
|
+
* The parts the auto-rig flattens on purpose, each with the parameter that
|
|
1077
|
+
* shuts it at 0: an eye's sclera and lower lid as ITS OWN lid closes, and the
|
|
1078
|
+
* lip set with its tongue and teeth as the mouth shuts. A fold check exempts
|
|
1079
|
+
* these closures; a patch may not land on them.
|
|
1080
|
+
*/
|
|
1081
|
+
declare const SHUT_BY: ReadonlyMap<string, string>;
|
|
1007
1082
|
/** The part ids a `role`'s layer becomes, back to front: every one of them
|
|
1008
1083
|
* takes its texture from the layer's crop. Throws on an unknown role. */
|
|
1009
1084
|
declare function partIdsOfRole(role: string): readonly string[];
|
|
@@ -1617,4 +1692,4 @@ declare function createGridMesh(cols: number, rows: number): IkiMesh;
|
|
|
1617
1692
|
*/
|
|
1618
1693
|
declare function createDefaultWarpDeformer(model: IkiModel): IkiWarpDeformer;
|
|
1619
1694
|
|
|
1620
|
-
export { ALPHA_BBOX_THRESHOLD, ALPHA_OPAQUE, ATLAS_PADDING, AddDeformer, AddPart, AddPhysicsRig, type AlphaBbox, type ApplyAtlasInput, type ArmGeometry, type AtlasAssignment, type AtlasLayout, type AtlasPlacement, type AtlasSource, CaptureGridKeyform, DEFAULT_TURN_TARGETS, type DeformerTransformChannel, DeleteDeformer, DeletePart, DeletePhysicsRig, type EditCommand, type EditTransformChannel, EditorDocument, type ForearmPoseGeometry, HEAD_BAND, type IrisStrand, LIP_INSIDE_ROLES, LIP_ROLES, LayerGeometryError, type LayerInput, type LayerSetMeasurement, type LayerSetMeasurer, type LipInsideRole, type LipRole, type Opening, type OpeningColumn, type RgbaLayer, type RigStyle, SPECK_CORE_FRACTION, SetDeformerBindings, SetDeformerParent, SetDeformerPivot, SetDeformerPivotX, SetDeformerPivotY, SetDeformerTransform, SetPartBindings, SetPartColor, SetPartDeformer, SetPartHeight, SetPartMesh, SetPartOrder, SetPartTransform, SetPartWidth, SetPhysicsRig, type StrandOverlap, type TurnDepths, type TurnSolveReport, TurnTargetError, type TurnTargets, UV_INSET_PX, armGeometry, captureBindingEndpoint, columnRuns, computeGridOffsets, createDefaultMatrixDeformer, createDefaultPart, createDefaultWarpDeformer, createGridMesh, createLayerSetMeasurer, denseCoreOf, detectAlphaBbox, forearmPoseGeometry, foregroundSpan, generateIkiFromLayerSet, headHalfOf, interpolateGridOffsets, isLipInsideRole, isSpeckCore, mouthFold, mouthOpening, mouthRestShift, packAtlas, parseLayerRoles, partIdsOfRole, upsertGridKeyform, uvRectFor, validateDeformerDelete, validateDeformerReparent, validatePartAttach };
|
|
1695
|
+
export { ALPHA_BBOX_THRESHOLD, ALPHA_OPAQUE, ATLAS_PADDING, AddDeformer, AddPart, AddPhysicsRig, type AlphaBbox, type ApplyAtlasInput, type ArmGeometry, type AtlasAssignment, type AtlasLayout, type AtlasPlacement, type AtlasSource, CaptureGridKeyform, DEFAULT_TURN_TARGETS, type DeformerTransformChannel, DeleteDeformer, DeletePart, DeletePhysicsRig, type EditCommand, type EditTransformChannel, EditorDocument, type ForearmPoseGeometry, HEAD_BAND, type IrisStrand, LIP_INSIDE_ROLES, LIP_ROLES, LayerGeometryError, type LayerInput, type LayerSetMeasurement, type LayerSetMeasurer, type LipInsideRole, type LipRole, type Opening, type OpeningColumn, PatchError, type PatchReport, type RgbaLayer, type RigPatch, type RigStyle, SHUT_BY, SPECK_CORE_FRACTION, SetDeformerBindings, SetDeformerParent, SetDeformerPivot, SetDeformerPivotX, SetDeformerPivotY, SetDeformerTransform, SetPartBindings, SetPartColor, SetPartDeformer, SetPartHeight, SetPartMesh, SetPartOrder, SetPartTransform, SetPartWidth, SetPhysicsRig, type StrandOverlap, type TurnDepths, type TurnSolveReport, TurnTargetError, type TurnTargets, UV_INSET_PX, armGeometry, captureBindingEndpoint, columnRuns, computeGridOffsets, createDefaultMatrixDeformer, createDefaultPart, createDefaultWarpDeformer, createGridMesh, createLayerSetMeasurer, denseCoreOf, detectAlphaBbox, forearmPoseGeometry, foregroundSpan, generateIkiFromLayerSet, headHalfOf, interpolateGridOffsets, isLipInsideRole, isSpeckCore, mouthFold, mouthOpening, mouthRestShift, packAtlas, parseLayerRoles, partIdsOfRole, upsertGridKeyform, uvRectFor, validateDeformerDelete, validateDeformerReparent, validatePartAttach };
|
package/dist/index.d.ts
CHANGED
|
@@ -690,8 +690,8 @@ interface RigStyle {
|
|
|
690
690
|
|
|
691
691
|
/**
|
|
692
692
|
* The public shapes of the auto-rig: what a host hands `generateIkiFromLayerSet`
|
|
693
|
-
* and what the turn solve
|
|
694
|
-
* `layer-measure.ts`; everything here is already-decoded geometry.
|
|
693
|
+
* and what the turn solve and the patch replay report back. Pixel measurement
|
|
694
|
+
* lives in `layer-measure.ts`; everything here is already-decoded geometry.
|
|
695
695
|
*/
|
|
696
696
|
|
|
697
697
|
/** One role layer, as a host measured it off its decoded pixels. */
|
|
@@ -839,6 +839,68 @@ interface TurnSolveReport {
|
|
|
839
839
|
right?: StrandOverlap;
|
|
840
840
|
};
|
|
841
841
|
}
|
|
842
|
+
/**
|
|
843
|
+
* One `displace` op of the rig patch layer: a displacement ADDED to one
|
|
844
|
+
* EXISTING keyform stop of `target` on the freshly generated rig, so it is
|
|
845
|
+
* replayed on every re-rig over whatever the generator now bakes. Every other
|
|
846
|
+
* stop and the rest pose stay as generated; between stops the engine blends
|
|
847
|
+
* linearly, so a fix at AngleX −30 shows at half strength at −15.
|
|
848
|
+
*/
|
|
849
|
+
interface RigPatch {
|
|
850
|
+
/** A feature grid (`eyeWarp_L`/`_R`, `browWarp_L`/`_R`, `noseWarp`,
|
|
851
|
+
* `mouthWarp`) or a mesh part with warps (`face`, `hair_front`, …). The
|
|
852
|
+
* body warp and the matrix deformers are not patchable. */
|
|
853
|
+
target: string;
|
|
854
|
+
/** The stop. A grid's names both `ParamAngleX` and `ParamAngleY`, each one
|
|
855
|
+
* of its stops (−30, 0, 30), never both 0; a part's names exactly one
|
|
856
|
+
* parameter it has a warp keyform at, never at that parameter's default
|
|
857
|
+
* nor where the rig shuts the part on purpose (`SHUT_BY` at 0). */
|
|
858
|
+
at: Record<string, number>;
|
|
859
|
+
/** A rectangle in fractions of the REST layer box of `role`, origin
|
|
860
|
+
* top-left, x right, y DOWN; it may reach past the box (x < 0 or > 1).
|
|
861
|
+
* The target's points whose REST position lies inside take the whole of
|
|
862
|
+
* `by`. */
|
|
863
|
+
region: {
|
|
864
|
+
role: string;
|
|
865
|
+
x: [number, number];
|
|
866
|
+
y: [number, number];
|
|
867
|
+
};
|
|
868
|
+
/** In face widths (the `face` layer's crop width), screen axes: +dx toward
|
|
869
|
+
* the viewer's right (a character's `_L` side), +dy DOWN. */
|
|
870
|
+
by: {
|
|
871
|
+
dx: number;
|
|
872
|
+
dy: number;
|
|
873
|
+
};
|
|
874
|
+
/** Face widths past the region over which `by` eases to nothing; 0 or
|
|
875
|
+
* absent, a hard edge. */
|
|
876
|
+
falloff?: number;
|
|
877
|
+
/** Why the op exists, for whoever edits the patches next; the rig ignores
|
|
878
|
+
* it. */
|
|
879
|
+
why?: string;
|
|
880
|
+
}
|
|
881
|
+
/** What one op moved on the rig it was replayed on. */
|
|
882
|
+
interface PatchReport {
|
|
883
|
+
/** The op's index in `patches`. */
|
|
884
|
+
index: number;
|
|
885
|
+
target: string;
|
|
886
|
+
at: Record<string, number>;
|
|
887
|
+
/** Points (grid) or vertices (part) the op moved at all. */
|
|
888
|
+
moved: number;
|
|
889
|
+
/** All of the target's points or vertices. */
|
|
890
|
+
of: number;
|
|
891
|
+
/** Grid targets only: the lattice columns and rows the moved points span,
|
|
892
|
+
* 0 at the left and at the top. */
|
|
893
|
+
cols?: [number, number];
|
|
894
|
+
rows?: [number, number];
|
|
895
|
+
/** The largest move, model px. */
|
|
896
|
+
maxPx: number;
|
|
897
|
+
}
|
|
898
|
+
/** A patch op that is malformed or misses the rig: an unknown target, role,
|
|
899
|
+
* key or stop, the rest stop, a by-design closure, or a region that catches
|
|
900
|
+
* none of the target's points. Its message starts `patches[i]`. */
|
|
901
|
+
declare class PatchError extends Error {
|
|
902
|
+
constructor(message: string);
|
|
903
|
+
}
|
|
842
904
|
interface HeadEdges {
|
|
843
905
|
left: {
|
|
844
906
|
role: string;
|
|
@@ -854,6 +916,12 @@ interface GenerateOptions {
|
|
|
854
916
|
/** Per-character tuning from the profile's defaults (`profile.ts`). */
|
|
855
917
|
style?: RigStyle;
|
|
856
918
|
onTurnSolved?: (report: TurnSolveReport) => void;
|
|
919
|
+
/** Displacements added to the generated rig's stops (`RigPatch`), replayed
|
|
920
|
+
* on every rig; a refused op throws `PatchError` and rigs nothing. */
|
|
921
|
+
patches?: RigPatch[];
|
|
922
|
+
/** What each of `patches` moved, in order — called only when `patches` is
|
|
923
|
+
* given, and only for a model that validates. */
|
|
924
|
+
onPatchesApplied?: (report: PatchReport[]) => void;
|
|
857
925
|
headEdges?: HeadEdges;
|
|
858
926
|
strandEdges?: {
|
|
859
927
|
left?: IrisStrand;
|
|
@@ -1004,6 +1072,13 @@ type LipRole = (typeof LIP_ROLES)[number];
|
|
|
1004
1072
|
declare const LIP_INSIDE_ROLES: readonly ["mouth_tongue", "mouth_teeth"];
|
|
1005
1073
|
type LipInsideRole = (typeof LIP_INSIDE_ROLES)[number];
|
|
1006
1074
|
declare const isLipInsideRole: (role: string) => role is LipInsideRole;
|
|
1075
|
+
/**
|
|
1076
|
+
* The parts the auto-rig flattens on purpose, each with the parameter that
|
|
1077
|
+
* shuts it at 0: an eye's sclera and lower lid as ITS OWN lid closes, and the
|
|
1078
|
+
* lip set with its tongue and teeth as the mouth shuts. A fold check exempts
|
|
1079
|
+
* these closures; a patch may not land on them.
|
|
1080
|
+
*/
|
|
1081
|
+
declare const SHUT_BY: ReadonlyMap<string, string>;
|
|
1007
1082
|
/** The part ids a `role`'s layer becomes, back to front: every one of them
|
|
1008
1083
|
* takes its texture from the layer's crop. Throws on an unknown role. */
|
|
1009
1084
|
declare function partIdsOfRole(role: string): readonly string[];
|
|
@@ -1617,4 +1692,4 @@ declare function createGridMesh(cols: number, rows: number): IkiMesh;
|
|
|
1617
1692
|
*/
|
|
1618
1693
|
declare function createDefaultWarpDeformer(model: IkiModel): IkiWarpDeformer;
|
|
1619
1694
|
|
|
1620
|
-
export { ALPHA_BBOX_THRESHOLD, ALPHA_OPAQUE, ATLAS_PADDING, AddDeformer, AddPart, AddPhysicsRig, type AlphaBbox, type ApplyAtlasInput, type ArmGeometry, type AtlasAssignment, type AtlasLayout, type AtlasPlacement, type AtlasSource, CaptureGridKeyform, DEFAULT_TURN_TARGETS, type DeformerTransformChannel, DeleteDeformer, DeletePart, DeletePhysicsRig, type EditCommand, type EditTransformChannel, EditorDocument, type ForearmPoseGeometry, HEAD_BAND, type IrisStrand, LIP_INSIDE_ROLES, LIP_ROLES, LayerGeometryError, type LayerInput, type LayerSetMeasurement, type LayerSetMeasurer, type LipInsideRole, type LipRole, type Opening, type OpeningColumn, type RgbaLayer, type RigStyle, SPECK_CORE_FRACTION, SetDeformerBindings, SetDeformerParent, SetDeformerPivot, SetDeformerPivotX, SetDeformerPivotY, SetDeformerTransform, SetPartBindings, SetPartColor, SetPartDeformer, SetPartHeight, SetPartMesh, SetPartOrder, SetPartTransform, SetPartWidth, SetPhysicsRig, type StrandOverlap, type TurnDepths, type TurnSolveReport, TurnTargetError, type TurnTargets, UV_INSET_PX, armGeometry, captureBindingEndpoint, columnRuns, computeGridOffsets, createDefaultMatrixDeformer, createDefaultPart, createDefaultWarpDeformer, createGridMesh, createLayerSetMeasurer, denseCoreOf, detectAlphaBbox, forearmPoseGeometry, foregroundSpan, generateIkiFromLayerSet, headHalfOf, interpolateGridOffsets, isLipInsideRole, isSpeckCore, mouthFold, mouthOpening, mouthRestShift, packAtlas, parseLayerRoles, partIdsOfRole, upsertGridKeyform, uvRectFor, validateDeformerDelete, validateDeformerReparent, validatePartAttach };
|
|
1695
|
+
export { ALPHA_BBOX_THRESHOLD, ALPHA_OPAQUE, ATLAS_PADDING, AddDeformer, AddPart, AddPhysicsRig, type AlphaBbox, type ApplyAtlasInput, type ArmGeometry, type AtlasAssignment, type AtlasLayout, type AtlasPlacement, type AtlasSource, CaptureGridKeyform, DEFAULT_TURN_TARGETS, type DeformerTransformChannel, DeleteDeformer, DeletePart, DeletePhysicsRig, type EditCommand, type EditTransformChannel, EditorDocument, type ForearmPoseGeometry, HEAD_BAND, type IrisStrand, LIP_INSIDE_ROLES, LIP_ROLES, LayerGeometryError, type LayerInput, type LayerSetMeasurement, type LayerSetMeasurer, type LipInsideRole, type LipRole, type Opening, type OpeningColumn, PatchError, type PatchReport, type RgbaLayer, type RigPatch, type RigStyle, SHUT_BY, SPECK_CORE_FRACTION, SetDeformerBindings, SetDeformerParent, SetDeformerPivot, SetDeformerPivotX, SetDeformerPivotY, SetDeformerTransform, SetPartBindings, SetPartColor, SetPartDeformer, SetPartHeight, SetPartMesh, SetPartOrder, SetPartTransform, SetPartWidth, SetPhysicsRig, type StrandOverlap, type TurnDepths, type TurnSolveReport, TurnTargetError, type TurnTargets, UV_INSET_PX, armGeometry, captureBindingEndpoint, columnRuns, computeGridOffsets, createDefaultMatrixDeformer, createDefaultPart, createDefaultWarpDeformer, createGridMesh, createLayerSetMeasurer, denseCoreOf, detectAlphaBbox, forearmPoseGeometry, foregroundSpan, generateIkiFromLayerSet, headHalfOf, interpolateGridOffsets, isLipInsideRole, isSpeckCore, mouthFold, mouthOpening, mouthRestShift, packAtlas, parseLayerRoles, partIdsOfRole, upsertGridKeyform, uvRectFor, validateDeformerDelete, validateDeformerReparent, validatePartAttach };
|