@viniciusgoncalves/three-toolkit 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/README.md ADDED
File without changes
package/dist/index.cjs ADDED
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // src/index.ts
21
+ var index_exports = {};
22
+ __export(index_exports, {
23
+ Selector: () => Selector
24
+ });
25
+ module.exports = __toCommonJS(index_exports);
26
+
27
+ // src/selector.ts
28
+ var import_three = require("three");
29
+ var import_core_toolkit = require("core-toolkit");
30
+ var Selector = class {
31
+ // #endregion
32
+ constructor(canvas, camera, objects = []) {
33
+ this.enabled = true;
34
+ this.selection = [];
35
+ // #region Parameters
36
+ this.filterVisible = true;
37
+ this.clearSelectionOnSelectNothing = true;
38
+ // #endregion
39
+ // #region Callbacks
40
+ this.trySelectCallback = (event) => {
41
+ this.trySelect(event);
42
+ };
43
+ this.onAddToSelection = [];
44
+ this.onRemoveFromSelection = [];
45
+ this.canvas = canvas;
46
+ this.canvas.addEventListener("pointerdown", this.trySelectCallback);
47
+ this.camera = camera;
48
+ this.objects = objects;
49
+ this.raycaster = new import_three.Raycaster();
50
+ }
51
+ setCanvas(canvas) {
52
+ this.canvas.removeEventListener("pointerdown", this.trySelectCallback);
53
+ this.canvas = canvas;
54
+ this.canvas.addEventListener("pointerdown", this.trySelectCallback);
55
+ return this;
56
+ }
57
+ setCamera(camera) {
58
+ this.camera = camera;
59
+ return this;
60
+ }
61
+ setObjects(objects) {
62
+ this.objects.splice(0);
63
+ this.objects.push(...objects);
64
+ return this;
65
+ }
66
+ setContext(canvas, camera, objects) {
67
+ return this.setCanvas(canvas).setCamera(camera).setObjects(objects);
68
+ }
69
+ addObjects(...objects) {
70
+ this.objects.push(...objects);
71
+ return this;
72
+ }
73
+ addToSelection(object) {
74
+ if (this.selection.some((object2) => object2.uuid === object2.uuid)) return this;
75
+ this.selection.push(object);
76
+ for (const callback of this.onAddToSelection) callback(object);
77
+ return this;
78
+ }
79
+ removeFromSelection(object) {
80
+ const index = this.selection.findIndex((object2) => object2.uuid === object2.uuid);
81
+ if (index === -1) return this;
82
+ this.selection.push(object);
83
+ for (const callback of this.onRemoveFromSelection) callback(object);
84
+ return this;
85
+ }
86
+ clearSelection() {
87
+ this.selection.forEach((object) => this.removeFromSelection(object));
88
+ return this;
89
+ }
90
+ trySelect(event) {
91
+ if (!this.enabled || this.objects.length === 0) return null;
92
+ const ndc = import_core_toolkit.Coordinates.getNormalizedDeviceCoordinates(event, this.canvas);
93
+ const coordinates = new import_three.Vector2(ndc[0], ndc[1]);
94
+ this.raycaster.setFromCamera(coordinates, this.camera);
95
+ const objs = this.filterVisible ? this.objects.filter((obj) => obj.visible) : this.objects;
96
+ const intersections = this.raycaster.intersectObjects(objs);
97
+ if (intersections.length === 0) {
98
+ if (this.clearSelectionOnSelectNothing) this.clearSelection();
99
+ return null;
100
+ }
101
+ this.addToSelection(intersections[0].object);
102
+ return intersections[0].object;
103
+ }
104
+ };
105
+ // Annotate the CommonJS export names for ESM import in node:
106
+ 0 && (module.exports = {
107
+ Selector
108
+ });
109
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/selector.ts"],"sourcesContent":["export { Selector } from './selector.js';\n","import { Camera, Object3D, Raycaster, Vector2 } from 'three';\nimport { Coordinates } from 'core-toolkit';\n\nexport class Selector {\n public enabled: boolean = true;\n\n private readonly selection: Object3D[] = [];\n private canvas: HTMLCanvasElement;\n private camera: Camera;\n private readonly objects: Object3D[];\n private readonly raycaster: Raycaster;\n\n // #region Parameters\n public filterVisible: boolean = true;\n public clearSelectionOnSelectNothing: boolean = true;\n // #endregion\n\n // #region Callbacks\n private trySelectCallback = (event: PointerEvent) => {\n this.trySelect(event);\n };\n public onAddToSelection: ((object: Object3D) => void)[] = [];\n public onRemoveFromSelection: ((object: Object3D) => void)[] = [];\n // #endregion\n\n public constructor(canvas: HTMLCanvasElement, camera: Camera, objects: Object3D[] = []) {\n this.canvas = canvas;\n this.canvas.addEventListener('pointerdown', this.trySelectCallback);\n\n this.camera = camera;\n this.objects = objects;\n\n this.raycaster = new Raycaster();\n }\n\n public setCanvas(canvas: HTMLCanvasElement): Selector {\n this.canvas.removeEventListener('pointerdown', this.trySelectCallback);\n this.canvas = canvas;\n this.canvas.addEventListener('pointerdown', this.trySelectCallback);\n return this;\n }\n\n public setCamera(camera: Camera): Selector {\n this.camera = camera;\n return this;\n }\n\n public setObjects(objects: Object3D[]): Selector {\n this.objects.splice(0);\n this.objects.push(...objects);\n return this;\n }\n\n public setContext(canvas: HTMLCanvasElement, camera: Camera, objects: Object3D[]): Selector {\n return this.setCanvas(canvas).setCamera(camera).setObjects(objects);\n }\n\n public addObjects(...objects: Object3D[]): Selector {\n this.objects.push(...objects);\n return this;\n }\n\n public addToSelection(object: Object3D): Selector {\n if (this.selection.some((object) => object.uuid === object.uuid)) return this;\n\n this.selection.push(object);\n for (const callback of this.onAddToSelection) callback(object);\n return this;\n }\n\n public removeFromSelection(object: Object3D): Selector {\n const index = this.selection.findIndex((object) => object.uuid === object.uuid);\n if (index === -1) return this;\n\n this.selection.push(object);\n for (const callback of this.onRemoveFromSelection) callback(object);\n return this;\n }\n\n public clearSelection(): Selector {\n this.selection.forEach((object) => this.removeFromSelection(object));\n return this;\n }\n\n private trySelect(event: PointerEvent): Object3D | null {\n if (!this.enabled || this.objects.length === 0) return null;\n\n const ndc = Coordinates.getNormalizedDeviceCoordinates(event, this.canvas);\n const coordinates = new Vector2(ndc[0], ndc[1]);\n this.raycaster.setFromCamera(coordinates, this.camera);\n\n const objs = this.filterVisible ? this.objects.filter((obj) => obj.visible) : this.objects;\n const intersections = this.raycaster.intersectObjects(objs);\n\n if (intersections.length === 0) {\n if (this.clearSelectionOnSelectNothing) this.clearSelection();\n return null;\n }\n\n this.addToSelection(intersections[0].object);\n return intersections[0].object;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAqD;AACrD,0BAA4B;AAErB,IAAM,WAAN,MAAe;AAAA;AAAA,EAsBb,YAAY,QAA2B,QAAgB,UAAsB,CAAC,GAAG;AArBxF,SAAO,UAAmB;AAE1B,SAAiB,YAAwB,CAAC;AAO1C;AAAA,SAAO,gBAAyB;AAChC,SAAO,gCAAyC;AAIhD;AAAA;AAAA,SAAQ,oBAAoB,CAAC,UAAwB;AACnD,WAAK,UAAU,KAAK;AAAA,IACtB;AACA,SAAO,mBAAmD,CAAC;AAC3D,SAAO,wBAAwD,CAAC;AAI9D,SAAK,SAAS;AACd,SAAK,OAAO,iBAAiB,eAAe,KAAK,iBAAiB;AAElE,SAAK,SAAS;AACd,SAAK,UAAU;AAEf,SAAK,YAAY,IAAI,uBAAU;AAAA,EACjC;AAAA,EAEO,UAAU,QAAqC;AACpD,SAAK,OAAO,oBAAoB,eAAe,KAAK,iBAAiB;AACrE,SAAK,SAAS;AACd,SAAK,OAAO,iBAAiB,eAAe,KAAK,iBAAiB;AAClE,WAAO;AAAA,EACT;AAAA,EAEO,UAAU,QAA0B;AACzC,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,SAA+B;AAC/C,SAAK,QAAQ,OAAO,CAAC;AACrB,SAAK,QAAQ,KAAK,GAAG,OAAO;AAC5B,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,QAA2B,QAAgB,SAA+B;AAC1F,WAAO,KAAK,UAAU,MAAM,EAAE,UAAU,MAAM,EAAE,WAAW,OAAO;AAAA,EACpE;AAAA,EAEO,cAAc,SAA+B;AAClD,SAAK,QAAQ,KAAK,GAAG,OAAO;AAC5B,WAAO;AAAA,EACT;AAAA,EAEO,eAAe,QAA4B;AAChD,QAAI,KAAK,UAAU,KAAK,CAACA,YAAWA,QAAO,SAASA,QAAO,IAAI,EAAG,QAAO;AAEzE,SAAK,UAAU,KAAK,MAAM;AAC1B,eAAW,YAAY,KAAK,iBAAkB,UAAS,MAAM;AAC7D,WAAO;AAAA,EACT;AAAA,EAEO,oBAAoB,QAA4B;AACrD,UAAM,QAAQ,KAAK,UAAU,UAAU,CAACA,YAAWA,QAAO,SAASA,QAAO,IAAI;AAC9E,QAAI,UAAU,GAAI,QAAO;AAEzB,SAAK,UAAU,KAAK,MAAM;AAC1B,eAAW,YAAY,KAAK,sBAAuB,UAAS,MAAM;AAClE,WAAO;AAAA,EACT;AAAA,EAEO,iBAA2B;AAChC,SAAK,UAAU,QAAQ,CAAC,WAAW,KAAK,oBAAoB,MAAM,CAAC;AACnE,WAAO;AAAA,EACT;AAAA,EAEQ,UAAU,OAAsC;AACtD,QAAI,CAAC,KAAK,WAAW,KAAK,QAAQ,WAAW,EAAG,QAAO;AAEvD,UAAM,MAAM,gCAAY,+BAA+B,OAAO,KAAK,MAAM;AACzE,UAAM,cAAc,IAAI,qBAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9C,SAAK,UAAU,cAAc,aAAa,KAAK,MAAM;AAErD,UAAM,OAAO,KAAK,gBAAgB,KAAK,QAAQ,OAAO,CAAC,QAAQ,IAAI,OAAO,IAAI,KAAK;AACnF,UAAM,gBAAgB,KAAK,UAAU,iBAAiB,IAAI;AAE1D,QAAI,cAAc,WAAW,GAAG;AAC9B,UAAI,KAAK,8BAA+B,MAAK,eAAe;AAC5D,aAAO;AAAA,IACT;AAEA,SAAK,eAAe,cAAc,CAAC,EAAE,MAAM;AAC3C,WAAO,cAAc,CAAC,EAAE;AAAA,EAC1B;AACF;","names":["object"]}
@@ -0,0 +1,27 @@
1
+ import { Object3D, Camera } from 'three';
2
+
3
+ declare class Selector {
4
+ enabled: boolean;
5
+ private readonly selection;
6
+ private canvas;
7
+ private camera;
8
+ private readonly objects;
9
+ private readonly raycaster;
10
+ filterVisible: boolean;
11
+ clearSelectionOnSelectNothing: boolean;
12
+ private trySelectCallback;
13
+ onAddToSelection: ((object: Object3D) => void)[];
14
+ onRemoveFromSelection: ((object: Object3D) => void)[];
15
+ constructor(canvas: HTMLCanvasElement, camera: Camera, objects?: Object3D[]);
16
+ setCanvas(canvas: HTMLCanvasElement): Selector;
17
+ setCamera(camera: Camera): Selector;
18
+ setObjects(objects: Object3D[]): Selector;
19
+ setContext(canvas: HTMLCanvasElement, camera: Camera, objects: Object3D[]): Selector;
20
+ addObjects(...objects: Object3D[]): Selector;
21
+ addToSelection(object: Object3D): Selector;
22
+ removeFromSelection(object: Object3D): Selector;
23
+ clearSelection(): Selector;
24
+ private trySelect;
25
+ }
26
+
27
+ export { Selector };
@@ -0,0 +1,27 @@
1
+ import { Object3D, Camera } from 'three';
2
+
3
+ declare class Selector {
4
+ enabled: boolean;
5
+ private readonly selection;
6
+ private canvas;
7
+ private camera;
8
+ private readonly objects;
9
+ private readonly raycaster;
10
+ filterVisible: boolean;
11
+ clearSelectionOnSelectNothing: boolean;
12
+ private trySelectCallback;
13
+ onAddToSelection: ((object: Object3D) => void)[];
14
+ onRemoveFromSelection: ((object: Object3D) => void)[];
15
+ constructor(canvas: HTMLCanvasElement, camera: Camera, objects?: Object3D[]);
16
+ setCanvas(canvas: HTMLCanvasElement): Selector;
17
+ setCamera(camera: Camera): Selector;
18
+ setObjects(objects: Object3D[]): Selector;
19
+ setContext(canvas: HTMLCanvasElement, camera: Camera, objects: Object3D[]): Selector;
20
+ addObjects(...objects: Object3D[]): Selector;
21
+ addToSelection(object: Object3D): Selector;
22
+ removeFromSelection(object: Object3D): Selector;
23
+ clearSelection(): Selector;
24
+ private trySelect;
25
+ }
26
+
27
+ export { Selector };
package/dist/index.js ADDED
@@ -0,0 +1,82 @@
1
+ // src/selector.ts
2
+ import { Raycaster, Vector2 } from "three";
3
+ import { Coordinates } from "core-toolkit";
4
+ var Selector = class {
5
+ // #endregion
6
+ constructor(canvas, camera, objects = []) {
7
+ this.enabled = true;
8
+ this.selection = [];
9
+ // #region Parameters
10
+ this.filterVisible = true;
11
+ this.clearSelectionOnSelectNothing = true;
12
+ // #endregion
13
+ // #region Callbacks
14
+ this.trySelectCallback = (event) => {
15
+ this.trySelect(event);
16
+ };
17
+ this.onAddToSelection = [];
18
+ this.onRemoveFromSelection = [];
19
+ this.canvas = canvas;
20
+ this.canvas.addEventListener("pointerdown", this.trySelectCallback);
21
+ this.camera = camera;
22
+ this.objects = objects;
23
+ this.raycaster = new Raycaster();
24
+ }
25
+ setCanvas(canvas) {
26
+ this.canvas.removeEventListener("pointerdown", this.trySelectCallback);
27
+ this.canvas = canvas;
28
+ this.canvas.addEventListener("pointerdown", this.trySelectCallback);
29
+ return this;
30
+ }
31
+ setCamera(camera) {
32
+ this.camera = camera;
33
+ return this;
34
+ }
35
+ setObjects(objects) {
36
+ this.objects.splice(0);
37
+ this.objects.push(...objects);
38
+ return this;
39
+ }
40
+ setContext(canvas, camera, objects) {
41
+ return this.setCanvas(canvas).setCamera(camera).setObjects(objects);
42
+ }
43
+ addObjects(...objects) {
44
+ this.objects.push(...objects);
45
+ return this;
46
+ }
47
+ addToSelection(object) {
48
+ if (this.selection.some((object2) => object2.uuid === object2.uuid)) return this;
49
+ this.selection.push(object);
50
+ for (const callback of this.onAddToSelection) callback(object);
51
+ return this;
52
+ }
53
+ removeFromSelection(object) {
54
+ const index = this.selection.findIndex((object2) => object2.uuid === object2.uuid);
55
+ if (index === -1) return this;
56
+ this.selection.push(object);
57
+ for (const callback of this.onRemoveFromSelection) callback(object);
58
+ return this;
59
+ }
60
+ clearSelection() {
61
+ this.selection.forEach((object) => this.removeFromSelection(object));
62
+ return this;
63
+ }
64
+ trySelect(event) {
65
+ if (!this.enabled || this.objects.length === 0) return null;
66
+ const ndc = Coordinates.getNormalizedDeviceCoordinates(event, this.canvas);
67
+ const coordinates = new Vector2(ndc[0], ndc[1]);
68
+ this.raycaster.setFromCamera(coordinates, this.camera);
69
+ const objs = this.filterVisible ? this.objects.filter((obj) => obj.visible) : this.objects;
70
+ const intersections = this.raycaster.intersectObjects(objs);
71
+ if (intersections.length === 0) {
72
+ if (this.clearSelectionOnSelectNothing) this.clearSelection();
73
+ return null;
74
+ }
75
+ this.addToSelection(intersections[0].object);
76
+ return intersections[0].object;
77
+ }
78
+ };
79
+ export {
80
+ Selector
81
+ };
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/selector.ts"],"sourcesContent":["import { Camera, Object3D, Raycaster, Vector2 } from 'three';\nimport { Coordinates } from 'core-toolkit';\n\nexport class Selector {\n public enabled: boolean = true;\n\n private readonly selection: Object3D[] = [];\n private canvas: HTMLCanvasElement;\n private camera: Camera;\n private readonly objects: Object3D[];\n private readonly raycaster: Raycaster;\n\n // #region Parameters\n public filterVisible: boolean = true;\n public clearSelectionOnSelectNothing: boolean = true;\n // #endregion\n\n // #region Callbacks\n private trySelectCallback = (event: PointerEvent) => {\n this.trySelect(event);\n };\n public onAddToSelection: ((object: Object3D) => void)[] = [];\n public onRemoveFromSelection: ((object: Object3D) => void)[] = [];\n // #endregion\n\n public constructor(canvas: HTMLCanvasElement, camera: Camera, objects: Object3D[] = []) {\n this.canvas = canvas;\n this.canvas.addEventListener('pointerdown', this.trySelectCallback);\n\n this.camera = camera;\n this.objects = objects;\n\n this.raycaster = new Raycaster();\n }\n\n public setCanvas(canvas: HTMLCanvasElement): Selector {\n this.canvas.removeEventListener('pointerdown', this.trySelectCallback);\n this.canvas = canvas;\n this.canvas.addEventListener('pointerdown', this.trySelectCallback);\n return this;\n }\n\n public setCamera(camera: Camera): Selector {\n this.camera = camera;\n return this;\n }\n\n public setObjects(objects: Object3D[]): Selector {\n this.objects.splice(0);\n this.objects.push(...objects);\n return this;\n }\n\n public setContext(canvas: HTMLCanvasElement, camera: Camera, objects: Object3D[]): Selector {\n return this.setCanvas(canvas).setCamera(camera).setObjects(objects);\n }\n\n public addObjects(...objects: Object3D[]): Selector {\n this.objects.push(...objects);\n return this;\n }\n\n public addToSelection(object: Object3D): Selector {\n if (this.selection.some((object) => object.uuid === object.uuid)) return this;\n\n this.selection.push(object);\n for (const callback of this.onAddToSelection) callback(object);\n return this;\n }\n\n public removeFromSelection(object: Object3D): Selector {\n const index = this.selection.findIndex((object) => object.uuid === object.uuid);\n if (index === -1) return this;\n\n this.selection.push(object);\n for (const callback of this.onRemoveFromSelection) callback(object);\n return this;\n }\n\n public clearSelection(): Selector {\n this.selection.forEach((object) => this.removeFromSelection(object));\n return this;\n }\n\n private trySelect(event: PointerEvent): Object3D | null {\n if (!this.enabled || this.objects.length === 0) return null;\n\n const ndc = Coordinates.getNormalizedDeviceCoordinates(event, this.canvas);\n const coordinates = new Vector2(ndc[0], ndc[1]);\n this.raycaster.setFromCamera(coordinates, this.camera);\n\n const objs = this.filterVisible ? this.objects.filter((obj) => obj.visible) : this.objects;\n const intersections = this.raycaster.intersectObjects(objs);\n\n if (intersections.length === 0) {\n if (this.clearSelectionOnSelectNothing) this.clearSelection();\n return null;\n }\n\n this.addToSelection(intersections[0].object);\n return intersections[0].object;\n }\n}\n"],"mappings":";AAAA,SAA2B,WAAW,eAAe;AACrD,SAAS,mBAAmB;AAErB,IAAM,WAAN,MAAe;AAAA;AAAA,EAsBb,YAAY,QAA2B,QAAgB,UAAsB,CAAC,GAAG;AArBxF,SAAO,UAAmB;AAE1B,SAAiB,YAAwB,CAAC;AAO1C;AAAA,SAAO,gBAAyB;AAChC,SAAO,gCAAyC;AAIhD;AAAA;AAAA,SAAQ,oBAAoB,CAAC,UAAwB;AACnD,WAAK,UAAU,KAAK;AAAA,IACtB;AACA,SAAO,mBAAmD,CAAC;AAC3D,SAAO,wBAAwD,CAAC;AAI9D,SAAK,SAAS;AACd,SAAK,OAAO,iBAAiB,eAAe,KAAK,iBAAiB;AAElE,SAAK,SAAS;AACd,SAAK,UAAU;AAEf,SAAK,YAAY,IAAI,UAAU;AAAA,EACjC;AAAA,EAEO,UAAU,QAAqC;AACpD,SAAK,OAAO,oBAAoB,eAAe,KAAK,iBAAiB;AACrE,SAAK,SAAS;AACd,SAAK,OAAO,iBAAiB,eAAe,KAAK,iBAAiB;AAClE,WAAO;AAAA,EACT;AAAA,EAEO,UAAU,QAA0B;AACzC,SAAK,SAAS;AACd,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,SAA+B;AAC/C,SAAK,QAAQ,OAAO,CAAC;AACrB,SAAK,QAAQ,KAAK,GAAG,OAAO;AAC5B,WAAO;AAAA,EACT;AAAA,EAEO,WAAW,QAA2B,QAAgB,SAA+B;AAC1F,WAAO,KAAK,UAAU,MAAM,EAAE,UAAU,MAAM,EAAE,WAAW,OAAO;AAAA,EACpE;AAAA,EAEO,cAAc,SAA+B;AAClD,SAAK,QAAQ,KAAK,GAAG,OAAO;AAC5B,WAAO;AAAA,EACT;AAAA,EAEO,eAAe,QAA4B;AAChD,QAAI,KAAK,UAAU,KAAK,CAACA,YAAWA,QAAO,SAASA,QAAO,IAAI,EAAG,QAAO;AAEzE,SAAK,UAAU,KAAK,MAAM;AAC1B,eAAW,YAAY,KAAK,iBAAkB,UAAS,MAAM;AAC7D,WAAO;AAAA,EACT;AAAA,EAEO,oBAAoB,QAA4B;AACrD,UAAM,QAAQ,KAAK,UAAU,UAAU,CAACA,YAAWA,QAAO,SAASA,QAAO,IAAI;AAC9E,QAAI,UAAU,GAAI,QAAO;AAEzB,SAAK,UAAU,KAAK,MAAM;AAC1B,eAAW,YAAY,KAAK,sBAAuB,UAAS,MAAM;AAClE,WAAO;AAAA,EACT;AAAA,EAEO,iBAA2B;AAChC,SAAK,UAAU,QAAQ,CAAC,WAAW,KAAK,oBAAoB,MAAM,CAAC;AACnE,WAAO;AAAA,EACT;AAAA,EAEQ,UAAU,OAAsC;AACtD,QAAI,CAAC,KAAK,WAAW,KAAK,QAAQ,WAAW,EAAG,QAAO;AAEvD,UAAM,MAAM,YAAY,+BAA+B,OAAO,KAAK,MAAM;AACzE,UAAM,cAAc,IAAI,QAAQ,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AAC9C,SAAK,UAAU,cAAc,aAAa,KAAK,MAAM;AAErD,UAAM,OAAO,KAAK,gBAAgB,KAAK,QAAQ,OAAO,CAAC,QAAQ,IAAI,OAAO,IAAI,KAAK;AACnF,UAAM,gBAAgB,KAAK,UAAU,iBAAiB,IAAI;AAE1D,QAAI,cAAc,WAAW,GAAG;AAC9B,UAAI,KAAK,8BAA+B,MAAK,eAAe;AAC5D,aAAO;AAAA,IACT;AAEA,SAAK,eAAe,cAAc,CAAC,EAAE,MAAM;AAC3C,WAAO,cAAc,CAAC,EAAE;AAAA,EAC1B;AACF;","names":["object"]}
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@viniciusgoncalves/three-toolkit",
3
+ "version": "0.1.0",
4
+ "main": "dist/index.cjs",
5
+ "module": "dist/index.mjs",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "files": [
9
+ "dist"
10
+ ],
11
+ "scripts": {
12
+ "build": "tsup",
13
+ "build:watch": "tsup --watch",
14
+ "lint": "eslint \"src/**/*.{ts,tsx}\" --fix",
15
+ "format": "prettier --write \"src/**/*.{ts,tsx,js,json,md}\"",
16
+ "fix": "npm run format && npm run lint",
17
+ "clean": "rimraf dist"
18
+ },
19
+ "keywords": [
20
+ "threejs",
21
+ "toolkit",
22
+ "typescript"
23
+ ],
24
+ "author": "Vinicius Gonçalves <viniciusgoncalves2000@hotmail.com>",
25
+ "license": "MIT",
26
+ "description": "",
27
+ "peerDependencies": {
28
+ "three": "^0.169.0"
29
+ },
30
+ "devDependencies": {
31
+ "@eslint/js": "^9.39.1",
32
+ "@types/node": "^24.10.1",
33
+ "@typescript-eslint/eslint-plugin": "^8.48.0",
34
+ "@typescript-eslint/parser": "^8.48.0",
35
+ "@types/three": "^0.181.0",
36
+ "eslint": "^9.39.1",
37
+ "eslint-config-prettier": "^10.1.8",
38
+ "eslint-plugin-import": "^2.32.0",
39
+ "prettier": "^3.7.2",
40
+ "tsup": "^8.5.1",
41
+ "typescript": "^5.9.3",
42
+ "typescript-eslint": "^8.48.0",
43
+ "three": "^0.169.0"
44
+ },
45
+ "repository": {
46
+ "type": "git",
47
+ "url": "git+https://github.com/ViniciusGoncalves00/threejs-toolkit.git"
48
+ },
49
+ "dependencies": {
50
+ "core-toolkit": "^0.1.1"
51
+ }
52
+ }