@fps-games/editor 0.1.2-beta.1 → 0.1.3-beta.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.
Files changed (110) hide show
  1. package/dist/local-editor-harness.d.ts +44 -8
  2. package/dist/local-editor-harness.d.ts.map +1 -1
  3. package/dist/local-editor-harness.js +436 -170
  4. package/dist/local-editor-harness.js.map +1 -1
  5. package/dist/local-editor-scene-render-scheduler.d.ts +8 -1
  6. package/dist/local-editor-scene-render-scheduler.d.ts.map +1 -1
  7. package/dist/local-editor-scene-render-scheduler.js +23 -2
  8. package/dist/local-editor-scene-render-scheduler.js.map +1 -1
  9. package/dist/local-editor-scene-view-interaction-runtime.d.ts +22 -0
  10. package/dist/local-editor-scene-view-interaction-runtime.d.ts.map +1 -0
  11. package/dist/local-editor-scene-view-interaction-runtime.js +80 -0
  12. package/dist/local-editor-scene-view-interaction-runtime.js.map +1 -0
  13. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.d.ts +2 -2
  14. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.d.ts.map +1 -1
  15. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js +31 -15
  16. package/node_modules/@fps-games/editor-babylon/dist/editor-sky.js.map +1 -1
  17. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts +10 -0
  18. package/node_modules/@fps-games/editor-babylon/dist/editor-world.d.ts.map +1 -1
  19. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js +31 -9
  20. package/node_modules/@fps-games/editor-babylon/dist/editor-world.js.map +1 -1
  21. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts +1 -0
  22. package/node_modules/@fps-games/editor-babylon/dist/index.d.ts.map +1 -1
  23. package/node_modules/@fps-games/editor-babylon/dist/index.js +1 -0
  24. package/node_modules/@fps-games/editor-babylon/dist/index.js.map +1 -1
  25. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.d.ts +24 -0
  26. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.d.ts.map +1 -1
  27. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js +241 -48
  28. package/node_modules/@fps-games/editor-babylon/dist/infinite-grid.js.map +1 -1
  29. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts +3 -1
  30. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.d.ts.map +1 -1
  31. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js +166 -0
  32. package/node_modules/@fps-games/editor-babylon/dist/material-property-adapter.js.map +1 -1
  33. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts +12 -1
  34. package/node_modules/@fps-games/editor-babylon/dist/projection.d.ts.map +1 -1
  35. package/node_modules/@fps-games/editor-babylon/dist/projection.js +231 -32
  36. package/node_modules/@fps-games/editor-babylon/dist/projection.js.map +1 -1
  37. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts +4 -0
  38. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.d.ts.map +1 -1
  39. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js +37 -23
  40. package/node_modules/@fps-games/editor-babylon/dist/scene-view-camera-controller.js.map +1 -1
  41. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.d.ts +1 -0
  42. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.d.ts.map +1 -1
  43. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js +100 -8
  44. package/node_modules/@fps-games/editor-babylon/dist/scene-view-input-controller.js.map +1 -1
  45. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts +22 -0
  46. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.d.ts.map +1 -0
  47. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js +71 -0
  48. package/node_modules/@fps-games/editor-babylon/dist/shadow-preview-controller.js.map +1 -0
  49. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts +6 -1
  50. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.d.ts.map +1 -1
  51. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js +107 -79
  52. package/node_modules/@fps-games/editor-babylon/dist/transform-gizmo-controller.js.map +1 -1
  53. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.d.ts +30 -0
  54. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.d.ts.map +1 -0
  55. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js +120 -0
  56. package/node_modules/@fps-games/editor-babylon/dist/transform-solver.js.map +1 -0
  57. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts +3 -1
  58. package/node_modules/@fps-games/editor-babylon/dist/types.d.ts.map +1 -1
  59. package/node_modules/@fps-games/editor-babylon/package.json +5 -4
  60. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +1 -1
  61. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +28 -0
  62. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -1
  63. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -1
  64. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +103 -1
  65. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -1
  66. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +3 -1
  67. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -1
  68. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +49 -4
  69. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -1
  70. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +4 -1
  71. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  72. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +12 -3
  73. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  74. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.d.ts +3 -1
  75. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.d.ts.map +1 -1
  76. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js +7 -0
  77. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panel-registry.js.map +1 -1
  78. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +8 -3
  79. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  80. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +645 -20
  81. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  82. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js +1 -1
  83. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shared.js.map +1 -1
  84. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  85. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +7 -6
  86. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  87. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +150 -3
  88. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  89. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts +6 -0
  90. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.d.ts.map +1 -1
  91. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js +1 -0
  92. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-workbench.js.map +1 -1
  93. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +3 -4
  94. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  95. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +1067 -87
  96. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  97. package/node_modules/@fps-games/editor-browser/package.json +2 -2
  98. package/node_modules/@fps-games/editor-core/dist/scene-view-input.d.ts +7 -0
  99. package/node_modules/@fps-games/editor-core/dist/scene-view-input.d.ts.map +1 -1
  100. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.d.ts +22 -0
  101. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.d.ts.map +1 -1
  102. package/node_modules/@fps-games/editor-core/dist/transform-gizmo.js.map +1 -1
  103. package/node_modules/@fps-games/editor-core/package.json +2 -2
  104. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  105. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts +61 -0
  106. package/node_modules/@fps-games/editor-protocol/dist/index.d.ts.map +1 -1
  107. package/node_modules/@fps-games/editor-protocol/dist/index.js +157 -0
  108. package/node_modules/@fps-games/editor-protocol/dist/index.js.map +1 -1
  109. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  110. package/package.json +8 -6
@@ -1,4 +1,5 @@
1
1
  import { DEFAULT_EDITOR_TRANSFORM_OPERATION_SETTINGS, normalizeEditorTransformConstraint, snapEditorTransformSnapshot, } from '@fps-games/editor-core';
2
+ import { createBabylonTransformSolver } from './transform-solver';
2
3
  export function resolveBabylonTransformHandleConstraint(tool, handleKey) {
3
4
  if (tool === 'move') {
4
5
  if (handleKey === 'xPlaneGizmo' || handleKey === 'yPlaneGizmo' || handleKey === 'zPlaneGizmo')
@@ -21,6 +22,7 @@ export function createBabylonTransformGizmoController(options) {
21
22
  const GizmoManagerCtor = options.babylon.GizmoManager;
22
23
  if (!GizmoManagerCtor)
23
24
  throw new Error('Babylon runtime missing GizmoManager');
25
+ const transformSolver = createBabylonTransformSolver({ babylon: options.babylon });
24
26
  let tool = options.initialTool ?? 'select';
25
27
  let space = options.initialSpace ?? 'world';
26
28
  let constraint = normalizeConstraintForTool(tool, 'axis') ?? 'axis';
@@ -122,7 +124,7 @@ export function createBabylonTransformGizmoController(options) {
122
124
  if (!activeConstraint)
123
125
  continue;
124
126
  const behavior = gizmo?.[handleKey]?.dragBehavior;
125
- addObserver(behavior?.onDragStartObservable, () => beginDrag(activeConstraint));
127
+ addObserver(behavior?.onDragStartObservable, () => beginDrag(activeConstraint, handleKey));
126
128
  addObserver(behavior?.onDragObservable, updateDrag);
127
129
  addObserver(behavior?.onDragEndObservable, endDrag);
128
130
  }
@@ -140,13 +142,13 @@ export function createBabylonTransformGizmoController(options) {
140
142
  const activeManager = manager;
141
143
  if (!activeManager)
142
144
  return;
143
- const matchAttachedMesh = space === 'local';
144
145
  const gizmos = [
145
- activeManager.gizmos?.positionGizmo,
146
- activeManager.gizmos?.rotationGizmo,
147
- activeManager.gizmos?.scaleGizmo,
146
+ { gizmo: activeManager.gizmos?.positionGizmo },
147
+ { gizmo: activeManager.gizmos?.rotationGizmo },
148
+ { gizmo: activeManager.gizmos?.scaleGizmo },
148
149
  ];
149
- for (const gizmo of gizmos) {
150
+ for (const { gizmo } of gizmos) {
151
+ const matchAttachedMesh = shouldMatchAttachedMeshForGizmo();
150
152
  try {
151
153
  if ('updateGizmoRotationToMatchAttachedMesh' in (gizmo ?? {})) {
152
154
  gizmo.updateGizmoRotationToMatchAttachedMesh = matchAttachedMesh;
@@ -171,6 +173,9 @@ export function createBabylonTransformGizmoController(options) {
171
173
  }
172
174
  }
173
175
  }
176
+ function shouldMatchAttachedMeshForGizmo() {
177
+ return space === 'local';
178
+ }
174
179
  function applyHandlePreference() {
175
180
  const positionGizmo = manager?.gizmos?.positionGizmo;
176
181
  if (positionGizmo) {
@@ -217,7 +222,7 @@ export function createBabylonTransformGizmoController(options) {
217
222
  }
218
223
  updateFreeMoveHandle();
219
224
  }
220
- function beginDrag(activeConstraint = constraint) {
225
+ function beginDrag(activeConstraint = constraint, handleKey) {
221
226
  if (activeDrag)
222
227
  return;
223
228
  const activeTool = activeTransformTool();
@@ -226,7 +231,7 @@ export function createBabylonTransformGizmoController(options) {
226
231
  const duplicate = pendingDuplicateDrag;
227
232
  pendingDuplicateDrag = false;
228
233
  const targetIds = resolveDragTargetIds(activeTool, getCurrentTransformTargetIds(), activeConstraint, duplicate);
229
- const drag = createActiveDrag(activeTool, targetIds, activeConstraint, duplicate);
234
+ const drag = createActiveDrag(activeTool, targetIds, activeConstraint, duplicate, handleKey);
230
235
  if (!drag)
231
236
  return;
232
237
  activeDrag = drag;
@@ -297,7 +302,7 @@ export function createBabylonTransformGizmoController(options) {
297
302
  }
298
303
  : null;
299
304
  }
300
- function createActiveDrag(activeTool, targetIds, activeConstraint, duplicate = false) {
305
+ function createActiveDrag(activeTool, targetIds, activeConstraint, duplicate = false, handleKey) {
301
306
  if (targetIds.length === 0)
302
307
  return null;
303
308
  const beforeTransforms = options.projection.readNodeTransforms(targetIds);
@@ -324,13 +329,19 @@ export function createBabylonTransformGizmoController(options) {
324
329
  before,
325
330
  beforeTransforms,
326
331
  duplicate,
332
+ handleKey,
327
333
  proxyStart: readNativeProxyTransform(pivot),
328
334
  };
329
335
  }
330
336
  function updateDrag() {
331
337
  if (!activeDrag)
332
338
  return;
333
- const currentTransforms = previewBatchTransform(activeDrag);
339
+ const preview = previewBatchTransform(activeDrag);
340
+ if (!preview.ok) {
341
+ blockDrag(activeDrag, preview.reason, preview.failedTargetId);
342
+ return;
343
+ }
344
+ const currentTransforms = preview.transforms;
334
345
  const current = activeDrag.activeId
335
346
  ? currentTransforms[activeDrag.activeId] ?? Object.values(currentTransforms)[0] ?? null
336
347
  : Object.values(currentTransforms)[0] ?? null;
@@ -347,10 +358,32 @@ export function createBabylonTransformGizmoController(options) {
347
358
  const drag = activeDrag;
348
359
  if (!drag)
349
360
  return;
350
- const afterTransforms = previewBatchTransform(drag);
361
+ const preview = previewBatchTransform(drag);
362
+ if (!preview.ok) {
363
+ blockDrag(drag, preview.reason, preview.failedTargetId);
364
+ return;
365
+ }
366
+ activeDrag = null;
367
+ emitTransformCommit(drag, preview.transforms);
368
+ attachCurrentSelection();
369
+ }
370
+ function blockDrag(drag, reason, failedTargetId) {
351
371
  activeDrag = null;
352
- emitTransformCommit(drag, afterTransforms);
372
+ restoreDragPreview(drag);
353
373
  attachCurrentSelection();
374
+ options.onDragBlocked?.({
375
+ ...drag,
376
+ reason,
377
+ failedTargetId,
378
+ });
379
+ }
380
+ function restoreDragPreview(drag) {
381
+ if (drag.targetIds.length > 1) {
382
+ options.projection.setNodeTransformsPreview(drag.beforeTransforms);
383
+ }
384
+ else if (drag.nodeId && drag.before) {
385
+ options.projection.setNodeTransformPreview(drag.nodeId, drag.before);
386
+ }
354
387
  }
355
388
  function emitTransformCommit(drag, afterTransforms) {
356
389
  if (drag.targetIds.length === 1) {
@@ -399,15 +432,15 @@ export function createBabylonTransformGizmoController(options) {
399
432
  scale: { x: 1, y: 1, z: 1 },
400
433
  };
401
434
  if (drag.tool === 'move') {
402
- return previewMoveWithDelta(drag, subtractVec3(pivotTransform.position, proxyStart.position));
435
+ return { ok: true, transforms: previewMoveWithDelta(drag, subtractVec3(pivotTransform.position, proxyStart.position)) };
403
436
  }
404
437
  if (drag.tool === 'rotate') {
405
- return previewRotateWithDelta(drag, subtractVec3(pivotTransform.rotation, proxyStart.rotation));
438
+ return previewRotateWithDelta(drag, resolveRotationDelta(drag, pivotTransform, proxyStart));
406
439
  }
407
440
  if (drag.tool === 'scale') {
408
441
  return previewScaleWithDelta(drag, divideVec3(pivotTransform.scale, proxyStart.scale));
409
442
  }
410
- return {};
443
+ return { ok: true, transforms: {} };
411
444
  }
412
445
  function previewMoveWithDelta(drag, delta) {
413
446
  const transforms = {};
@@ -415,34 +448,54 @@ export function createBabylonTransformGizmoController(options) {
415
448
  const before = drag.beforeTransforms[nodeId];
416
449
  if (!before)
417
450
  continue;
418
- transforms[nodeId] = applySnapToTransform(drag, nodeId, translateTransform(before, delta));
451
+ const result = transformSolver.solveMove({ before, delta });
452
+ if (!result.ok)
453
+ continue;
454
+ transforms[nodeId] = applySnapToTransform(drag, nodeId, result.transform);
419
455
  }
420
456
  options.projection.setNodeTransformsPreview(transforms);
421
457
  return transforms;
422
458
  }
423
- function translateTransform(transform, delta) {
424
- return {
425
- position: addVec3(transform.position, delta),
426
- rotation: transform.rotation,
427
- scale: transform.scale,
428
- };
429
- }
430
459
  function previewRotateWithDelta(drag, rotationDelta) {
431
460
  const transforms = {};
432
461
  for (const nodeId of drag.targetIds) {
433
462
  const before = drag.beforeTransforms[nodeId];
434
463
  if (!before)
435
464
  continue;
436
- const offset = subtractVec3(before.position, drag.pivot.position);
437
- transforms[nodeId] = {
438
- position: addVec3(drag.pivot.position, rotateVec3Euler(offset, rotationDelta)),
439
- rotation: addVec3(before.rotation, rotationDelta),
440
- scale: before.scale,
441
- };
442
- transforms[nodeId] = applySnapToTransform(drag, nodeId, transforms[nodeId]);
465
+ const result = transformSolver.solveRotate({
466
+ before,
467
+ pivot: drag.pivot.position,
468
+ delta: rotationDelta,
469
+ space: drag.space,
470
+ });
471
+ if (!result.ok) {
472
+ return { ok: false, reason: result.reason, failedTargetId: nodeId };
473
+ }
474
+ transforms[nodeId] = applySnapToTransform(drag, nodeId, result.transform);
443
475
  }
444
476
  options.projection.setNodeTransformsPreview(transforms);
445
- return transforms;
477
+ return { ok: true, transforms };
478
+ }
479
+ function resolveRotationDelta(drag, pivotTransform, proxyStart) {
480
+ const angleDelta = readRotationHandleAngle(drag.handleKey);
481
+ if (angleDelta != null)
482
+ return rotationDeltaFromHandleAngle(drag.handleKey, angleDelta);
483
+ return subtractVec3(pivotTransform.rotation, proxyStart.rotation);
484
+ }
485
+ function readRotationHandleAngle(handleKey) {
486
+ if (handleKey !== 'xGizmo' && handleKey !== 'yGizmo' && handleKey !== 'zGizmo')
487
+ return null;
488
+ const angle = manager?.gizmos?.rotationGizmo?.[handleKey]?.angle;
489
+ return Number.isFinite(angle) ? Number(angle) : null;
490
+ }
491
+ function rotationDeltaFromHandleAngle(handleKey, angle) {
492
+ if (handleKey === 'xGizmo')
493
+ return { x: angle, y: 0, z: 0 };
494
+ if (handleKey === 'yGizmo')
495
+ return { x: 0, y: angle, z: 0 };
496
+ if (handleKey === 'zGizmo')
497
+ return { x: 0, y: 0, z: angle };
498
+ return { x: 0, y: 0, z: 0 };
446
499
  }
447
500
  function previewScaleWithDelta(drag, scaleDelta) {
448
501
  const transforms = {};
@@ -455,16 +508,19 @@ export function createBabylonTransformGizmoController(options) {
455
508
  const before = drag.beforeTransforms[nodeId];
456
509
  if (!before)
457
510
  continue;
458
- const offset = subtractVec3(before.position, drag.pivot.position);
459
- transforms[nodeId] = {
460
- position: addVec3(drag.pivot.position, multiplyVec3(offset, safeScale)),
461
- rotation: before.rotation,
462
- scale: multiplyVec3(before.scale, safeScale),
463
- };
464
- transforms[nodeId] = applySnapToTransform(drag, nodeId, transforms[nodeId]);
511
+ const result = transformSolver.solveScale({
512
+ before,
513
+ pivot: drag.pivot.position,
514
+ delta: safeScale,
515
+ space: drag.space,
516
+ });
517
+ if (!result.ok) {
518
+ return { ok: false, reason: result.reason, failedTargetId: nodeId };
519
+ }
520
+ transforms[nodeId] = applySnapToTransform(drag, nodeId, result.transform);
465
521
  }
466
522
  options.projection.setNodeTransformsPreview(transforms);
467
- return transforms;
523
+ return { ok: true, transforms };
468
524
  }
469
525
  function applySnapToTransform(drag, nodeId, after) {
470
526
  if (!operationSettings.snap.enabled)
@@ -522,13 +578,6 @@ export function createBabylonTransformGizmoController(options) {
522
578
  function dotVec3(left, right) {
523
579
  return left.x * right.x + left.y * right.y + left.z * right.z;
524
580
  }
525
- function multiplyVec3(left, right) {
526
- return {
527
- x: left.x * right.x,
528
- y: left.y * right.y,
529
- z: left.z * right.z,
530
- };
531
- }
532
581
  function divideVec3(left, right) {
533
582
  return {
534
583
  x: Math.abs(right.x) > 0.000001 ? left.x / right.x : 1,
@@ -536,36 +585,6 @@ export function createBabylonTransformGizmoController(options) {
536
585
  z: Math.abs(right.z) > 0.000001 ? left.z / right.z : 1,
537
586
  };
538
587
  }
539
- function rotateVec3Euler(value, rotation) {
540
- return rotateZ(rotateY(rotateX(value, rotation.x), rotation.y), rotation.z);
541
- }
542
- function rotateX(value, angle) {
543
- const cos = Math.cos(angle);
544
- const sin = Math.sin(angle);
545
- return {
546
- x: value.x,
547
- y: value.y * cos - value.z * sin,
548
- z: value.y * sin + value.z * cos,
549
- };
550
- }
551
- function rotateY(value, angle) {
552
- const cos = Math.cos(angle);
553
- const sin = Math.sin(angle);
554
- return {
555
- x: value.x * cos + value.z * sin,
556
- y: value.y,
557
- z: -value.x * sin + value.z * cos,
558
- };
559
- }
560
- function rotateZ(value, angle) {
561
- const cos = Math.cos(angle);
562
- const sin = Math.sin(angle);
563
- return {
564
- x: value.x * cos - value.y * sin,
565
- y: value.x * sin + value.y * cos,
566
- z: value.z,
567
- };
568
- }
569
588
  function isViewPlaneMoveCandidate(event) {
570
589
  if (disposed || activeDrag || tool !== 'move' || event.button !== 0)
571
590
  return false;
@@ -956,8 +975,11 @@ export function createBabylonTransformGizmoController(options) {
956
975
  setTool(nextTool) {
957
976
  if (disposed)
958
977
  return;
959
- if (tool === nextTool)
978
+ if (tool === nextTool) {
979
+ if (!activeDrag)
980
+ attachCurrentSelection();
960
981
  return;
982
+ }
961
983
  controller.cancelDrag();
962
984
  tool = nextTool;
963
985
  constraint = normalizeConstraintForTool(tool, constraint) ?? 'axis';
@@ -966,8 +988,11 @@ export function createBabylonTransformGizmoController(options) {
966
988
  setSpace(nextSpace) {
967
989
  if (disposed)
968
990
  return;
969
- if (space === nextSpace)
991
+ if (space === nextSpace) {
992
+ if (!activeDrag)
993
+ attachCurrentSelection();
970
994
  return;
995
+ }
971
996
  controller.cancelDrag();
972
997
  space = nextSpace;
973
998
  attachCurrentSelection();
@@ -976,8 +1001,11 @@ export function createBabylonTransformGizmoController(options) {
976
1001
  if (disposed)
977
1002
  return;
978
1003
  const normalized = normalizeConstraintForTool(tool, nextConstraint) ?? 'axis';
979
- if (constraint === normalized)
1004
+ if (constraint === normalized) {
1005
+ if (!activeDrag)
1006
+ attachCurrentSelection();
980
1007
  return;
1008
+ }
981
1009
  controller.cancelDrag();
982
1010
  constraint = normalized;
983
1011
  attachCurrentSelection();
@@ -1 +1 @@
1
- {"version":3,"file":"transform-gizmo-controller.js","sourceRoot":"","sources":["../src/transform-gizmo-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transform-gizmo-controller.js","sourceRoot":"","sources":["../src/transform-gizmo-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { EditorTransformOperationBlockReason, EditorTransformSnapshot, EditorTransformSpace, EditorTransformVec3 } from '@fps-games/editor-core';
2
+ import type { BabylonRuntimeGlobal } from './types';
3
+ export interface BabylonTransformSolverOptions {
4
+ babylon: BabylonRuntimeGlobal & Record<string, any>;
5
+ epsilon?: number;
6
+ }
7
+ export interface BabylonTransformDeltaInput {
8
+ before: EditorTransformSnapshot;
9
+ pivot: EditorTransformVec3;
10
+ delta: EditorTransformVec3;
11
+ space: EditorTransformSpace;
12
+ }
13
+ export type BabylonTransformSolverResult = {
14
+ ok: true;
15
+ transform: EditorTransformSnapshot;
16
+ matrix: any;
17
+ } | {
18
+ ok: false;
19
+ reason: EditorTransformOperationBlockReason;
20
+ matrix: any;
21
+ };
22
+ export interface BabylonTransformSolver {
23
+ composeTransformMatrix(transform: EditorTransformSnapshot): any;
24
+ decomposeRepresentableWorldMatrix(matrix: any): BabylonTransformSolverResult;
25
+ solveMove(input: Pick<BabylonTransformDeltaInput, 'before' | 'delta'>): BabylonTransformSolverResult;
26
+ solveRotate(input: BabylonTransformDeltaInput): BabylonTransformSolverResult;
27
+ solveScale(input: BabylonTransformDeltaInput): BabylonTransformSolverResult;
28
+ }
29
+ export declare function createBabylonTransformSolver(options: BabylonTransformSolverOptions): BabylonTransformSolver;
30
+ //# sourceMappingURL=transform-solver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-solver.d.ts","sourceRoot":"","sources":["../src/transform-solver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mCAAmC,EACnC,uBAAuB,EACvB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,WAAW,6BAA6B;IAC5C,OAAO,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,uBAAuB,CAAC;IAChC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,mBAAmB,CAAC;IAC3B,KAAK,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,MAAM,4BAA4B,GACpC;IACE,EAAE,EAAE,IAAI,CAAC;IACT,SAAS,EAAE,uBAAuB,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC;CACb,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,mCAAmC,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC;CACb,CAAC;AAEN,MAAM,WAAW,sBAAsB;IACrC,sBAAsB,CAAC,SAAS,EAAE,uBAAuB,GAAG,GAAG,CAAC;IAChE,iCAAiC,CAAC,MAAM,EAAE,GAAG,GAAG,4BAA4B,CAAC;IAC7E,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,0BAA0B,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,4BAA4B,CAAC;IACrG,WAAW,CAAC,KAAK,EAAE,0BAA0B,GAAG,4BAA4B,CAAC;IAC7E,UAAU,CAAC,KAAK,EAAE,0BAA0B,GAAG,4BAA4B,CAAC;CAC7E;AAID,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CAmHxB"}