@fps-games/editor 0.1.0 → 0.1.1-beta.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.
Files changed (68) hide show
  1. package/dist/local-editor-harness.d.ts +70 -26
  2. package/dist/local-editor-harness.d.ts.map +1 -1
  3. package/dist/local-editor-harness.js +455 -21
  4. package/dist/local-editor-harness.js.map +1 -1
  5. package/node_modules/@fps-games/editor-babylon/package.json +4 -4
  6. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts +15 -0
  7. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.d.ts.map +1 -0
  8. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js +163 -0
  9. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-context-menu.js.map +1 -0
  10. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts +28 -0
  11. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.d.ts.map +1 -0
  12. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js +164 -0
  13. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-actions.js.map +1 -0
  14. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts +20 -0
  15. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.d.ts.map +1 -0
  16. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js +483 -0
  17. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-controller.js.map +1 -0
  18. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts +56 -0
  19. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.d.ts.map +1 -0
  20. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js +216 -0
  21. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-tree.js.map +1 -0
  22. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts +13 -0
  23. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.d.ts.map +1 -0
  24. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js +138 -0
  25. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-hierarchy-view.js.map +1 -0
  26. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts +3 -0
  27. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.d.ts.map +1 -1
  28. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js +29 -5
  29. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-input-router.js.map +1 -1
  30. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts +10 -2
  31. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.d.ts.map +1 -1
  32. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js +554 -93
  33. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-panels.js.map +1 -1
  34. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts +2 -0
  35. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.d.ts.map +1 -1
  36. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js +7 -3
  37. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-primitives.js.map +1 -1
  38. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.d.ts.map +1 -1
  39. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js +2 -0
  40. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-shortcuts.js.map +1 -1
  41. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts +148 -2
  42. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui-types.d.ts.map +1 -1
  43. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts +11 -2
  44. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.d.ts.map +1 -1
  45. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js +206 -173
  46. package/node_modules/@fps-games/editor-browser/dist/local-editor-ui.js.map +1 -1
  47. package/node_modules/@fps-games/editor-browser/package.json +1 -1
  48. package/node_modules/@fps-games/editor-core/dist/index.d.ts +2 -0
  49. package/node_modules/@fps-games/editor-core/dist/index.d.ts.map +1 -1
  50. package/node_modules/@fps-games/editor-core/dist/index.js +2 -0
  51. package/node_modules/@fps-games/editor-core/dist/index.js.map +1 -1
  52. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts +138 -0
  53. package/node_modules/@fps-games/editor-core/dist/inspector.d.ts.map +1 -0
  54. package/node_modules/@fps-games/editor-core/dist/inspector.js +298 -0
  55. package/node_modules/@fps-games/editor-core/dist/inspector.js.map +1 -0
  56. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts +28 -0
  57. package/node_modules/@fps-games/editor-core/dist/scene-graph.d.ts.map +1 -1
  58. package/node_modules/@fps-games/editor-core/dist/scene-graph.js +143 -2
  59. package/node_modules/@fps-games/editor-core/dist/scene-graph.js.map +1 -1
  60. package/node_modules/@fps-games/editor-core/dist/transform-math.d.ts +30 -0
  61. package/node_modules/@fps-games/editor-core/dist/transform-math.d.ts.map +1 -0
  62. package/node_modules/@fps-games/editor-core/dist/transform-math.js +339 -0
  63. package/node_modules/@fps-games/editor-core/dist/transform-math.js.map +1 -0
  64. package/node_modules/@fps-games/editor-core/package.json +2 -2
  65. package/node_modules/@fps-games/editor-forge-play/dist/index.js.map +1 -1
  66. package/node_modules/@fps-games/editor-forge-play/package.json +2 -2
  67. package/node_modules/@fps-games/editor-protocol/package.json +1 -1
  68. package/package.json +11 -6
@@ -2,6 +2,8 @@ export function validateSceneGraphRename(items, intent) {
2
2
  const item = findSceneGraphItem(items, intent.id);
3
3
  if (!item)
4
4
  return invalidSceneGraphIntent('missing-node');
5
+ if (item.protected)
6
+ return invalidSceneGraphIntent('node-protected');
5
7
  if (item.locked)
6
8
  return invalidSceneGraphIntent('node-locked');
7
9
  if (item.renamable === false)
@@ -17,6 +19,8 @@ export function validateSceneGraphDelete(items, intent) {
17
19
  const item = findSceneGraphItem(items, id);
18
20
  if (!item)
19
21
  return invalidSceneGraphIntent('missing-node');
22
+ if (item.protected)
23
+ return invalidSceneGraphIntent('node-protected');
20
24
  if (item.locked)
21
25
  return invalidSceneGraphIntent('node-locked');
22
26
  if (item.deletable === false)
@@ -28,6 +32,8 @@ export function validateSceneGraphDrop(items, intent) {
28
32
  const dragged = findSceneGraphItem(items, intent.draggedId);
29
33
  if (!dragged)
30
34
  return invalidSceneGraphIntent('missing-dragged-node');
35
+ if (dragged.protected)
36
+ return invalidSceneGraphIntent('dragged-node-protected');
31
37
  if (dragged.locked)
32
38
  return invalidSceneGraphIntent('dragged-node-locked');
33
39
  if (dragged.draggable === false)
@@ -35,18 +41,121 @@ export function validateSceneGraphDrop(items, intent) {
35
41
  const target = findSceneGraphItem(items, intent.targetId);
36
42
  if (!target)
37
43
  return invalidSceneGraphIntent('missing-target-node');
38
- if (target.locked)
44
+ if (target.locked && !target.protected)
39
45
  return invalidSceneGraphIntent('target-node-locked');
40
46
  if (intent.draggedId === intent.targetId)
41
47
  return invalidSceneGraphIntent('cannot-parent-to-self');
42
- if (intent.placement === 'inside' && target.canHaveChildren === false) {
48
+ if (intent.placement === 'inside' && !canSceneGraphItemHaveChildren(target)) {
43
49
  return invalidSceneGraphIntent('target-cannot-have-children');
44
50
  }
51
+ if (intent.placement !== 'inside') {
52
+ if (target.protected)
53
+ return invalidSceneGraphIntent('cannot-reorder-root');
54
+ const parent = findSceneGraphItem(items, target.parentId);
55
+ if (parent?.locked && !parent.protected)
56
+ return invalidSceneGraphIntent('target-parent-locked');
57
+ }
45
58
  if (isSceneGraphDescendant(items, intent.targetId, intent.draggedId)) {
46
59
  return invalidSceneGraphIntent('cannot-parent-to-descendant');
47
60
  }
48
61
  return validSceneGraphIntent();
49
62
  }
63
+ export function validateSceneGraphMove(items, intent) {
64
+ const uniqueIds = uniqueSceneGraphNodeIds(intent.ids);
65
+ if (uniqueIds.length === 0)
66
+ return invalidSceneGraphIntent('empty-selection');
67
+ for (const id of uniqueIds) {
68
+ if (!findSceneGraphItem(items, id))
69
+ return invalidSceneGraphIntent('missing-node');
70
+ }
71
+ const ids = getTopLevelSceneGraphNodeIds(items, intent.ids);
72
+ if (ids.length === 0)
73
+ return invalidSceneGraphIntent('empty-selection');
74
+ for (const id of ids) {
75
+ const item = findSceneGraphItem(items, id);
76
+ if (!item)
77
+ return invalidSceneGraphIntent('missing-node');
78
+ if (!isSceneGraphItemMovable(item))
79
+ return invalidSceneGraphIntent(item.protected ? 'node-protected' : item.locked ? 'node-locked' : 'node-readonly');
80
+ }
81
+ if (intent.placement === 'root') {
82
+ if (intent.parentId != null || intent.beforeId != null || intent.afterId != null)
83
+ return invalidSceneGraphIntent('invalid-root-anchors');
84
+ return validSceneGraphIntent();
85
+ }
86
+ const target = findSceneGraphItem(items, intent.targetId);
87
+ if (!target)
88
+ return invalidSceneGraphIntent('missing-target-node');
89
+ if (ids.includes(target.id))
90
+ return invalidSceneGraphIntent('cannot-parent-to-self');
91
+ if (ids.some(id => isSceneGraphDescendant(items, target.id, id)))
92
+ return invalidSceneGraphIntent('cannot-parent-to-descendant');
93
+ if (intent.placement === 'inside') {
94
+ if (!canSceneGraphItemHaveChildren(target))
95
+ return invalidSceneGraphIntent('target-cannot-have-children');
96
+ if (intent.parentId != null && intent.parentId !== target.id)
97
+ return invalidSceneGraphIntent('invalid-parent-anchor');
98
+ const parentChildren = getSceneGraphChildIds(items, target.id).filter(id => !ids.includes(id));
99
+ if (intent.beforeId && !parentChildren.includes(intent.beforeId))
100
+ return invalidSceneGraphIntent('invalid-before-anchor');
101
+ if (intent.afterId && !parentChildren.includes(intent.afterId))
102
+ return invalidSceneGraphIntent('invalid-after-anchor');
103
+ return validSceneGraphIntent();
104
+ }
105
+ if (target.locked && !target.protected)
106
+ return invalidSceneGraphIntent('target-node-locked');
107
+ if (target.protected)
108
+ return invalidSceneGraphIntent('cannot-reorder-root');
109
+ const parent = findSceneGraphItem(items, target.parentId);
110
+ if (parent?.locked && !parent.protected)
111
+ return invalidSceneGraphIntent('target-parent-locked');
112
+ if ((intent.parentId ?? null) !== (target.parentId ?? null))
113
+ return invalidSceneGraphIntent('invalid-parent-anchor');
114
+ const siblings = getSceneGraphChildIds(items, target.parentId ?? null).filter(id => !ids.includes(id));
115
+ if (intent.beforeId && !siblings.includes(intent.beforeId))
116
+ return invalidSceneGraphIntent('invalid-before-anchor');
117
+ if (intent.afterId && !siblings.includes(intent.afterId))
118
+ return invalidSceneGraphIntent('invalid-after-anchor');
119
+ if (intent.placement === 'before' && intent.beforeId !== target.id)
120
+ return invalidSceneGraphIntent('invalid-before-anchor');
121
+ if (intent.placement === 'after' && intent.afterId !== target.id)
122
+ return invalidSceneGraphIntent('invalid-after-anchor');
123
+ return validSceneGraphIntent();
124
+ }
125
+ export function validateSceneGraphGroupSelection(items, intent) {
126
+ const uniqueIds = uniqueSceneGraphNodeIds(intent.ids);
127
+ if (uniqueIds.length === 0)
128
+ return invalidSceneGraphIntent('empty-selection');
129
+ for (const id of uniqueIds) {
130
+ if (!findSceneGraphItem(items, id))
131
+ return invalidSceneGraphIntent('missing-node');
132
+ }
133
+ const ids = getTopLevelSceneGraphNodeIds(items, intent.ids);
134
+ if (ids.length === 0)
135
+ return invalidSceneGraphIntent('empty-selection');
136
+ for (const id of ids) {
137
+ const item = findSceneGraphItem(items, id);
138
+ if (!item)
139
+ return invalidSceneGraphIntent('missing-node');
140
+ if (!isSceneGraphItemMovable(item))
141
+ return invalidSceneGraphIntent(item.protected ? 'node-protected' : item.locked ? 'node-locked' : 'node-readonly');
142
+ }
143
+ const parent = findSceneGraphItem(items, intent.parentId);
144
+ if (intent.parentId && !parent)
145
+ return invalidSceneGraphIntent('missing-parent-node');
146
+ if (parent && !canSceneGraphItemHaveChildren(parent))
147
+ return invalidSceneGraphIntent('parent-cannot-have-children');
148
+ if (parent && ids.some(id => parent.id === id || isSceneGraphDescendant(items, parent.id, id))) {
149
+ return invalidSceneGraphIntent('cannot-parent-to-descendant');
150
+ }
151
+ const siblings = getSceneGraphChildIds(items, intent.parentId ?? null).filter(id => !ids.includes(id));
152
+ if (intent.insertBeforeId) {
153
+ const before = findSceneGraphItem(items, intent.insertBeforeId);
154
+ if (!siblings.includes(intent.insertBeforeId) || before?.protected)
155
+ return invalidSceneGraphIntent('invalid-before-anchor');
156
+ }
157
+ return validSceneGraphIntent();
158
+ }
50
159
  export function findSceneGraphItem(items, id) {
51
160
  if (!id)
52
161
  return null;
@@ -63,6 +172,16 @@ export function uniqueSceneGraphNodeIds(ids) {
63
172
  }
64
173
  return result;
65
174
  }
175
+ export function getTopLevelSceneGraphNodeIds(items, ids) {
176
+ const uniqueIds = uniqueSceneGraphNodeIds(ids).filter(id => !!findSceneGraphItem(items, id));
177
+ const selected = new Set(uniqueIds);
178
+ return uniqueIds.filter(id => !collectSceneGraphAncestorIds(items, id).some(ancestorId => selected.has(ancestorId)));
179
+ }
180
+ export function getSceneGraphChildIds(items, parentId) {
181
+ return items
182
+ .filter(item => (item.parentId ?? null) === (parentId ?? null))
183
+ .map(item => item.id);
184
+ }
66
185
  export function isSceneGraphDescendant(items, candidateId, ancestorId) {
67
186
  const byId = new Map(items.map(item => [item.id, item]));
68
187
  let cursor = byId.get(candidateId) ?? null;
@@ -77,6 +196,28 @@ export function isSceneGraphDescendant(items, candidateId, ancestorId) {
77
196
  }
78
197
  return false;
79
198
  }
199
+ export function canSceneGraphItemHaveChildren(item) {
200
+ if (!item)
201
+ return false;
202
+ if (item.locked && !item.protected)
203
+ return false;
204
+ return item.canHaveChildren === true;
205
+ }
206
+ export function isSceneGraphItemMovable(item) {
207
+ return !!item && item.protected !== true && item.locked !== true && item.draggable !== false;
208
+ }
209
+ function collectSceneGraphAncestorIds(items, id) {
210
+ const byId = new Map(items.map(item => [item.id, item]));
211
+ const ancestors = [];
212
+ const visited = new Set();
213
+ let cursor = byId.get(id) ?? null;
214
+ while (cursor?.parentId && !visited.has(cursor.parentId)) {
215
+ visited.add(cursor.parentId);
216
+ ancestors.push(cursor.parentId);
217
+ cursor = byId.get(cursor.parentId) ?? null;
218
+ }
219
+ return ancestors;
220
+ }
80
221
  function validSceneGraphIntent() {
81
222
  return { ok: true };
82
223
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scene-graph.js","sourceRoot":"","sources":["../src/scene-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-graph.js","sourceRoot":"","sources":["../src/scene-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { EditorTransformSnapshot } from './transform-gizmo';
2
+ export type EditorTransformMatrix = [
3
+ number,
4
+ number,
5
+ number,
6
+ number,
7
+ number,
8
+ number,
9
+ number,
10
+ number,
11
+ number,
12
+ number,
13
+ number,
14
+ number,
15
+ number,
16
+ number,
17
+ number,
18
+ number
19
+ ];
20
+ export declare function createIdentityEditorTransform(): EditorTransformSnapshot;
21
+ export declare function createIdentityEditorTransformMatrix(): EditorTransformMatrix;
22
+ export declare function composeEditorTransformMatrix(transform: EditorTransformSnapshot): EditorTransformMatrix;
23
+ export declare function multiplyEditorTransformMatrices(left: readonly number[], right: readonly number[]): EditorTransformMatrix;
24
+ export declare function invertEditorTransformMatrix(matrix: readonly number[]): EditorTransformMatrix | null;
25
+ export declare function decomposeEditorTransformMatrix(matrix: readonly number[]): EditorTransformSnapshot | null;
26
+ export declare function composeEditorTransformChain(transforms: readonly EditorTransformSnapshot[]): EditorTransformSnapshot | null;
27
+ export declare function combineEditorTransforms(parent: EditorTransformSnapshot, local: EditorTransformSnapshot): EditorTransformSnapshot | null;
28
+ export declare function toEditorLocalTransformFromWorld(parentWorld: EditorTransformSnapshot, world: EditorTransformSnapshot): EditorTransformSnapshot | null;
29
+ export declare function editorTransformMatricesAlmostEqual(left: readonly number[], right: readonly number[], epsilon?: number): boolean;
30
+ //# sourceMappingURL=transform-math.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-math.d.ts","sourceRoot":"","sources":["../src/transform-math.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAuB,MAAM,mBAAmB,CAAC;AAEtF,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAC9B,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAC9B,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;IAC9B,MAAM;IAAE,MAAM;IAAE,MAAM;IAAE,MAAM;CAC/B,CAAC;AAWF,wBAAgB,6BAA6B,IAAI,uBAAuB,CAMvE;AAED,wBAAgB,mCAAmC,IAAI,qBAAqB,CAO3E;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,uBAAuB,GAAG,qBAAqB,CAwCtG;AAED,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,SAAS,MAAM,EAAE,GACvB,qBAAqB,CAmBvB;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,qBAAqB,GAAG,IAAI,CAqDnG;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,uBAAuB,GAAG,IAAI,CA8BxG;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,SAAS,uBAAuB,EAAE,GAC7C,uBAAuB,GAAG,IAAI,CAMhC;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,uBAAuB,EAC/B,KAAK,EAAE,uBAAuB,GAC7B,uBAAuB,GAAG,IAAI,CAIhC;AAED,wBAAgB,+BAA+B,CAC7C,WAAW,EAAE,uBAAuB,EACpC,KAAK,EAAE,uBAAuB,GAC7B,uBAAuB,GAAG,IAAI,CAMhC;AAED,wBAAgB,kCAAkC,CAChD,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,OAAO,SAAoB,GAC1B,OAAO,CAGT"}
@@ -0,0 +1,339 @@
1
+ const TRANSFORM_EPSILON = 0.000001;
2
+ export function createIdentityEditorTransform() {
3
+ return {
4
+ position: { x: 0, y: 0, z: 0 },
5
+ rotation: { x: 0, y: 0, z: 0 },
6
+ scale: { x: 1, y: 1, z: 1 },
7
+ };
8
+ }
9
+ export function createIdentityEditorTransformMatrix() {
10
+ return [
11
+ 1, 0, 0, 0,
12
+ 0, 1, 0, 0,
13
+ 0, 0, 1, 0,
14
+ 0, 0, 0, 1,
15
+ ];
16
+ }
17
+ export function composeEditorTransformMatrix(transform) {
18
+ const rotation = quaternionFromEulerAngles(transform.rotation);
19
+ const x = rotation.x;
20
+ const y = rotation.y;
21
+ const z = rotation.z;
22
+ const w = rotation.w;
23
+ const x2 = x + x;
24
+ const y2 = y + y;
25
+ const z2 = z + z;
26
+ const xx = x * x2;
27
+ const xy = x * y2;
28
+ const xz = x * z2;
29
+ const yy = y * y2;
30
+ const yz = y * z2;
31
+ const zz = z * z2;
32
+ const wx = w * x2;
33
+ const wy = w * y2;
34
+ const wz = w * z2;
35
+ const sx = transform.scale.x;
36
+ const sy = transform.scale.y;
37
+ const sz = transform.scale.z;
38
+ return [
39
+ (1 - (yy + zz)) * sx,
40
+ (xy + wz) * sx,
41
+ (xz - wy) * sx,
42
+ 0,
43
+ (xy - wz) * sy,
44
+ (1 - (xx + zz)) * sy,
45
+ (yz + wx) * sy,
46
+ 0,
47
+ (xz + wy) * sz,
48
+ (yz - wx) * sz,
49
+ (1 - (xx + yy)) * sz,
50
+ 0,
51
+ transform.position.x,
52
+ transform.position.y,
53
+ transform.position.z,
54
+ 1,
55
+ ];
56
+ }
57
+ export function multiplyEditorTransformMatrices(left, right) {
58
+ return [
59
+ left[0] * right[0] + left[1] * right[4] + left[2] * right[8] + left[3] * right[12],
60
+ left[0] * right[1] + left[1] * right[5] + left[2] * right[9] + left[3] * right[13],
61
+ left[0] * right[2] + left[1] * right[6] + left[2] * right[10] + left[3] * right[14],
62
+ left[0] * right[3] + left[1] * right[7] + left[2] * right[11] + left[3] * right[15],
63
+ left[4] * right[0] + left[5] * right[4] + left[6] * right[8] + left[7] * right[12],
64
+ left[4] * right[1] + left[5] * right[5] + left[6] * right[9] + left[7] * right[13],
65
+ left[4] * right[2] + left[5] * right[6] + left[6] * right[10] + left[7] * right[14],
66
+ left[4] * right[3] + left[5] * right[7] + left[6] * right[11] + left[7] * right[15],
67
+ left[8] * right[0] + left[9] * right[4] + left[10] * right[8] + left[11] * right[12],
68
+ left[8] * right[1] + left[9] * right[5] + left[10] * right[9] + left[11] * right[13],
69
+ left[8] * right[2] + left[9] * right[6] + left[10] * right[10] + left[11] * right[14],
70
+ left[8] * right[3] + left[9] * right[7] + left[10] * right[11] + left[11] * right[15],
71
+ left[12] * right[0] + left[13] * right[4] + left[14] * right[8] + left[15] * right[12],
72
+ left[12] * right[1] + left[13] * right[5] + left[14] * right[9] + left[15] * right[13],
73
+ left[12] * right[2] + left[13] * right[6] + left[14] * right[10] + left[15] * right[14],
74
+ left[12] * right[3] + left[13] * right[7] + left[14] * right[11] + left[15] * right[15],
75
+ ];
76
+ }
77
+ export function invertEditorTransformMatrix(matrix) {
78
+ const a00 = matrix[0];
79
+ const a01 = matrix[1];
80
+ const a02 = matrix[2];
81
+ const a03 = matrix[3];
82
+ const a10 = matrix[4];
83
+ const a11 = matrix[5];
84
+ const a12 = matrix[6];
85
+ const a13 = matrix[7];
86
+ const a20 = matrix[8];
87
+ const a21 = matrix[9];
88
+ const a22 = matrix[10];
89
+ const a23 = matrix[11];
90
+ const a30 = matrix[12];
91
+ const a31 = matrix[13];
92
+ const a32 = matrix[14];
93
+ const a33 = matrix[15];
94
+ const b00 = a00 * a11 - a01 * a10;
95
+ const b01 = a00 * a12 - a02 * a10;
96
+ const b02 = a00 * a13 - a03 * a10;
97
+ const b03 = a01 * a12 - a02 * a11;
98
+ const b04 = a01 * a13 - a03 * a11;
99
+ const b05 = a02 * a13 - a03 * a12;
100
+ const b06 = a20 * a31 - a21 * a30;
101
+ const b07 = a20 * a32 - a22 * a30;
102
+ const b08 = a20 * a33 - a23 * a30;
103
+ const b09 = a21 * a32 - a22 * a31;
104
+ const b10 = a21 * a33 - a23 * a31;
105
+ const b11 = a22 * a33 - a23 * a32;
106
+ const det = b00 * b11 - b01 * b10 + b02 * b09 + b03 * b08 - b04 * b07 + b05 * b06;
107
+ if (!Number.isFinite(det) || Math.abs(det) < TRANSFORM_EPSILON)
108
+ return null;
109
+ const invDet = 1 / det;
110
+ return [
111
+ (a11 * b11 - a12 * b10 + a13 * b09) * invDet,
112
+ (a02 * b10 - a01 * b11 - a03 * b09) * invDet,
113
+ (a31 * b05 - a32 * b04 + a33 * b03) * invDet,
114
+ (a22 * b04 - a21 * b05 - a23 * b03) * invDet,
115
+ (a12 * b08 - a10 * b11 - a13 * b07) * invDet,
116
+ (a00 * b11 - a02 * b08 + a03 * b07) * invDet,
117
+ (a32 * b02 - a30 * b05 - a33 * b01) * invDet,
118
+ (a20 * b05 - a22 * b02 + a23 * b01) * invDet,
119
+ (a10 * b10 - a11 * b08 + a13 * b06) * invDet,
120
+ (a01 * b08 - a00 * b10 - a03 * b06) * invDet,
121
+ (a30 * b04 - a31 * b02 + a33 * b00) * invDet,
122
+ (a21 * b02 - a20 * b04 - a23 * b00) * invDet,
123
+ (a11 * b07 - a10 * b09 - a12 * b06) * invDet,
124
+ (a00 * b09 - a01 * b07 + a02 * b06) * invDet,
125
+ (a31 * b01 - a30 * b03 - a32 * b00) * invDet,
126
+ (a20 * b03 - a21 * b01 + a22 * b00) * invDet,
127
+ ];
128
+ }
129
+ export function decomposeEditorTransformMatrix(matrix) {
130
+ const position = { x: matrix[12], y: matrix[13], z: matrix[14] };
131
+ const scale = {
132
+ x: vectorLength(matrix[0], matrix[1], matrix[2]),
133
+ y: vectorLength(matrix[4], matrix[5], matrix[6]),
134
+ z: vectorLength(matrix[8], matrix[9], matrix[10]),
135
+ };
136
+ if (determinantEditorTransformMatrix(matrix) <= 0)
137
+ scale.y *= -1;
138
+ if (!isFiniteVec3(position) || !isFiniteVec3(scale))
139
+ return null;
140
+ if (Math.abs(scale.x) < TRANSFORM_EPSILON || Math.abs(scale.y) < TRANSFORM_EPSILON || Math.abs(scale.z) < TRANSFORM_EPSILON) {
141
+ return null;
142
+ }
143
+ const sx = 1 / scale.x;
144
+ const sy = 1 / scale.y;
145
+ const sz = 1 / scale.z;
146
+ const rotationMatrix = [
147
+ matrix[0] * sx, matrix[1] * sx, matrix[2] * sx, 0,
148
+ matrix[4] * sy, matrix[5] * sy, matrix[6] * sy, 0,
149
+ matrix[8] * sz, matrix[9] * sz, matrix[10] * sz, 0,
150
+ 0, 0, 0, 1,
151
+ ];
152
+ if (!hasOrthogonalBasis(rotationMatrix))
153
+ return null;
154
+ const quaternion = normalizeQuaternion(quaternionFromRotationMatrix(rotationMatrix));
155
+ if (!quaternion)
156
+ return null;
157
+ const rotation = eulerAnglesFromQuaternion(quaternion);
158
+ if (!isFiniteVec3(rotation))
159
+ return null;
160
+ const transform = { position, rotation, scale };
161
+ return editorTransformMatricesAlmostEqual(composeEditorTransformMatrix(transform), matrix, 0.00001)
162
+ ? transform
163
+ : null;
164
+ }
165
+ export function composeEditorTransformChain(transforms) {
166
+ let world = createIdentityEditorTransformMatrix();
167
+ for (const transform of transforms) {
168
+ world = multiplyEditorTransformMatrices(composeEditorTransformMatrix(transform), world);
169
+ }
170
+ return decomposeEditorTransformMatrix(world);
171
+ }
172
+ export function combineEditorTransforms(parent, local) {
173
+ return decomposeEditorTransformMatrix(multiplyEditorTransformMatrices(composeEditorTransformMatrix(local), composeEditorTransformMatrix(parent)));
174
+ }
175
+ export function toEditorLocalTransformFromWorld(parentWorld, world) {
176
+ const parentInverse = invertEditorTransformMatrix(composeEditorTransformMatrix(parentWorld));
177
+ if (!parentInverse)
178
+ return null;
179
+ return decomposeEditorTransformMatrix(multiplyEditorTransformMatrices(composeEditorTransformMatrix(world), parentInverse));
180
+ }
181
+ export function editorTransformMatricesAlmostEqual(left, right, epsilon = TRANSFORM_EPSILON) {
182
+ return left.length === right.length
183
+ && left.every((value, index) => Math.abs(value - right[index]) <= epsilon);
184
+ }
185
+ function quaternionFromEulerAngles(rotation) {
186
+ const halfRoll = rotation.z * 0.5;
187
+ const halfPitch = rotation.x * 0.5;
188
+ const halfYaw = rotation.y * 0.5;
189
+ const sinRoll = Math.sin(halfRoll);
190
+ const cosRoll = Math.cos(halfRoll);
191
+ const sinPitch = Math.sin(halfPitch);
192
+ const cosPitch = Math.cos(halfPitch);
193
+ const sinYaw = Math.sin(halfYaw);
194
+ const cosYaw = Math.cos(halfYaw);
195
+ return {
196
+ x: cosYaw * sinPitch * cosRoll + sinYaw * cosPitch * sinRoll,
197
+ y: sinYaw * cosPitch * cosRoll - cosYaw * sinPitch * sinRoll,
198
+ z: cosYaw * cosPitch * sinRoll - sinYaw * sinPitch * cosRoll,
199
+ w: cosYaw * cosPitch * cosRoll + sinYaw * sinPitch * sinRoll,
200
+ };
201
+ }
202
+ function eulerAnglesFromQuaternion(quaternion) {
203
+ const qz = quaternion.z;
204
+ const qx = quaternion.x;
205
+ const qy = quaternion.y;
206
+ const qw = quaternion.w;
207
+ const zAxisY = qy * qz - qx * qw;
208
+ const limit = 0.4999999;
209
+ if (zAxisY < -limit) {
210
+ return {
211
+ x: Math.PI / 2,
212
+ y: 2 * Math.atan2(qy, qw),
213
+ z: 0,
214
+ };
215
+ }
216
+ if (zAxisY > limit) {
217
+ return {
218
+ x: -Math.PI / 2,
219
+ y: 2 * Math.atan2(qy, qw),
220
+ z: 0,
221
+ };
222
+ }
223
+ const sqw = qw * qw;
224
+ const sqz = qz * qz;
225
+ const sqx = qx * qx;
226
+ const sqy = qy * qy;
227
+ return {
228
+ z: Math.atan2(2 * (qx * qy + qz * qw), -sqz - sqx + sqy + sqw),
229
+ x: Math.asin(-2 * zAxisY),
230
+ y: Math.atan2(2 * (qz * qx + qy * qw), sqz - sqx - sqy + sqw),
231
+ };
232
+ }
233
+ function quaternionFromRotationMatrix(matrix) {
234
+ const m11 = matrix[0];
235
+ const m12 = matrix[4];
236
+ const m13 = matrix[8];
237
+ const m21 = matrix[1];
238
+ const m22 = matrix[5];
239
+ const m23 = matrix[9];
240
+ const m31 = matrix[2];
241
+ const m32 = matrix[6];
242
+ const m33 = matrix[10];
243
+ const trace = m11 + m22 + m33;
244
+ if (trace > 0) {
245
+ const s = 0.5 / Math.sqrt(trace + 1);
246
+ return {
247
+ w: 0.25 / s,
248
+ x: (m32 - m23) * s,
249
+ y: (m13 - m31) * s,
250
+ z: (m21 - m12) * s,
251
+ };
252
+ }
253
+ if (m11 > m22 && m11 > m33) {
254
+ const s = 2 * Math.sqrt(1 + m11 - m22 - m33);
255
+ return {
256
+ w: (m32 - m23) / s,
257
+ x: 0.25 * s,
258
+ y: (m12 + m21) / s,
259
+ z: (m13 + m31) / s,
260
+ };
261
+ }
262
+ if (m22 > m33) {
263
+ const s = 2 * Math.sqrt(1 + m22 - m11 - m33);
264
+ return {
265
+ w: (m13 - m31) / s,
266
+ x: (m12 + m21) / s,
267
+ y: 0.25 * s,
268
+ z: (m23 + m32) / s,
269
+ };
270
+ }
271
+ const s = 2 * Math.sqrt(1 + m33 - m11 - m22);
272
+ return {
273
+ w: (m21 - m12) / s,
274
+ x: (m13 + m31) / s,
275
+ y: (m23 + m32) / s,
276
+ z: 0.25 * s,
277
+ };
278
+ }
279
+ function normalizeQuaternion(quaternion) {
280
+ const length = Math.sqrt(quaternion.x * quaternion.x
281
+ + quaternion.y * quaternion.y
282
+ + quaternion.z * quaternion.z
283
+ + quaternion.w * quaternion.w);
284
+ if (!Number.isFinite(length) || length < TRANSFORM_EPSILON)
285
+ return null;
286
+ return {
287
+ x: quaternion.x / length,
288
+ y: quaternion.y / length,
289
+ z: quaternion.z / length,
290
+ w: quaternion.w / length,
291
+ };
292
+ }
293
+ function determinantEditorTransformMatrix(matrix) {
294
+ const m00 = matrix[0];
295
+ const m01 = matrix[1];
296
+ const m02 = matrix[2];
297
+ const m03 = matrix[3];
298
+ const m10 = matrix[4];
299
+ const m11 = matrix[5];
300
+ const m12 = matrix[6];
301
+ const m13 = matrix[7];
302
+ const m20 = matrix[8];
303
+ const m21 = matrix[9];
304
+ const m22 = matrix[10];
305
+ const m23 = matrix[11];
306
+ const m30 = matrix[12];
307
+ const m31 = matrix[13];
308
+ const m32 = matrix[14];
309
+ const m33 = matrix[15];
310
+ const det22_33 = m22 * m33 - m32 * m23;
311
+ const det21_33 = m21 * m33 - m31 * m23;
312
+ const det21_32 = m21 * m32 - m31 * m22;
313
+ const det20_33 = m20 * m33 - m30 * m23;
314
+ const det20_32 = m20 * m32 - m22 * m30;
315
+ const det20_31 = m20 * m31 - m30 * m21;
316
+ const cofact00 = +(m11 * det22_33 - m12 * det21_33 + m13 * det21_32);
317
+ const cofact01 = -(m10 * det22_33 - m12 * det20_33 + m13 * det20_32);
318
+ const cofact02 = +(m10 * det21_33 - m11 * det20_33 + m13 * det20_31);
319
+ const cofact03 = -(m10 * det21_32 - m11 * det20_32 + m12 * det20_31);
320
+ return m00 * cofact00 + m01 * cofact01 + m02 * cofact02 + m03 * cofact03;
321
+ }
322
+ function vectorLength(x, y, z) {
323
+ return Math.sqrt(x * x + y * y + z * z);
324
+ }
325
+ function hasOrthogonalBasis(matrix) {
326
+ const x = { x: matrix[0], y: matrix[1], z: matrix[2] };
327
+ const y = { x: matrix[4], y: matrix[5], z: matrix[6] };
328
+ const z = { x: matrix[8], y: matrix[9], z: matrix[10] };
329
+ return Math.abs(dotVec3(x, y)) < TRANSFORM_EPSILON
330
+ && Math.abs(dotVec3(x, z)) < TRANSFORM_EPSILON
331
+ && Math.abs(dotVec3(y, z)) < TRANSFORM_EPSILON;
332
+ }
333
+ function dotVec3(left, right) {
334
+ return left.x * right.x + left.y * right.y + left.z * right.z;
335
+ }
336
+ function isFiniteVec3(value) {
337
+ return Number.isFinite(value.x) && Number.isFinite(value.y) && Number.isFinite(value.z);
338
+ }
339
+ //# sourceMappingURL=transform-math.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform-math.js","sourceRoot":"","sources":["../src/transform-math.ts"],"names":[],"mappings":"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AC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE;QAC1F,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE;QAC3F,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE;QAC3F,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE;QAC1F,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE;QAC1F,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,EAAE,CAAE;QAC3F,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,IAAI,CAAC,CAAC,CAAE,GAAG,KAAK,CAAC,CAAC,CAAE,GAAG,I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GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,MAAM;QAC5C,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fps-games/editor-core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1-beta.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Core runtime shell and adapter contracts for fps-game-editor.",
@@ -14,6 +14,6 @@
14
14
  }
15
15
  },
16
16
  "dependencies": {
17
- "@fps-games/editor-protocol": "0.1.0"
17
+ "@fps-games/editor-protocol": "0.1.1-beta.0"
18
18
  }
19
19
  }