@aura3d/animation 3.0.0 → 4.0.0
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/dist/AnimationController.d.ts +8 -0
- package/dist/AnimationController.d.ts.map +1 -1
- package/dist/AnimationController.js +93 -0
- package/dist/AnimationController.js.map +1 -1
- package/dist/AnimationMixer.d.ts +4 -1
- package/dist/AnimationMixer.d.ts.map +1 -1
- package/dist/AnimationMixer.js +47 -29
- package/dist/AnimationMixer.js.map +1 -1
- package/dist/FootIk.d.ts +50 -0
- package/dist/FootIk.d.ts.map +1 -1
- package/dist/FootIk.js +224 -8
- package/dist/FootIk.js.map +1 -1
- package/dist/HumanoidRetargeting.d.ts +6 -2
- package/dist/HumanoidRetargeting.d.ts.map +1 -1
- package/dist/HumanoidRetargeting.js +18 -8
- package/dist/HumanoidRetargeting.js.map +1 -1
- package/dist/IK.d.ts +26 -0
- package/dist/IK.d.ts.map +1 -1
- package/dist/IK.js +515 -0
- package/dist/IK.js.map +1 -1
- package/dist/Keyframe.d.ts.map +1 -1
- package/dist/Keyframe.js +13 -12
- package/dist/Keyframe.js.map +1 -1
- package/dist/LocomotionEvidence.d.ts +34 -0
- package/dist/LocomotionEvidence.d.ts.map +1 -0
- package/dist/LocomotionEvidence.js +48 -0
- package/dist/LocomotionEvidence.js.map +1 -0
- package/dist/RootMotion.d.ts +13 -4
- package/dist/RootMotion.d.ts.map +1 -1
- package/dist/RootMotion.js +21 -1
- package/dist/RootMotion.js.map +1 -1
- package/dist/SpringBones.d.ts +80 -0
- package/dist/SpringBones.d.ts.map +1 -1
- package/dist/SpringBones.js +593 -49
- package/dist/SpringBones.js.map +1 -1
- package/dist/browser-index.d.ts +1 -1
- package/dist/browser-index.d.ts.map +1 -1
- package/dist/browser-index.js +1 -1
- package/dist/browser-index.js.map +1 -1
- package/dist/contracts/index.d.ts +2 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +7 -0
- package/dist/contracts/index.js.map +1 -0
- package/dist/contracts/pose.d.ts +25 -0
- package/dist/contracts/pose.d.ts.map +1 -0
- package/dist/contracts/pose.js +41 -0
- package/dist/contracts/pose.js.map +1 -0
- package/dist/experimental/CrowdAnimation.d.ts +13 -0
- package/dist/experimental/CrowdAnimation.d.ts.map +1 -0
- package/dist/experimental/CrowdAnimation.js +14 -0
- package/dist/experimental/CrowdAnimation.js.map +1 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lanes/index.d.ts +17 -0
- package/dist/lanes/index.d.ts.map +1 -0
- package/dist/lanes/index.js +17 -0
- package/dist/lanes/index.js.map +1 -0
- package/dist/lanes/prd01.d.ts +6 -0
- package/dist/lanes/prd01.d.ts.map +1 -0
- package/dist/lanes/prd01.js +6 -0
- package/dist/lanes/prd01.js.map +1 -0
- package/dist/lanes/prd02.d.ts +6 -0
- package/dist/lanes/prd02.d.ts.map +1 -0
- package/dist/lanes/prd02.js +6 -0
- package/dist/lanes/prd02.js.map +1 -0
- package/dist/lanes/prd03.d.ts +6 -0
- package/dist/lanes/prd03.d.ts.map +1 -0
- package/dist/lanes/prd03.js +6 -0
- package/dist/lanes/prd03.js.map +1 -0
- package/dist/lanes/prd04.d.ts +6 -0
- package/dist/lanes/prd04.d.ts.map +1 -0
- package/dist/lanes/prd04.js +6 -0
- package/dist/lanes/prd04.js.map +1 -0
- package/dist/lanes/prd05.d.ts +6 -0
- package/dist/lanes/prd05.d.ts.map +1 -0
- package/dist/lanes/prd05.js +6 -0
- package/dist/lanes/prd05.js.map +1 -0
- package/dist/lanes/prd06.d.ts +37 -0
- package/dist/lanes/prd06.d.ts.map +1 -0
- package/dist/lanes/prd06.js +26 -0
- package/dist/lanes/prd06.js.map +1 -0
- package/dist/lanes/prd07.d.ts +6 -0
- package/dist/lanes/prd07.d.ts.map +1 -0
- package/dist/lanes/prd07.js +6 -0
- package/dist/lanes/prd07.js.map +1 -0
- package/dist/lanes/prd08.d.ts +6 -0
- package/dist/lanes/prd08.d.ts.map +1 -0
- package/dist/lanes/prd08.js +6 -0
- package/dist/lanes/prd08.js.map +1 -0
- package/dist/lanes/prd09.d.ts +6 -0
- package/dist/lanes/prd09.d.ts.map +1 -0
- package/dist/lanes/prd09.js +6 -0
- package/dist/lanes/prd09.js.map +1 -0
- package/dist/lanes/prd10.d.ts +6 -0
- package/dist/lanes/prd10.d.ts.map +1 -0
- package/dist/lanes/prd10.js +6 -0
- package/dist/lanes/prd10.js.map +1 -0
- package/dist/lanes/prd11.d.ts +6 -0
- package/dist/lanes/prd11.d.ts.map +1 -0
- package/dist/lanes/prd11.js +6 -0
- package/dist/lanes/prd11.js.map +1 -0
- package/dist/lanes/prd12.d.ts +6 -0
- package/dist/lanes/prd12.d.ts.map +1 -0
- package/dist/lanes/prd12.js +6 -0
- package/dist/lanes/prd12.js.map +1 -0
- package/dist/lanes/prd13.d.ts +6 -0
- package/dist/lanes/prd13.d.ts.map +1 -0
- package/dist/lanes/prd13.js +6 -0
- package/dist/lanes/prd13.js.map +1 -0
- package/dist/lanes/prd14.d.ts +6 -0
- package/dist/lanes/prd14.d.ts.map +1 -0
- package/dist/lanes/prd14.js +6 -0
- package/dist/lanes/prd14.js.map +1 -0
- package/dist/lanes/prd15.d.ts +6 -0
- package/dist/lanes/prd15.d.ts.map +1 -0
- package/dist/lanes/prd15.js +6 -0
- package/dist/lanes/prd15.js.map +1 -0
- package/dist/pose/BoneMask.d.ts +39 -0
- package/dist/pose/BoneMask.d.ts.map +1 -0
- package/dist/pose/BoneMask.js +160 -0
- package/dist/pose/BoneMask.js.map +1 -0
- package/dist/pose/CcdIkConstraint.d.ts +38 -0
- package/dist/pose/CcdIkConstraint.d.ts.map +1 -0
- package/dist/pose/CcdIkConstraint.js +198 -0
- package/dist/pose/CcdIkConstraint.js.map +1 -0
- package/dist/pose/CompiledClip.d.ts +48 -0
- package/dist/pose/CompiledClip.d.ts.map +1 -0
- package/dist/pose/CompiledClip.js +209 -0
- package/dist/pose/CompiledClip.js.map +1 -0
- package/dist/pose/LookAtConstraint.d.ts +48 -0
- package/dist/pose/LookAtConstraint.d.ts.map +1 -0
- package/dist/pose/LookAtConstraint.js +251 -0
- package/dist/pose/LookAtConstraint.js.map +1 -0
- package/dist/pose/MotionMetrics.d.ts +136 -0
- package/dist/pose/MotionMetrics.d.ts.map +1 -0
- package/dist/pose/MotionMetrics.js +253 -0
- package/dist/pose/MotionMetrics.js.map +1 -0
- package/dist/pose/PoseBuffer.d.ts +23 -0
- package/dist/pose/PoseBuffer.d.ts.map +1 -0
- package/dist/pose/PoseBuffer.js +48 -0
- package/dist/pose/PoseBuffer.js.map +1 -0
- package/dist/pose/PoseInertializer.d.ts +38 -0
- package/dist/pose/PoseInertializer.d.ts.map +1 -0
- package/dist/pose/PoseInertializer.js +208 -0
- package/dist/pose/PoseInertializer.js.map +1 -0
- package/dist/pose/PoseMixer.d.ts +256 -0
- package/dist/pose/PoseMixer.d.ts.map +1 -0
- package/dist/pose/PoseMixer.js +848 -0
- package/dist/pose/PoseMixer.js.map +1 -0
- package/dist/pose/Retarget.d.ts +77 -0
- package/dist/pose/Retarget.d.ts.map +1 -0
- package/dist/pose/Retarget.js +378 -0
- package/dist/pose/Retarget.js.map +1 -0
- package/dist/pose/RetargetCache.d.ts +21 -0
- package/dist/pose/RetargetCache.d.ts.map +1 -0
- package/dist/pose/RetargetCache.js +102 -0
- package/dist/pose/RetargetCache.js.map +1 -0
- package/dist/pose/RetargetWorker.d.ts +21 -0
- package/dist/pose/RetargetWorker.d.ts.map +1 -0
- package/dist/pose/RetargetWorker.js +56 -0
- package/dist/pose/RetargetWorker.js.map +1 -0
- package/dist/pose/SkeletonBinding.d.ts +55 -0
- package/dist/pose/SkeletonBinding.d.ts.map +1 -0
- package/dist/pose/SkeletonBinding.js +62 -0
- package/dist/pose/SkeletonBinding.js.map +1 -0
- package/dist/pose/blendKernels.d.ts +32 -0
- package/dist/pose/blendKernels.d.ts.map +1 -0
- package/dist/pose/blendKernels.js +101 -0
- package/dist/pose/blendKernels.js.map +1 -0
- package/dist/pose/makeClipAdditive.d.ts +22 -0
- package/dist/pose/makeClipAdditive.d.ts.map +1 -0
- package/dist/pose/makeClipAdditive.js +101 -0
- package/dist/pose/makeClipAdditive.js.map +1 -0
- package/dist/pose/poseMixerFlags.d.ts +18 -0
- package/dist/pose/poseMixerFlags.d.ts.map +1 -0
- package/dist/pose/poseMixerFlags.js +30 -0
- package/dist/pose/poseMixerFlags.js.map +1 -0
- package/dist/pose/quatFlat.d.ts +16 -0
- package/dist/pose/quatFlat.d.ts.map +1 -0
- package/dist/pose/quatFlat.js +88 -0
- package/dist/pose/quatFlat.js.map +1 -0
- package/dist/pose/retarget.worker.d.ts +25 -0
- package/dist/pose/retarget.worker.d.ts.map +1 -0
- package/dist/pose/retarget.worker.js +22 -0
- package/dist/pose/retarget.worker.js.map +1 -0
- package/package.json +14 -2
package/dist/FootIk.js
CHANGED
|
@@ -84,7 +84,7 @@ export function createFootIkRig(options) {
|
|
|
84
84
|
let deepestCorrection = 0;
|
|
85
85
|
for (const leg of legs) {
|
|
86
86
|
const lock = lockFor(leg.side);
|
|
87
|
-
const result = solveLeg(leg, lock, raycaster, { ankleHeight, rayStartHeight, maxRayDistance, plantThreshold });
|
|
87
|
+
const result = solveLeg(leg, lock, raycaster, { ankleHeight: leg.ankleHeight ?? ankleHeight, rayStartHeight, maxRayDistance, plantThreshold });
|
|
88
88
|
solved.push(result);
|
|
89
89
|
// Stance legs only: a swing foot hangs above its ground target by design, and its
|
|
90
90
|
// "correction" would inflate the pelvis drop and bury the planted feet.
|
|
@@ -134,7 +134,18 @@ function solveLeg(leg, lock, raycaster, params) {
|
|
|
134
134
|
}
|
|
135
135
|
const groundTargetY = ground.point[1] + params.ankleHeight;
|
|
136
136
|
const heightAboveGround = sourceAnkle[1] - groundTargetY;
|
|
137
|
-
const inStance = heightAboveGround <= params.plantThreshold;
|
|
137
|
+
const inStance = leg.contact ?? (heightAboveGround <= params.plantThreshold);
|
|
138
|
+
if (lock.locked && lock.supportId !== leg.support?.id)
|
|
139
|
+
lock.locked = false;
|
|
140
|
+
if (lock.locked && leg.support) {
|
|
141
|
+
if (leg.support.delta.some(value => !Number.isFinite(value)))
|
|
142
|
+
throw new Error("Foot support displacement must be finite.");
|
|
143
|
+
lock.lockedPosition = [
|
|
144
|
+
lock.lockedPosition[0] + leg.support.delta[0],
|
|
145
|
+
lock.lockedPosition[1] + leg.support.delta[1],
|
|
146
|
+
lock.lockedPosition[2] + leg.support.delta[2]
|
|
147
|
+
];
|
|
148
|
+
}
|
|
138
149
|
const platformTop = readPlatformTop(raycaster, sourceAnkle);
|
|
139
150
|
// The winning surface is the platform exactly when its top matches the raycast hit.
|
|
140
151
|
const overPlatform = platformTop !== undefined && platformTop >= ground.point[1] - 1e-6;
|
|
@@ -145,6 +156,7 @@ function solveLeg(leg, lock, raycaster, params) {
|
|
|
145
156
|
lock.locked = true;
|
|
146
157
|
lock.lockedPosition = [sourceAnkle[0], groundTargetY, sourceAnkle[2]];
|
|
147
158
|
lock.onPlatform = overPlatform;
|
|
159
|
+
lock.supportId = leg.support?.id;
|
|
148
160
|
}
|
|
149
161
|
else if (lock.onPlatform) {
|
|
150
162
|
if (overPlatform && platformTop !== undefined) {
|
|
@@ -171,9 +183,11 @@ function solveLeg(leg, lock, raycaster, params) {
|
|
|
171
183
|
root: leg.hip,
|
|
172
184
|
mid: leg.knee,
|
|
173
185
|
end: leg.ankle,
|
|
174
|
-
target
|
|
186
|
+
// Blend the target before solving; interpolating solved knee/ankle positions
|
|
187
|
+
// shortens the bones during swing blending.
|
|
188
|
+
target: [sourceAnkle[0] + (target[0] - sourceAnkle[0]) * weight, sourceAnkle[1] + (target[1] - sourceAnkle[1]) * weight, sourceAnkle[2] + (target[2] - sourceAnkle[2]) * weight],
|
|
175
189
|
pole: leg.pole,
|
|
176
|
-
weight
|
|
190
|
+
weight: 1
|
|
177
191
|
});
|
|
178
192
|
const verticalCorrection = round(sourceAnkle[1] - target[1]);
|
|
179
193
|
const targetError = round(solved.endDistanceToTarget);
|
|
@@ -199,8 +213,8 @@ function solveLeg(leg, lock, raycaster, params) {
|
|
|
199
213
|
* Second IK pass for legs the pelvis drop serves. Phase one solves from the animated hip
|
|
200
214
|
* and reports its miss; the drop then lowers the pelvis, and re-solving from the dropped
|
|
201
215
|
* hip lands the foot measurably closer this frame instead of chasing the ground over
|
|
202
|
-
* several.
|
|
203
|
-
*
|
|
216
|
+
* several. Every leg is re-solved after a shared pelvis drop; leaving another knee
|
|
217
|
+
* at its pre-drop position would change its upper segment length. The
|
|
204
218
|
* whole leg translates rigidly (root, mid, end all shift by the drop) so the solver
|
|
205
219
|
* derives the true bone lengths — dropping only the root would shorten the implied reach
|
|
206
220
|
* by exactly the drop and gain nothing. `hip` stays pre-drop — the caller applies
|
|
@@ -213,14 +227,14 @@ function refineOverExtendedLegs(legs, solved, hipOffset) {
|
|
|
213
227
|
for (let index = 0; index < solved.length; index += 1) {
|
|
214
228
|
const result = solved[index];
|
|
215
229
|
const leg = legs[index];
|
|
216
|
-
if (!result || !leg
|
|
230
|
+
if (!result || !leg)
|
|
217
231
|
continue;
|
|
218
232
|
const drop = (value) => [value[0], value[1] + hipOffset, value[2]];
|
|
219
233
|
const refined = solveTwoBoneIk({
|
|
220
234
|
root: drop(leg.hip),
|
|
221
235
|
mid: drop(leg.knee),
|
|
222
236
|
end: drop(leg.ankle),
|
|
223
|
-
target: result.sample.plantedFoot,
|
|
237
|
+
target: result.locked ? result.sample.plantedFoot : result.ankle,
|
|
224
238
|
pole: leg.pole,
|
|
225
239
|
weight: 1
|
|
226
240
|
});
|
|
@@ -236,10 +250,212 @@ function refineOverExtendedLegs(legs, solved, hipOffset) {
|
|
|
236
250
|
function clamp(value, min, max) {
|
|
237
251
|
return Math.max(min, Math.min(max, value));
|
|
238
252
|
}
|
|
253
|
+
/** Column-major affine mat4 × point (w divide for non-TRS safety). */
|
|
254
|
+
function mulMat4Point(m, p) {
|
|
255
|
+
const x = p[0], y = p[1], z = p[2];
|
|
256
|
+
const w = m[3] * x + m[7] * y + m[11] * z + m[15] || 1;
|
|
257
|
+
return [
|
|
258
|
+
(m[0] * x + m[4] * y + m[8] * z + m[12]) / w,
|
|
259
|
+
(m[1] * x + m[5] * y + m[9] * z + m[13]) / w,
|
|
260
|
+
(m[2] * x + m[6] * y + m[10] * z + m[14]) / w
|
|
261
|
+
];
|
|
262
|
+
}
|
|
239
263
|
function round(value) {
|
|
240
264
|
return Number(value.toFixed(4));
|
|
241
265
|
}
|
|
242
266
|
function roundVec(value) {
|
|
243
267
|
return [round(value[0]), round(value[1]), round(value[2])];
|
|
244
268
|
}
|
|
269
|
+
// ---------------------------------------------------------------------------
|
|
270
|
+
// T3.2 — pose-space foot-IK constraint (`FootIkConstraintSpec`, PRD-06 §7.1):
|
|
271
|
+
// consumes `solveTwoBoneIkRotations` directly on a PoseBuffer instead of the
|
|
272
|
+
// legacy position-space leg input. Pelvis offset is the MINIMUM of the
|
|
273
|
+
// per-foot ground deltas (each grounded foot's required vertical correction),
|
|
274
|
+
// clamped to `maxPelvisDrop` — replaces the legacy fixed `hipDropFactor`
|
|
275
|
+
// (0.72) on this path. Foot tilt aligns the foot bone's up axis to the ground
|
|
276
|
+
// normal, capped at `maxFootTiltDeg` (default 35°).
|
|
277
|
+
// ---------------------------------------------------------------------------
|
|
278
|
+
import { solveTwoBoneIkRotations } from "./IK.js";
|
|
279
|
+
function fkFrame(pose, skeleton, joint) {
|
|
280
|
+
const rot = [pose.rotations[joint * 4], pose.rotations[joint * 4 + 1], pose.rotations[joint * 4 + 2], pose.rotations[joint * 4 + 3]];
|
|
281
|
+
const scl = [pose.scales[joint * 3], pose.scales[joint * 3 + 1], pose.scales[joint * 3 + 2]];
|
|
282
|
+
const pos = [pose.positions[joint * 3], pose.positions[joint * 3 + 1], pose.positions[joint * 3 + 2]];
|
|
283
|
+
const parent = skeleton.parentIndices[joint] ?? -1;
|
|
284
|
+
if (parent < 0 || parent >= skeleton.boneCount || parent === joint) {
|
|
285
|
+
return { position: pos, rotation: rot, scale: scl };
|
|
286
|
+
}
|
|
287
|
+
const pf = fkFrame(pose, skeleton, parent);
|
|
288
|
+
const scaled = [pos[0] * pf.scale[0], pos[1] * pf.scale[1], pos[2] * pf.scale[2]];
|
|
289
|
+
const rotated = rotateVec3(pf.rotation, scaled);
|
|
290
|
+
return {
|
|
291
|
+
position: [pf.position[0] + rotated[0], pf.position[1] + rotated[1], pf.position[2] + rotated[2]],
|
|
292
|
+
rotation: multiplyQuat(pf.rotation, rot),
|
|
293
|
+
scale: [pf.scale[0] * scl[0], pf.scale[1] * scl[1], pf.scale[2] * scl[2]]
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
function rotateVec3(q, v) {
|
|
297
|
+
const [x, y, z, w] = q;
|
|
298
|
+
const tx = 2 * (y * v[2] - z * v[1]);
|
|
299
|
+
const ty = 2 * (z * v[0] - x * v[2]);
|
|
300
|
+
const tz = 2 * (x * v[1] - y * v[0]);
|
|
301
|
+
return [v[0] + w * tx + (y * tz - z * ty), v[1] + w * ty + (z * tx - x * tz), v[2] + w * tz + (x * ty - y * tx)];
|
|
302
|
+
}
|
|
303
|
+
function multiplyQuat(a, b) {
|
|
304
|
+
const [ax, ay, az, aw] = a;
|
|
305
|
+
const [bx, by, bz, bw] = b;
|
|
306
|
+
return [
|
|
307
|
+
ax * bw + aw * bx + ay * bz - az * by,
|
|
308
|
+
ay * bw + aw * by + az * bx - ax * bz,
|
|
309
|
+
az * bw + aw * bz + ax * by - ay * bx,
|
|
310
|
+
aw * bw - ax * bx - ay * by - az * bz
|
|
311
|
+
];
|
|
312
|
+
}
|
|
313
|
+
function quatFromUnitVectors(from, to) {
|
|
314
|
+
const d = Math.max(-1, Math.min(1, from[0] * to[0] + from[1] * to[1] + from[2] * to[2]));
|
|
315
|
+
if (d > 1 - 1e-9)
|
|
316
|
+
return [0, 0, 0, 1];
|
|
317
|
+
if (d < -1 + 1e-9) {
|
|
318
|
+
const axis = Math.abs(from[0]) < 0.9 ? [1, 0, 0] : [0, 1, 0];
|
|
319
|
+
const c = [
|
|
320
|
+
from[1] * axis[2] - from[2] * axis[1],
|
|
321
|
+
from[2] * axis[0] - from[0] * axis[2],
|
|
322
|
+
from[0] * axis[1] - from[1] * axis[0]
|
|
323
|
+
];
|
|
324
|
+
const l = Math.hypot(c[0], c[1], c[2]) || 1;
|
|
325
|
+
return [c[0] / l, c[1] / l, c[2] / l, 0];
|
|
326
|
+
}
|
|
327
|
+
const c = [
|
|
328
|
+
from[1] * to[2] - from[2] * to[1],
|
|
329
|
+
from[2] * to[0] - from[0] * to[2],
|
|
330
|
+
from[0] * to[1] - from[1] * to[0]
|
|
331
|
+
];
|
|
332
|
+
const w = Math.sqrt((1 + d) / 2);
|
|
333
|
+
const s = 1 / (2 * w);
|
|
334
|
+
return [c[0] * s, c[1] * s, c[2] * s, w];
|
|
335
|
+
}
|
|
336
|
+
function axisAngle(axis, radians) {
|
|
337
|
+
const half = radians / 2;
|
|
338
|
+
const s = Math.sin(half);
|
|
339
|
+
return [axis[0] * s, axis[1] * s, axis[2] * s, Math.cos(half)];
|
|
340
|
+
}
|
|
341
|
+
function jointIndex(skeleton, name) {
|
|
342
|
+
const indices = skeleton.jointIndicesByName.get(name);
|
|
343
|
+
if (!indices || indices.length === 0)
|
|
344
|
+
throw new Error(`FootIkConstraint: unknown bone "${name}".`);
|
|
345
|
+
return indices[0];
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* T3.2 — evaluate a foot-IK constraint on a pose: for each leg, raycast the
|
|
349
|
+
* ground under the ankle, drop the pelvis by the deepest required correction
|
|
350
|
+
* (min of per-foot deltas, clamped to `maxPelvisDrop`), solve each leg's
|
|
351
|
+
* rotations toward `ground.point + normal * ankleHeight`, then tilt each foot
|
|
352
|
+
* bone toward the ground normal capped at `maxFootTiltDeg`.
|
|
353
|
+
*
|
|
354
|
+
* Returns per-leg telemetry (grounded, correction applied, tilt degrees) for
|
|
355
|
+
* the §17.3 foot-surface diagnostic.
|
|
356
|
+
*/
|
|
357
|
+
export function solveFootIkConstraint(pose, skeleton, modelMatrix, spec) {
|
|
358
|
+
const ankleHeightDefault = 0.035;
|
|
359
|
+
const rayStartHeight = spec.rayStartHeight ?? 0.6;
|
|
360
|
+
const maxRayDistance = spec.maxRayDistance ?? 2;
|
|
361
|
+
const plantThreshold = spec.plantThreshold ?? 0.02;
|
|
362
|
+
const maxPelvisDrop = spec.maxPelvisDrop ?? 0.4;
|
|
363
|
+
const maxFootTiltDeg = spec.maxFootTiltDeg ?? 35;
|
|
364
|
+
const plans = [];
|
|
365
|
+
for (const [index, leg] of spec.legs.entries()) {
|
|
366
|
+
const ankleIndex = jointIndex(skeleton, leg.tip);
|
|
367
|
+
const ankle = fkFrame(pose, skeleton, ankleIndex).position;
|
|
368
|
+
// Model matrix is applied inside the solver; raycast in MODEL space via
|
|
369
|
+
// world coords — the scene's GroundRaycaster is defined in world space and
|
|
370
|
+
// T3.9 supplies an analytic caster in world units, so keep model space for
|
|
371
|
+
// simple rigs (identity or translation-only model matrices).
|
|
372
|
+
const hit = spec.ground.raycastDown([ankle[0], ankle[1] + rayStartHeight, ankle[2]], rayStartHeight + maxRayDistance);
|
|
373
|
+
if (!hit)
|
|
374
|
+
continue;
|
|
375
|
+
const ankleHeight = leg.ankleHeight ?? ankleHeightDefault;
|
|
376
|
+
const target = [
|
|
377
|
+
hit.point[0] + hit.normal[0] * 0,
|
|
378
|
+
hit.point[1] + hit.normal[1] * ankleHeight,
|
|
379
|
+
hit.point[2] + hit.normal[2] * 0
|
|
380
|
+
// Sole offsets along X/Z by the normal's horizontal part are
|
|
381
|
+
// intentionally ignored — the ankle sits directly over the contact.
|
|
382
|
+
];
|
|
383
|
+
const deltaY = target[1] - ankle[1];
|
|
384
|
+
const grounded = Math.abs(deltaY) <= plantThreshold;
|
|
385
|
+
plans.push({ spec: leg, index, ankleIndex, target, normal: hit.normal, deltaY, grounded });
|
|
386
|
+
}
|
|
387
|
+
if (plans.length === 0)
|
|
388
|
+
return [];
|
|
389
|
+
// Pelvis drop = MINIMUM per-foot delta (deepest needed correction), clamped.
|
|
390
|
+
// The correction is expressed in pose space; the pelvis node's local
|
|
391
|
+
// translation lives in its parent frame, whose up axis need not be +Y and
|
|
392
|
+
// whose units need not be pose units (e.g. cm under a scaled glTF root) —
|
|
393
|
+
// map (0, drop, 0) through the parent frame's inverse rotation and scale.
|
|
394
|
+
if (spec.pelvis) {
|
|
395
|
+
const pelvisIndex = jointIndex(skeleton, spec.pelvis);
|
|
396
|
+
const minDelta = Math.min(0, ...plans.map((plan) => plan.deltaY));
|
|
397
|
+
const drop = Math.max(-maxPelvisDrop, minDelta);
|
|
398
|
+
if (drop !== 0) {
|
|
399
|
+
const parentIndex = skeleton.parentIndices[pelvisIndex] ?? -1;
|
|
400
|
+
const parentFrame = parentIndex >= 0 && parentIndex < skeleton.boneCount ? fkFrame(pose, skeleton, parentIndex) : undefined;
|
|
401
|
+
if (parentFrame !== undefined) {
|
|
402
|
+
const invRot = [-parentFrame.rotation[0], -parentFrame.rotation[1], -parentFrame.rotation[2], parentFrame.rotation[3]];
|
|
403
|
+
const dir = rotateVec3(invRot, [0, drop, 0]);
|
|
404
|
+
const sx = parentFrame.scale[0] || 1, sy = parentFrame.scale[1] || 1, sz = parentFrame.scale[2] || 1;
|
|
405
|
+
pose.positions[pelvisIndex * 3] = pose.positions[pelvisIndex * 3] + dir[0] / sx;
|
|
406
|
+
pose.positions[pelvisIndex * 3 + 1] = pose.positions[pelvisIndex * 3 + 1] + dir[1] / sy;
|
|
407
|
+
pose.positions[pelvisIndex * 3 + 2] = pose.positions[pelvisIndex * 3 + 2] + dir[2] / sz;
|
|
408
|
+
}
|
|
409
|
+
else {
|
|
410
|
+
pose.positions[pelvisIndex * 3 + 1] = pose.positions[pelvisIndex * 3 + 1] + drop;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
// Pass 2 — solve legs + tilt feet.
|
|
415
|
+
const results = [];
|
|
416
|
+
for (const plan of plans) {
|
|
417
|
+
if (spec.lockOnContact && plan.grounded) {
|
|
418
|
+
results.push({ leg: plan.index, grounded: true, verticalCorrection: 0, tiltDeg: 0 });
|
|
419
|
+
continue;
|
|
420
|
+
}
|
|
421
|
+
// `solveTwoBoneIkRotations` takes a WORLD-space target (it maps the target
|
|
422
|
+
// back to model space via invertTRS(modelMatrix)); `plan.target` is model
|
|
423
|
+
// space — lift it to world or the mount transform is applied twice and the
|
|
424
|
+
// ankle aims past the real terrain.
|
|
425
|
+
solveTwoBoneIkRotations(pose, skeleton, modelMatrix, plan.spec, mulMat4Point(modelMatrix, plan.target));
|
|
426
|
+
// Foot tilt: rotate the tip bone so its local +Y (sole normal) matches the
|
|
427
|
+
// ground normal, capped at maxFootTiltDeg — applied in the tip's parent frame.
|
|
428
|
+
const frame = fkFrame(pose, skeleton, plan.ankleIndex);
|
|
429
|
+
const up = rotateVec3(frame.rotation, [0, 1, 0]);
|
|
430
|
+
const tiltQ = quatFromUnitVectors(up, plan.normal);
|
|
431
|
+
const tiltAngle = Math.acos(Math.max(-1, Math.min(1, tiltQ[3]))) * 2 * (180 / Math.PI);
|
|
432
|
+
const capped = Math.min(tiltAngle, maxFootTiltDeg);
|
|
433
|
+
if (capped > 1e-4 && tiltAngle > 1e-4) {
|
|
434
|
+
const axis = [
|
|
435
|
+
up[1] * plan.normal[2] - up[2] * plan.normal[1],
|
|
436
|
+
up[2] * plan.normal[0] - up[0] * plan.normal[2],
|
|
437
|
+
up[0] * plan.normal[1] - up[1] * plan.normal[0]
|
|
438
|
+
];
|
|
439
|
+
const axisLen = Math.hypot(axis[0], axis[1], axis[2]);
|
|
440
|
+
if (axisLen > 1e-6) {
|
|
441
|
+
const nAxis = [axis[0] / axisLen, axis[1] / axisLen, axis[2] / axisLen];
|
|
442
|
+
const applied = axisAngle(nAxis, (capped * Math.PI) / 180);
|
|
443
|
+
const newWorld = multiplyQuat(applied, frame.rotation);
|
|
444
|
+
const parent = skeleton.parentIndices[plan.ankleIndex] ?? -1;
|
|
445
|
+
const parentRot = parent >= 0
|
|
446
|
+
? fkFrame(pose, skeleton, parent).rotation
|
|
447
|
+
: [0, 0, 0, 1];
|
|
448
|
+
const inv = [-parentRot[0], -parentRot[1], -parentRot[2], parentRot[3]];
|
|
449
|
+
const local = multiplyQuat(inv, newWorld);
|
|
450
|
+
const l = Math.hypot(local[0], local[1], local[2], local[3]) || 1;
|
|
451
|
+
pose.rotations[plan.ankleIndex * 4] = local[0] / l;
|
|
452
|
+
pose.rotations[plan.ankleIndex * 4 + 1] = local[1] / l;
|
|
453
|
+
pose.rotations[plan.ankleIndex * 4 + 2] = local[2] / l;
|
|
454
|
+
pose.rotations[plan.ankleIndex * 4 + 3] = local[3] / l;
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
results.push({ leg: plan.index, grounded: false, verticalCorrection: plan.deltaY, tiltDeg: Math.min(tiltAngle, maxFootTiltDeg) });
|
|
458
|
+
}
|
|
459
|
+
return results;
|
|
460
|
+
}
|
|
245
461
|
//# sourceMappingURL=FootIk.js.map
|
package/dist/FootIk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FootIk.js","sourceRoot":"","sources":["../../../../packages/animation/src/FootIk.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAC/F,oGAAoG;AACpG,+FAA+F;AAC/F,kGAAkG;AAClG,kDAAkD;AAClD,EAAE;AACF,qGAAqG;AACrG,8FAA8F;AAC9F,mGAAmG;AACnG,kEAAkE;AAElE,OAAO,EAAE,cAAc,EAAwB,MAAM,SAAS,CAAC;AA0B/D;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,QAAqE;IAC3G,OAAO;QACL,WAAW,CAAC,MAAY,EAAE,WAAmB;YAC3C,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;YACpC,IAAI,QAAQ,GAAG,CAAC,IAAI,QAAQ,GAAG,WAAW;gBAAE,OAAO,SAAS,CAAC;YAC7D,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC;QAC1F,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACxC,IAAqB,EACrB,gBAA8D;IAE9D,OAAO;QACL,WAAW,CAAC,MAAY,EAAE,WAAmB;YAC3C,MAAM,cAAc,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACtD,IAAI,cAAc,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC;YACjD,MAAM,gBAAgB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;YACpD,IAAI,gBAAgB,GAAG,CAAC,IAAI,gBAAgB,GAAG,WAAW;gBAAE,OAAO,OAAO,CAAC;YAC3E,IAAI,CAAC,OAAO,IAAI,gBAAgB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrD,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;YAC1G,CAAC;YACD,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,gBAAgB,CAAC,CAAS,EAAE,CAAS;YACnC,OAAO,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC;AAqDD,sFAAsF;AACtF,SAAS,eAAe,CAAC,SAA0B,EAAE,IAAU;IAC7D,MAAM,KAAK,GAAG,SAAoF,CAAC;IACnG,IAAI,OAAO,KAAK,CAAC,gBAAgB,KAAK,UAAU;QAAE,OAAO,SAAS,CAAC;IACnE,OAAO,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAeD,wFAAwF;AACxF,MAAM,UAAU,eAAe,CAAC,OAAyB;IACvD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,KAAK,CAAC;IACjD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,GAAG,CAAC;IACrD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,CAAC;IACnD,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IACpD,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkC,CAAC;IAExD,SAAS,OAAO,CAAC,IAAsB;QACrC,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;YACxE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO;QACL,kBAAkB,CAAC,IAAI,EAAE,WAAW;YAClC,MAAM,SAAS,GAAG,WAAW,IAAI,OAAO,CAAC,SAAS,CAAC;YACnD,IAAI,IAAI,EAAE,IAAI;gBAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACjC,MAAM,MAAM,GAAgB,EAAE,CAAC;YAC/B,IAAI,iBAAiB,GAAG,CAAC,CAAC;YAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC,CAAC;gBAC/G,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpB,kFAAkF;gBAClF,wEAAwE;gBACxE,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;oBAC3B,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,iBAAiB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;gBACjG,CAAC;YACH,CAAC;YACD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,iBAAiB,GAAG,aAAa,CAAC,CAAC;YAC5D,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;YACxE,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,KAAK,CAAC;gBAC5C,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACxF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;QACvE,CAAC;QACD,QAAQ,CAAC,IAAI;YACX,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC;QAC1C,CAAC;QACD,KAAK;YACH,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,CAAC;KACF,CAAC;AACJ,CAAC;AASD,SAAS,QAAQ,CAAC,GAAiB,EAAE,IAAkB,EAAE,SAA0B,EAAE,MAAmB;IACtG,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC;IAC9B,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAClC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,EACxE,MAAM,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,CAC9C,CAAC;IAEF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,kGAAkG;QAClG,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE;gBACN,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,UAAU,EAAE,WAAW;gBACvB,WAAW,EAAE,WAAW;gBACxB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;gBACvB,QAAQ,EAAE,KAAK;gBACf,kBAAkB,EAAE,CAAC;gBACrB,WAAW,EAAE,CAAC;aACf;YACD,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;IAC3D,MAAM,iBAAiB,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;IACzD,MAAM,QAAQ,GAAG,iBAAiB,IAAI,MAAM,CAAC,cAAc,CAAC;IAC5D,MAAM,WAAW,GAAG,eAAe,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,oFAAoF;IACpF,MAAM,YAAY,GAAG,WAAW,KAAK,SAAS,IAAI,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAExF,IAAI,MAAY,CAAC;IACjB,IAAI,QAAQ,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,oEAAoE;YACpE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,IAAI,CAAC,cAAc,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC;QACjC,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC3B,IAAI,YAAY,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9C,4EAA4E;gBAC5E,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;YAC3G,CAAC;iBAAM,CAAC;gBACN,yFAAyF;gBACzF,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,2FAA2F;QAC3F,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,CAAC;SAAM,CAAC;QACN,6EAA6E;QAC7E,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,MAAM,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;IAED,kGAAkG;IAClG,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,iBAAiB,GAAG,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,MAAM,GAAoB,cAAc,CAAC;QAC7C,IAAI,EAAE,GAAG,CAAC,GAAG;QACb,GAAG,EAAE,GAAG,CAAC,IAAI;QACb,GAAG,EAAE,GAAG,CAAC,KAAK;QACd,MAAM;QACN,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACtD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE;YACN,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC;YACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC;YAC7B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;YACrC,QAAQ,EAAE,QAAQ;YAClB,kBAAkB;YAClB,WAAW;SACZ;QACD,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC;QAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,sBAAsB,CAAC,IAA6B,EAAE,MAAmB,EAAE,SAAiB;IACnG,IAAI,SAAS,IAAI,CAAC;QAAE,OAAO;IAC3B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC;YAAE,SAAS;QACvE,MAAM,IAAI,GAAG,CAAC,KAAW,EAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/E,MAAM,OAAO,GAAG,cAAc,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACnB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW;YACjC,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,GAAG;YACd,GAAG,MAAM;YACT,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC3B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;YAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE;SAC9E,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,KAAa,EAAE,GAAW,EAAE,GAAW;IACpD,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,QAAQ,CAAC,KAAW;IAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,CAAC"}
|
|
1
|
+
{"version":3,"file":"FootIk.js","sourceRoot":"","sources":["../../../../packages/animation/src/FootIk.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,6 +91,9 @@ export interface HumanoidBoneRetargetBinding {
|
|
|
91
91
|
readonly sourceRest?: AnimationQuaternion;
|
|
92
92
|
/** Target rig rest-pose local rotation for this bone (identity when unknown). */
|
|
93
93
|
readonly targetRest?: AnimationQuaternion;
|
|
94
|
+
/** Source and target local bind translations, captured so animated translation deltas can be rebased. */
|
|
95
|
+
readonly sourceRestPosition?: AnimationVector3;
|
|
96
|
+
readonly targetRestPosition?: AnimationVector3;
|
|
94
97
|
}
|
|
95
98
|
export interface HumanoidRetargetingMap {
|
|
96
99
|
readonly sourceRigId: string;
|
|
@@ -143,8 +146,9 @@ export declare function createHumanoidRetargetingMap(source: HumanoidRigDefiniti
|
|
|
143
146
|
* `F` that carries the source facing axis onto the target facing axis: `Rt_hips = F · Rt_hips`.
|
|
144
147
|
* This only touches the root so child bones inherit the reframe through the hierarchy.
|
|
145
148
|
*
|
|
146
|
-
* 3. Position / hip-height scaling
|
|
147
|
-
* bone
|
|
149
|
+
* 3. Position / hip-height scaling: the animated displacement from the source local bind
|
|
150
|
+
* translation is scaled by the bone length ratio and rebased on the target local bind
|
|
151
|
+
* translation. Optional root motion is scaled by the average bone scale.
|
|
148
152
|
*
|
|
149
153
|
* The signature and return type are unchanged.
|
|
150
154
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HumanoidRetargeting.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/HumanoidRetargeting.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"HumanoidRetargeting.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/HumanoidRetargeting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,cAAc,mTAuBjB,CAAC;AAEX,MAAM,MAAM,gBAAgB,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,aAAa,GAAG,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEpF,eAAO,MAAM,uBAAuB,EAAE,SAAS,gBAAgB,EAgB9D,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IACxC,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,qCAAqC,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,QAAQ,EAAE,qCAAqC,CAAC;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;CAChE;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAC3C,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAC;IAC1C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC;CAC/C;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,0BAA0B;IACzC,yFAAyF;IACzF,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;IAClE;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAC1C,6FAA6F;IAC7F,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,EAAE,MAAM,CAAC,MAAM,EAAE,0BAA0B,CAAM,CAAC;AAE5F,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,0BAA0B,GAAG,IAAI,CAG5F;AAsCD,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,mBAAmB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,iFAAiF;IACjF,QAAQ,CAAC,UAAU,CAAC,EAAE,mBAAmB,CAAC;IAC1C,yGAAyG;IACzG,QAAQ,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;IAC/C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,gBAAgB,CAAC;CAChD;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC,CAAC;IAClF,QAAQ,CAAC,WAAW,EAAE,SAAS,6BAA6B,EAAE,CAAC;IAC/D,0FAA0F;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;IACzC,0FAA0F;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,EAAE,YAAY,CAAC;CAC1C;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,0BAA0B,CAAC,EAAE,OAAO,CAAC;IAC9C,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAC5C,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,WAAW,mCAAoC,SAAQ,0BAA0B;IACrF,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,oBAAoB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClD,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,uCAAwC,SAAQ,sBAAsB;IACrF,QAAQ,CAAC,IAAI,EAAE,4CAA4C,CAAC;IAC5D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,qBAAqB,EAC1B,OAAO,GAAE,0BAA+B,GACvC,sBAAsB,CA0IxB;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,0BAA+B,GACvC,sBAAsB,CA4ExB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,GAAG,EAAE,sBAAsB,EAC3B,OAAO,GAAE,2BAAgC,GACxC,aAAa,CA4Cf;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,qBAAqB,EAC7B,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,0BAA+B,GACvC,SAAS,6BAA6B,EAAE,CAE1C;AAED,wBAAgB,mCAAmC,CACjD,GAAG,EAAE,qBAAqB,EAC1B,OAAO,GAAE,mCAAwC,GAChD,uCAAuC,CA4CzC"}
|
|
@@ -242,7 +242,9 @@ export function createHumanoidRetargetingMap(source, target, options = {}) {
|
|
|
242
242
|
target: targetBinding,
|
|
243
243
|
scale: applyRetargetingProfileScale(bone, estimateBoneScale(sourceBinding, targetBinding, source.scale, target.scale), options.profile),
|
|
244
244
|
sourceRest: restRotationFor(source, bone, sourceBinding),
|
|
245
|
-
targetRest: restRotationFor(target, bone, targetBinding)
|
|
245
|
+
targetRest: restRotationFor(target, bone, targetBinding),
|
|
246
|
+
sourceRestPosition: restPositionFor(source, bone, sourceBinding),
|
|
247
|
+
targetRestPosition: restPositionFor(target, bone, targetBinding)
|
|
246
248
|
};
|
|
247
249
|
}
|
|
248
250
|
const coverage = mappedBones / HUMANOID_BONES.length;
|
|
@@ -287,8 +289,9 @@ export function createHumanoidRetargetingMap(source, target, options = {}) {
|
|
|
287
289
|
* `F` that carries the source facing axis onto the target facing axis: `Rt_hips = F · Rt_hips`.
|
|
288
290
|
* This only touches the root so child bones inherit the reframe through the hierarchy.
|
|
289
291
|
*
|
|
290
|
-
* 3. Position / hip-height scaling
|
|
291
|
-
* bone
|
|
292
|
+
* 3. Position / hip-height scaling: the animated displacement from the source local bind
|
|
293
|
+
* translation is scaled by the bone length ratio and rebased on the target local bind
|
|
294
|
+
* translation. Optional root motion is scaled by the average bone scale.
|
|
292
295
|
*
|
|
293
296
|
* The signature and return type are unchanged.
|
|
294
297
|
*
|
|
@@ -437,6 +440,10 @@ function restRotationFor(rig, bone, binding) {
|
|
|
437
440
|
return normalizeQuatObj(binding.rotation);
|
|
438
441
|
return IDENTITY_QUAT;
|
|
439
442
|
}
|
|
443
|
+
function restPositionFor(rig, bone, binding) {
|
|
444
|
+
const position = rig.restPose?.[bone]?.position ?? binding.position;
|
|
445
|
+
return position ? { ...position } : { x: 0, y: 0, z: 0 };
|
|
446
|
+
}
|
|
440
447
|
/**
|
|
441
448
|
* Apply rest-pose reconciliation + (root-only) facing alignment + length scaling to one bone.
|
|
442
449
|
* See {@link retargetHumanoidPose} for the math derivation.
|
|
@@ -459,11 +466,14 @@ function retargetBoneTransform(transform, binding, facing) {
|
|
|
459
466
|
// No animated rotation but a facing delta still needs to reframe the root.
|
|
460
467
|
rotation = normalizeQuatObj(multiplyQuat(facing, targetRest));
|
|
461
468
|
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
469
|
+
const sourceRestPosition = binding.sourceRestPosition ?? { x: 0, y: 0, z: 0 };
|
|
470
|
+
const targetRestPosition = binding.targetRestPosition ?? { x: 0, y: 0, z: 0 };
|
|
471
|
+
const position = transform.position ? {
|
|
472
|
+
x: targetRestPosition.x + (transform.position.x - sourceRestPosition.x) * binding.scale,
|
|
473
|
+
y: targetRestPosition.y + (transform.position.y - sourceRestPosition.y) * binding.scale,
|
|
474
|
+
z: targetRestPosition.z + (transform.position.z - sourceRestPosition.z) * binding.scale
|
|
475
|
+
} : undefined;
|
|
476
|
+
return { position, rotation, scale: transform.scale };
|
|
467
477
|
}
|
|
468
478
|
/**
|
|
469
479
|
* Rotation that carries `from` cardinal axis onto `to` cardinal axis (shortest arc). Used to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HumanoidRetargeting.js","sourceRoot":"","sources":["../../../../packages/animation/src/HumanoidRetargeting.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HumanoidRetargeting.js","sourceRoot":"","sources":["../../../../packages/animation/src/HumanoidRetargeting.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM;IACN,OAAO;IACP,OAAO;IACP,YAAY;IACZ,MAAM;IACN,MAAM;IACN,cAAc;IACd,cAAc;IACd,cAAc;IACd,UAAU;IACV,eAAe;IACf,eAAe;IACf,eAAe;IACf,WAAW;IACX,cAAc;IACd,cAAc;IACd,UAAU;IACV,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;IACX,WAAW;CACH,CAAC;AAMX,MAAM,CAAC,MAAM,uBAAuB,GAAgC;IAClE,MAAM;IACN,OAAO;IACP,MAAM;IACN,cAAc;IACd,cAAc;IACd,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;IACX,cAAc;IACd,cAAc;IACd,UAAU;IACV,eAAe;IACf,eAAe;IACf,WAAW;CACZ,CAAC;AA6EF;;;GAGG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAA+C,EAAE,CAAC;AAE5F,MAAM,UAAU,kCAAkC,CAAC,OAAmC;IACpF,IAAI,CAAC,OAAO,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACzF,6BAA6B,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AACzD,CAAC;AAED,MAAM,sBAAsB,GAAgC;IAC1D,cAAc;IACd,eAAe;IACf,cAAc;IACd,eAAe;CAChB,CAAC;AAEF,MAAM,iBAAiB,GAAgC;IACrD,MAAM;IACN,cAAc;IACd,eAAe;CAChB,CAAC;AAEF,SAAS,4BAA4B,CACnC,IAAsB,EACtB,SAAiB,EACjB,OAA+C;IAE/C,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,KAAK,GAAG,SAAS,CAAC;IACtB,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,CAAC,KAAK,oCAAoC,IAAI,IAAI,CAAC,CAAC;QACrG,CAAC;QACD,KAAK,IAAI,OAAO,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,CAAC,uBAAuB,KAAK,SAAS,IAAI,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3F,KAAK,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS,IAAI,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5E,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC;IACjC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAsDD,MAAM,UAAU,kBAAkB,CAChC,GAA0B,EAC1B,UAAsC,EAAE;IAExC,MAAM,WAAW,GAAoC,EAAE,CAAC;IACxD,MAAM,aAAa,GAAgC,OAAO,CAAC,WAAW;QACpE,CAAC,CAAC,CAAC,GAAG,uBAAuB,EAAE,UAAU,EAAE,WAAW,CAAC;QACvD,CAAC,CAAC,uBAAuB,CAAC;IAC5B,IAAI,oBAAoB,GAAG,CAAC,CAAC;IAE7B,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,sCAAsC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,oBAAoB,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QAED,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,2BAA2B,IAAI,eAAe;YACvD,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACzC,WAAW,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,yBAAyB;gBAC/B,OAAO,EAAE,uBAAuB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,kBAAkB;gBAC/E,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACnD,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,8BAA8B;YACpC,OAAO,EAAE,cAAc,IAAI,2CAA2C;YACtE,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,WAAW,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,iCAAiC;gBACvC,OAAO,EAAE,kBAAkB,IAAI,+BAA+B;gBAC9D,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE,CAAC;YAC9F,WAAW,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,8BAA8B;gBACpC,OAAO,EAAE,kBAAkB,IAAI,0BAA0B;gBACzD,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI;aACL,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,WAAW,CAAC,IAAI,CAAC;gBACf,QAAQ,EAAE,SAAS;gBACnB,IAAI,EAAE,iCAAiC;gBACvC,OAAO,EAAE,uCAAuC,IAAI,IAAI;gBACxD,KAAK,EAAE,GAAG,CAAC,EAAE;gBACb,IAAI;aACL,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;QAC/E,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,sDAAsD;YAC/D,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,kBAAkB,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,kBAAkB,EAAE,CAAC;QAClG,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,SAAS;YACnB,IAAI,EAAE,+BAA+B;YACrC,OAAO,EAAE,uBAAuB,GAAG,CAAC,UAAU,gBAAgB,OAAO,CAAC,kBAAkB,IAAI;YAC5F,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,CAAC,aAAa,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC;QAC9E,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,MAAM;YAChB,IAAI,EAAE,yBAAyB;YAC/B,OAAO,EAAE,sBAAsB,GAAG,CAAC,KAAK,gBAAgB,OAAO,CAAC,aAAa,6CAA6C;YAC1H,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACpG,MAAM,QAAQ,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IACjG,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC;IAExD,IAAI,gBAAgB,GAAG,WAAW,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,0CAA0C,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,KAAK,CAAC,WAAW,CAAC,GAAG;YACtH,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,GAAG,CAAC,EAAE;QACb,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;QACtE,QAAQ;QACR,gBAAgB;QAChB,oBAAoB;QACpB,aAAa,EAAE,aAAa,CAAC,MAAM;QACnC,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,MAA6B,EAC7B,MAA6B,EAC7B,UAAsC,EAAE;IAExC,MAAM,WAAW,GAAoC;QACnD,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,WAAW;QAClD,GAAG,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,WAAW;KACnD,CAAC;IACF,MAAM,QAAQ,GAAmE,EAAE,CAAC;IACpF,MAAM,aAAa,GAAG,OAAO,CAAC,WAAW;QACvC,CAAC,CAAC,CAAC,GAAG,uBAAuB,EAAE,UAAU,EAAE,WAAW,CAAC;QACvD,CAAC,CAAC,uBAAuB,CAAC;IAC5B,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;YACrC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjC,WAAW,CAAC,IAAI,CAAC;oBACf,QAAQ,EAAE,OAAO;oBACjB,IAAI,EAAE,4CAA4C;oBAClD,OAAO,EAAE,kCAAkC,IAAI,eAAe;oBAC9D,KAAK,EAAE,MAAM,CAAC,EAAE;oBAChB,IAAI;oBACJ,UAAU,EAAE,aAAa,EAAE,IAAI;oBAC/B,UAAU,EAAE,aAAa,EAAE,IAAI;iBAChC,CAAC,CAAC;YACL,CAAC;YACD,SAAS;QACX,CAAC;QAED,WAAW,IAAI,CAAC,CAAC;QACjB,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,mBAAmB,IAAI,CAAC,CAAC;QAC3B,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,GAAG;YACf,IAAI;YACJ,MAAM,EAAE,aAAa;YACrB,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,4BAA4B,CACjC,IAAI,EACJ,iBAAiB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAC3E,OAAO,CAAC,OAAO,CAChB;YACD,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;YACxD,UAAU,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;YACxD,kBAAkB,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;YAChE,kBAAkB,EAAE,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC;SACjE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC;IACrD,MAAM,gBAAgB,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,WAAW,GAAG,OAAO,CAAC,mBAAmB,IAAI,IAAI,CAAC;IAExD,IAAI,gBAAgB,GAAG,WAAW,EAAE,CAAC;QACnC,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,mDAAmD,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,KAAK,CAAC,WAAW,CAAC,GAAG;YAC/H,KAAK,EAAE,MAAM,CAAC,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,WAAW,EAAE,MAAM,CAAC,EAAE;QACtB,WAAW,EAAE,MAAM,CAAC,EAAE;QACtB,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;QACtE,QAAQ;QACR,gBAAgB;QAChB,QAAQ;QACR,WAAW;QACX,gBAAgB,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;QAC1C,gBAAgB,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;KAC3C,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAyB,EACzB,GAA2B,EAC3B,UAAuC,EAAE;IAEzC,MAAM,KAAK,GAA2C,EAAE,CAAC;IAEzD,IAAI,OAAO,CAAC,0BAA0B,EAAE,CAAC;QACvC,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACrE,KAAK,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,IAAI,GAAG,EAAE,GAAG,CAAC,gBAAgB,IAAI,GAAG,CAAC,CAAC;IAE7F,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,MAAM,eAAe,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACxF,IAAI,CAAC,eAAe;YAAE,SAAS;QAE/B,MAAM,UAAU,GAAG,qBAAqB,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACzG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAExC,IAAI,OAAO,CAAC,wBAAwB,EAAE,CAAC;YACrC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK;QACL,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,SAAS;QAClF,UAAU,EAAE,UAAU,CAAC,UAAU,IAAI,OAAO,CAAC,eAAe;YAC1D,CAAC,CAAC;gBACE,WAAW,EAAE,UAAU,CAAC,UAAU,CAAC,WAAW;oBAC5C,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;oBAC1E,CAAC,CAAC,SAAS;gBACb,QAAQ,EAAE,UAAU,CAAC,UAAU,CAAC,QAAQ;aACzC;YACH,CAAC,CAAC,UAAU,CAAC,UAAU;QACzB,QAAQ,EAAE;YACR,GAAG,UAAU,CAAC,QAAQ;YACtB,cAAc,EAAE,GAAG,CAAC,WAAW;YAC/B,YAAY,EAAE,GAAG,CAAC,WAAW;YAC7B,mBAAmB,EAAE,GAAG,CAAC,gBAAgB;SAC1C;KACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,MAA6B,EAC7B,MAA6B,EAC7B,UAAsC,EAAE;IAExC,OAAO,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,WAAW,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,mCAAmC,CACjD,GAA0B,EAC1B,UAA+C,EAAE;IAEjD,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,EAAE,EAAE,mBAAmB,EAAE,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtG,MAAM,WAAW,GAAoC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;IACnF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;WAC7D,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,oBAAoB,CAAC,IAAK,GAAG,CAAC,QAAQ,CAAC,oBAAkC,CAAC,MAAM,GAAG,CAAC,CAAC;IACtH,MAAM,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAEtG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,kCAAkC;YACxC,OAAO,EAAE,yEAAyE;YAClF,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QAChC,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,iCAAiC;YACvC,OAAO,EAAE,wCAAwC,IAAI,IAAI;YACzD,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IACD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,WAAW,CAAC,IAAI,CAAC;YACf,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,gCAAgC;YACtC,OAAO,EAAE,qEAAqE;YAC9E,KAAK,EAAE,GAAG,CAAC,EAAE;SACd,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,IAAI,EAAE,4CAA4C;QAClD,GAAG,IAAI;QACP,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,KAAK,OAAO,CAAC;QACtE,WAAW;QACX,UAAU;QACV,SAAS,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC;QACpC,mBAAmB;KACpB,CAAC;AACJ,CAAC;AAED,MAAM,mBAAmB,GAAqF;IAC5G,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IAChD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IAChD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IAChD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;IACxC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IAChD,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IAChD,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;IACxC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE;CACzC,CAAC;AAEF,SAAS,sBAAsB,CAAC,GAA0B;IACxD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,IAAI,CAAC,OAAO,EAAE,IAAI;YAAE,SAAS;QAC7B,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SACzB,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA2B,EAC3B,MAA2B,EAC3B,cAAc,GAAG,CAAC,EAClB,cAAc,GAAG,CAAC;IAElB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,QAAQ,GAAG,WAAW,GAAG,WAAW,CAAC;IAE3C,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7E,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IACpD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAAC,GAA2B;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;SACvC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC;SAChC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;IAExG,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAClC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AACvE,CAAC;AAED,MAAM,aAAa,GAAwB,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAEtE;;;GAGG;AACH,SAAS,eAAe,CACtB,GAA0B,EAC1B,IAAsB,EACtB,OAA4B;IAE5B,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;IACpD,IAAI,YAAY;QAAE,OAAO,gBAAgB,CAAC,YAAY,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,QAAQ;QAAE,OAAO,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAChE,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CACtB,GAA0B,EAC1B,IAAsB,EACtB,OAA4B;IAE5B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IACpE,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3D,CAAC;AAED;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,SAAiC,EACjC,OAAoC,EACpC,MAA4B;IAE5B,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,aAAa,CAAC;IAEvD,IAAI,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,EAAE,CAAC;QACb,wBAAwB;QACxB,MAAM,KAAK,GAAG,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/E,QAAQ,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC;YACX,+EAA+E;YAC/E,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC5C,CAAC;QACD,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;SAAM,IAAI,MAAM,EAAE,CAAC;QAClB,2EAA2E;QAC3E,QAAQ,GAAG,gBAAgB,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAChE,CAAC;IAED,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,MAAM,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IAC9E,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACpC,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK;QACvF,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK;QACvF,CAAC,EAAE,kBAAkB,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK;KACxF,CAAC,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAS,mBAAmB,CAAC,IAAkB,EAAE,EAAgB;IAC/D,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IACzB,OAAO,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,UAAU,CAAC,IAAkB;IACpC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACxC,KAAK,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QACtC,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;IACvC,CAAC;AACH,CAAC;AAED,mFAAmF;AACnF,SAAS,eAAe,CAAC,CAAmB,EAAE,CAAmB;IAC/D,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,GAAG,IAAI,CAAC,GAAG,IAAI;QAAE,OAAO,aAAa,CAAC;IAC1C,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;QACrB,gEAAgE;QAChE,IAAI,KAAK,GAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAChG,KAAK,GAAG,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACvD,OAAO,gBAAgB,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzB,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAClB,OAAO,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AACzD,CAAC;AAED,SAAS,QAAQ,CAAC,CAAmB,EAAE,CAAmB;IACxD,OAAO;QACL,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACzB,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,CAAsB,EAAE,CAAsB;IAClE,OAAO;QACL,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACjD,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,CAAsB;IACxC,yEAAyE;IACzE,MAAM,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC9B,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,CAAsB;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,aAAa,CAAC;IACtC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,cAAc,CAAC,SAAiC;IACvD,OAAO;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACpE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS;QACpE,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS;KAC5D,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,MAAwB,EAAE,KAAa;IAC1D,OAAO;QACL,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK;QACnB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK;QACnB,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK;KACpB,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,KAAa;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;AACzC,CAAC"}
|
package/dist/IK.d.ts
CHANGED
|
@@ -26,4 +26,30 @@ export declare function solveTwoBoneIk(input: TwoBoneIkInput): TwoBoneIkResult;
|
|
|
26
26
|
* giving {@link solveTwoBoneIk} a stable bend plane (knees point forward, elbows back). Pure.
|
|
27
27
|
*/
|
|
28
28
|
export declare function kneePoleHint(root: Vec3, mid: Vec3, forward: Vec3, distance?: number): Vec3;
|
|
29
|
+
import type { PoseBuffer } from "./pose/PoseBuffer.js";
|
|
30
|
+
import type { SkeletonBinding } from "./pose/SkeletonBinding.js";
|
|
31
|
+
/** PRD-06 §7.1 `TwoBoneIkConstraintSpec` — resolved against a bound skeleton by name. */
|
|
32
|
+
export interface TwoBoneIkConstraintSpec {
|
|
33
|
+
readonly root: string;
|
|
34
|
+
readonly mid: string;
|
|
35
|
+
readonly tip: string;
|
|
36
|
+
/** Pole plane hint: "auto" keeps the current bend plane; a point or `{bone}` steers it. */
|
|
37
|
+
readonly pole?: "auto" | readonly [number, number, number] | {
|
|
38
|
+
readonly bone: string;
|
|
39
|
+
};
|
|
40
|
+
/** Optional twist distribution bone (receives `twistWeight` of the plane-align twist). */
|
|
41
|
+
readonly twistBone?: string;
|
|
42
|
+
readonly twistWeight?: number;
|
|
43
|
+
/** Blend of the solve into the current pose (1 = full solve, 0 = untouched). */
|
|
44
|
+
readonly weight?: number;
|
|
45
|
+
/** Reach stretch multiplier > 1 permits targets beyond limb length. */
|
|
46
|
+
readonly allowStretch?: number;
|
|
47
|
+
}
|
|
48
|
+
export declare function solveTwoBoneIkRotations(pose: PoseBuffer, skeleton: SkeletonBinding, modelMatrix: Float32Array | readonly number[], spec: TwoBoneIkConstraintSpec, target: readonly [number, number, number]): void;
|
|
49
|
+
/**
|
|
50
|
+
* @deprecated PRD-06 T3.1: prefer {@link solveTwoBoneIkRotations}, which writes
|
|
51
|
+
* local pose rotations directly. `solveTwoBoneIk` stays for position-space
|
|
52
|
+
* consumers (e.g. FootIk mid points) until they migrate.
|
|
53
|
+
*/
|
|
54
|
+
export type { TwoBoneIkInput as LegacyTwoBoneIkInput };
|
|
29
55
|
//# sourceMappingURL=IK.d.ts.map
|
package/dist/IK.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IK.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/IK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAqCrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,IAAI,CAIrF"}
|
|
1
|
+
{"version":3,"file":"IK.d.ts","sourceRoot":"","sources":["../../../../packages/animation/src/IK.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAEpD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC;CACjC;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC;IACnB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,cAAc,GAAG,eAAe,CAqCrE;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,SAAI,GAAG,IAAI,CAIrF;AAyDD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,2FAA2F;IAC3F,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvF,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,gFAAgF;IAChF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,uEAAuE;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAiLD,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,EACzB,WAAW,EAAE,YAAY,GAAG,SAAS,MAAM,EAAE,EAC7C,IAAI,EAAE,uBAAuB,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GACxC,IAAI,CA0PN;AAGD;;;;GAIG;AACH,YAAY,EAAE,cAAc,IAAI,oBAAoB,EAAE,CAAC"}
|