@certe/atmos-core 0.1.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/LICENCE +674 -0
- package/README.md +171 -0
- package/dist/component-registry.d.ts +60 -0
- package/dist/component-registry.d.ts.map +1 -0
- package/dist/component-registry.js +14 -0
- package/dist/component-registry.js.map +1 -0
- package/dist/component.d.ts +19 -0
- package/dist/component.d.ts.map +1 -0
- package/dist/component.js +23 -0
- package/dist/component.js.map +1 -0
- package/dist/engine.d.ts +32 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +75 -0
- package/dist/engine.js.map +1 -0
- package/dist/game-object.d.ts +23 -0
- package/dist/game-object.d.ts.map +1 -0
- package/dist/game-object.js +65 -0
- package/dist/game-object.js.map +1 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/input.d.ts +48 -0
- package/dist/input.d.ts.map +1 -0
- package/dist/input.js +102 -0
- package/dist/input.js.map +1 -0
- package/dist/register-builtins.d.ts +2 -0
- package/dist/register-builtins.d.ts.map +1 -0
- package/dist/register-builtins.js +13 -0
- package/dist/register-builtins.js.map +1 -0
- package/dist/scene-serializer.d.ts +46 -0
- package/dist/scene-serializer.d.ts.map +1 -0
- package/dist/scene-serializer.js +197 -0
- package/dist/scene-serializer.js.map +1 -0
- package/dist/scene.d.ts +38 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/scene.js +142 -0
- package/dist/scene.js.map +1 -0
- package/dist/time.d.ts +9 -0
- package/dist/time.d.ts.map +1 -0
- package/dist/time.js +24 -0
- package/dist/time.js.map +1 -0
- package/dist/transform.d.ts +27 -0
- package/dist/transform.d.ts.map +1 -0
- package/dist/transform.js +121 -0
- package/dist/transform.js.map +1 -0
- package/package.json +27 -0
- package/src/index.ts +33 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Vec3Type, Mat4Type, QuatType } from '@certe/atmos-math';
|
|
2
|
+
export declare class Transform {
|
|
3
|
+
readonly position: Vec3Type;
|
|
4
|
+
readonly rotation: QuatType;
|
|
5
|
+
readonly scale: Vec3Type;
|
|
6
|
+
readonly localMatrix: Mat4Type;
|
|
7
|
+
readonly worldMatrix: Mat4Type;
|
|
8
|
+
private _dirty;
|
|
9
|
+
private _parent;
|
|
10
|
+
private readonly _children;
|
|
11
|
+
get parent(): Transform | null;
|
|
12
|
+
get children(): readonly Transform[];
|
|
13
|
+
setParent(parent: Transform | null): void;
|
|
14
|
+
setPosition(x: number, y: number, z: number): void;
|
|
15
|
+
setPositionFrom(v: ArrayLike<number>): void;
|
|
16
|
+
setPositionComponent(i: number, v: number): void;
|
|
17
|
+
setRotation(x: number, y: number, z: number, w: number): void;
|
|
18
|
+
setRotationFrom(q: ArrayLike<number>): void;
|
|
19
|
+
setScale(x: number, y: number, z: number): void;
|
|
20
|
+
setScaleFrom(v: ArrayLike<number>): void;
|
|
21
|
+
setScaleComponent(i: number, v: number): void;
|
|
22
|
+
private markDirty;
|
|
23
|
+
updateLocalMatrix(): void;
|
|
24
|
+
updateWorldMatrix(): void;
|
|
25
|
+
get isDirty(): boolean;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=transform.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEtE,qBAAa,SAAS;IACpB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAA4B;IACvD,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAiB;IAC5C,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAA4B;IAEpD,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAiB;IAC/C,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAiB;IAE/C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmB;IAE7C,IAAI,MAAM,IAAI,SAAS,GAAG,IAAI,CAE7B;IAED,IAAI,QAAQ,IAAI,SAAS,SAAS,EAAE,CAEnC;IAED,SAAS,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI;IAuBzC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlD,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;IAK3C,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAKhD,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK7D,eAAe,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;IAK3C,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK/C,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;IAKxC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAK7C,OAAO,CAAC,SAAS;IAcjB,iBAAiB,IAAI,IAAI;IAIzB,iBAAiB,IAAI,IAAI;IAazB,IAAI,OAAO,IAAI,OAAO,CAErB;CACF"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Vec3, Mat4, Quat } from '@certe/atmos-math';
|
|
2
|
+
export class Transform {
|
|
3
|
+
position = Vec3.fromValues(0, 0, 0);
|
|
4
|
+
rotation = Quat.create();
|
|
5
|
+
scale = Vec3.fromValues(1, 1, 1);
|
|
6
|
+
localMatrix = Mat4.create();
|
|
7
|
+
worldMatrix = Mat4.create();
|
|
8
|
+
_dirty = true;
|
|
9
|
+
_parent = null;
|
|
10
|
+
_children = [];
|
|
11
|
+
get parent() {
|
|
12
|
+
return this._parent;
|
|
13
|
+
}
|
|
14
|
+
get children() {
|
|
15
|
+
return this._children;
|
|
16
|
+
}
|
|
17
|
+
setParent(parent) {
|
|
18
|
+
if (this._parent === parent)
|
|
19
|
+
return;
|
|
20
|
+
if (this._parent) {
|
|
21
|
+
const idx = this._parent._children.indexOf(this);
|
|
22
|
+
if (idx !== -1)
|
|
23
|
+
this._parent._children.splice(idx, 1);
|
|
24
|
+
}
|
|
25
|
+
this._parent = parent;
|
|
26
|
+
if (parent) {
|
|
27
|
+
parent._children.push(this);
|
|
28
|
+
}
|
|
29
|
+
this.markDirty();
|
|
30
|
+
// If this node was already dirty (e.g. newly created), markDirty()
|
|
31
|
+
// short-circuits and won't propagate up to the new parent chain.
|
|
32
|
+
// Ensure the new parent chain is marked dirty so renderAll picks it up.
|
|
33
|
+
if (parent) {
|
|
34
|
+
let p = parent;
|
|
35
|
+
while (p && !p._dirty) {
|
|
36
|
+
p._dirty = true;
|
|
37
|
+
p = p._parent;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
setPosition(x, y, z) {
|
|
42
|
+
this.position[0] = x;
|
|
43
|
+
this.position[1] = y;
|
|
44
|
+
this.position[2] = z;
|
|
45
|
+
this.markDirty();
|
|
46
|
+
}
|
|
47
|
+
setPositionFrom(v) {
|
|
48
|
+
this.position[0] = v[0];
|
|
49
|
+
this.position[1] = v[1];
|
|
50
|
+
this.position[2] = v[2];
|
|
51
|
+
this.markDirty();
|
|
52
|
+
}
|
|
53
|
+
setPositionComponent(i, v) {
|
|
54
|
+
this.position[i] = v;
|
|
55
|
+
this.markDirty();
|
|
56
|
+
}
|
|
57
|
+
setRotation(x, y, z, w) {
|
|
58
|
+
this.rotation[0] = x;
|
|
59
|
+
this.rotation[1] = y;
|
|
60
|
+
this.rotation[2] = z;
|
|
61
|
+
this.rotation[3] = w;
|
|
62
|
+
this.markDirty();
|
|
63
|
+
}
|
|
64
|
+
setRotationFrom(q) {
|
|
65
|
+
this.rotation[0] = q[0];
|
|
66
|
+
this.rotation[1] = q[1];
|
|
67
|
+
this.rotation[2] = q[2];
|
|
68
|
+
this.rotation[3] = q[3];
|
|
69
|
+
this.markDirty();
|
|
70
|
+
}
|
|
71
|
+
setScale(x, y, z) {
|
|
72
|
+
this.scale[0] = x;
|
|
73
|
+
this.scale[1] = y;
|
|
74
|
+
this.scale[2] = z;
|
|
75
|
+
this.markDirty();
|
|
76
|
+
}
|
|
77
|
+
setScaleFrom(v) {
|
|
78
|
+
this.scale[0] = v[0];
|
|
79
|
+
this.scale[1] = v[1];
|
|
80
|
+
this.scale[2] = v[2];
|
|
81
|
+
this.markDirty();
|
|
82
|
+
}
|
|
83
|
+
setScaleComponent(i, v) {
|
|
84
|
+
this.scale[i] = v;
|
|
85
|
+
this.markDirty();
|
|
86
|
+
}
|
|
87
|
+
markDirty() {
|
|
88
|
+
if (this._dirty)
|
|
89
|
+
return;
|
|
90
|
+
this._dirty = true;
|
|
91
|
+
for (const child of this._children) {
|
|
92
|
+
child.markDirty();
|
|
93
|
+
}
|
|
94
|
+
// Propagate up so renderAll's isDirty check on roots works
|
|
95
|
+
let p = this._parent;
|
|
96
|
+
while (p && !p._dirty) {
|
|
97
|
+
p._dirty = true;
|
|
98
|
+
p = p._parent;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
updateLocalMatrix() {
|
|
102
|
+
Mat4.fromRotationTranslationScale(this.localMatrix, this.rotation, this.position, this.scale);
|
|
103
|
+
}
|
|
104
|
+
updateWorldMatrix() {
|
|
105
|
+
this.updateLocalMatrix();
|
|
106
|
+
if (this._parent) {
|
|
107
|
+
Mat4.multiply(this.worldMatrix, this._parent.worldMatrix, this.localMatrix);
|
|
108
|
+
}
|
|
109
|
+
else {
|
|
110
|
+
this.worldMatrix.set(this.localMatrix);
|
|
111
|
+
}
|
|
112
|
+
this._dirty = false;
|
|
113
|
+
for (const child of this._children) {
|
|
114
|
+
child.updateWorldMatrix();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
get isDirty() {
|
|
118
|
+
return this._dirty;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform.js","sourceRoot":"","sources":["../src/transform.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@certe/atmos-core",
|
|
3
|
+
"description": "Component model, scene graph, game loop, and serialization for the Atmos Engine",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/certesolutions-cyber/atmos.git",
|
|
8
|
+
"directory": "packages/core"
|
|
9
|
+
},
|
|
10
|
+
"homepage": "https://github.com/certesolutions-cyber/atmos",
|
|
11
|
+
"license": "GPL-3.0-or-later",
|
|
12
|
+
"keywords": ["ecs", "game-engine", "component", "scene-graph", "gameobject", "atmos"],
|
|
13
|
+
"type": "module",
|
|
14
|
+
"main": "src/index.ts",
|
|
15
|
+
"types": "src/index.ts",
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"main": "dist/index.js",
|
|
18
|
+
"types": "dist/index.d.ts"
|
|
19
|
+
},
|
|
20
|
+
"files": ["dist", "!dist/__tests__", "package.json", "README.md", "LICENCE"],
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@certe/atmos-math": "^0.1.0"
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"test": "vitest run"
|
|
26
|
+
}
|
|
27
|
+
}
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { Component } from './component.js';
|
|
2
|
+
export { GameObject, resetGameObjectIds } from './game-object.js';
|
|
3
|
+
export { Transform } from './transform.js';
|
|
4
|
+
export { Scene } from './scene.js';
|
|
5
|
+
export type { SceneLoader } from './scene.js';
|
|
6
|
+
export { Time } from './time.js';
|
|
7
|
+
export { Input } from './input.js';
|
|
8
|
+
export { Engine } from './engine.js';
|
|
9
|
+
export type { Renderer, PhysicsStepper } from './engine.js';
|
|
10
|
+
export {
|
|
11
|
+
registerComponent,
|
|
12
|
+
getComponentDef,
|
|
13
|
+
getAllRegisteredComponents,
|
|
14
|
+
clearRegistry,
|
|
15
|
+
} from './component-registry.js';
|
|
16
|
+
export type {
|
|
17
|
+
PropertyDef,
|
|
18
|
+
PropertyDefBase,
|
|
19
|
+
PropertyType,
|
|
20
|
+
ComponentDef,
|
|
21
|
+
NumberPropertyDef,
|
|
22
|
+
Vec3PropertyDef,
|
|
23
|
+
QuatPropertyDef,
|
|
24
|
+
ColorPropertyDef,
|
|
25
|
+
EnumPropertyDef,
|
|
26
|
+
StringPropertyDef,
|
|
27
|
+
BooleanPropertyDef,
|
|
28
|
+
GameObjectRefPropertyDef,
|
|
29
|
+
MaterialAssetPropertyDef,
|
|
30
|
+
} from './component-registry.js';
|
|
31
|
+
export { registerCoreBuiltins } from './register-builtins.js';
|
|
32
|
+
export { serializeScene, deserializeScene, applyComponentData, serializePostProcess, applyPostProcess } from './scene-serializer.js';
|
|
33
|
+
export type { SceneData, GameObjectData, ComponentData, DeserializeContext, PostProcessData } from './scene-serializer.js';
|