a3js 0.0.3 → 0.0.4
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 +3 -0
- package/dist/a3js.cjs.js +3 -3
- package/dist/a3js.es.js +82 -53
- package/package.json +2 -2
package/README.md
CHANGED
package/dist/a3js.cjs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const p=require("three");function u(s){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(s){for(const t in s)if(t!=="default"){const i=Object.getOwnPropertyDescriptor(s,t);Object.defineProperty(e,t,i.get?i:{enumerable:!0,get:()=>s[t]})}}return e.default=s,Object.freeze(e)}const n=u(p);class a{object;needsUpdate;constructor(e){this.object=this.initObject(e),this.needsUpdate=this.initNeedsUpdate()}initNeedsUpdate(){return!1}update(e){}setLoc(e,t,i){this.object.position.set(e,t,i)}}class d{scene;objects;constructor(){this.scene=new n.Scene,this.objects=[]}add(e){this.scene.add(e.object),this.objects.push(e)}update(e){for(const t of this.objects)t.needsUpdate&&t.update(e)}}class h extends a{}class c{scene;camera;constructor(e){this.scene=new d,this.camera=e,this.scene.scene.add(this.camera.object),this.camera.setLoc(0,0,3)}replaceScene(e){this.scene.scene.remove(this.camera.object),e.scene.add(this.camera.object);const t=this.scene;return this.scene=e,t}updateScene(e){this.scene.update(e)}}class o extends h{camera;headLight;constructor(e){super(e),this.camera=e,this.headLight=new n.SpotLight(16777215,1,0,Math.PI/3,0,0),this.headLight.rotation.x=3.14/2,this.object.add(this.camera),this.object.add(this.headLight)}initObject(){return new n.Object3D}getHeadLight(){return this.headLight}setAspect(e){b(this.camera)&&(this.camera.aspect=e,this.camera.updateProjectionMatrix())}setHeadLightEnable(e){e?this.headLight.intensity=1:this.headLight.intensity=0}}function b(s){return s.isPerspectiveCamera===!0}class m extends HTMLElement{ro;base;renderer;scene;camera;camera3js;clock;constructor(e){super(),e||(e=new n.PerspectiveCamera(75,300/150,.1,1e3)),this.camera3js=e;const t=new o(e);this.base=new c(t),this.scene=this.base.scene,this.camera=this.base.camera,this.renderer=new n.WebGLRenderer,this.clock=new n.Clock,this.style="display: block;",this.renderer.domElement.style="display: block; width: 100%; height: 100%; margin: 0; padding: 0;",this.appendChild(this.renderer.domElement),this.animationFrameId=requestAnimationFrame(this.renderingLoop)}connectedCallback(){this.ro=new ResizeObserver(()=>{const{width:e,height:t}=this.renderer.domElement.getBoundingClientRect();g(this.camera3js)&&(this.camera3js.aspect=e/t),this.renderer.setSize(e,t)}),this.ro.observe(this)}disconnectedCallback(){this.ro?.disconnect()}replaceScene(e){return this.base.replaceScene(e)}animationFrameId=-1;renderingLoop=()=>{this.animationFrameId=requestAnimationFrame(this.renderingLoop);const e=this.clock.getDelta();this.base.updateScene(e),this.renderer.render(this.scene.scene,this.camera3js)}}customElements.define("a3-canvas",m);function g(s){return s.isPerspectiveCamera===!0}const f=`
|
|
2
2
|
position: absolute;
|
|
3
3
|
top: 100px;
|
|
4
4
|
left: 100px;
|
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
border: 1px solid #555;
|
|
7
7
|
background: white;
|
|
8
8
|
box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.3);
|
|
9
|
-
`,
|
|
9
|
+
`,j=`
|
|
10
10
|
background: #444;
|
|
11
11
|
color: white;
|
|
12
12
|
padding: 8px;
|
|
13
13
|
cursor: move;
|
|
14
14
|
user-select: none; /* 文字選択を防ぐ */
|
|
15
|
-
`;class
|
|
15
|
+
`;class l extends HTMLElement{ro;base;renderer;scene;camera;camera3js;clock;isDragging=!1;offsetX=0;offsetY=0;constructor(e,t){super(),this.camera3js=new n.PerspectiveCamera(75,e/t,.1,1e3);const i=new o(this.camera3js);this.base=new c(i),this.scene=this.base.scene,this.camera=this.base.camera,this.renderer=new n.WebGLRenderer,this.clock=new n.Clock,this.camera3js.aspect=e/t,this.renderer.setSize(e,t),this.style=f,document.body?document.body.appendChild(this):document.addEventListener("DOMContentLoaded",()=>{document.body.append(this)},{once:!0});const r=document.createElement("div");r.textContent="A3Window",r.style=j,this.appendChild(r),r.addEventListener("mousedown",this.mouseDownListener),document.addEventListener("mousemove",this.mouseMoveListener),document.addEventListener("mouseup",this.mouseUpListener),this.renderer.domElement.style=`display: block; width: ${e}px; height: ${t}px; margin: 0; padding: 0;`,this.renderer.domElement.width=e,this.renderer.domElement.width=t,this.appendChild(this.renderer.domElement),this.animationFrameId=requestAnimationFrame(this.renderingLoop)}connectedCallback(){this.ro=new ResizeObserver(()=>{const{width:e,height:t}=this.renderer.domElement.getBoundingClientRect();this.camera3js.aspect=e/t,this.renderer.setSize(e,t)}),this.ro.observe(this)}disconnectedCallback(){this.ro?.disconnect()}mouseDownListener=e=>{this.isDragging=!0,this.offsetX=e.clientX-this.offsetLeft,this.offsetY=e.clientY-this.offsetTop};mouseMoveListener=e=>{this.isDragging&&(this.style.left=e.clientX-this.offsetX+"px",this.style.top=e.clientY-this.offsetY+"px")};mouseUpListener=()=>{this.isDragging=!1};replaceScene(e){return this.base.replaceScene(e)}animationFrameId=-1;renderingLoop=()=>{this.animationFrameId=requestAnimationFrame(this.renderingLoop);const e=this.clock.getDelta();this.scene&&(this.scene.update(e),this.renderer.render(this.scene.scene,this.camera3js))}}customElements.define("a3-window",l);class w extends a{initObject(){const e=new n.BoxGeometry,t=new n.MeshStandardMaterial({color:65280});return new n.Mesh(e,t)}initNeedsUpdate(){return!0}update(e){this.object.rotation.x+=e,this.object.rotation.y+=e,this.object.rotation.z+=e}}function L(s){return 2*s}exports.A3Camera=h;exports.A3Canvas=m;exports.A3Object=a;exports.A3Scene=d;exports.A3Test=w;exports.A3ViewBase=c;exports.A3Window=l;exports.GeneralCamera=o;exports.times2=L;
|
package/dist/a3js.es.js
CHANGED
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import * as i from "three";
|
|
2
|
-
class
|
|
2
|
+
class a {
|
|
3
3
|
object;
|
|
4
|
+
needsUpdate;
|
|
4
5
|
constructor(e) {
|
|
5
|
-
this.object = e;
|
|
6
|
+
this.object = this.initObject(e), this.needsUpdate = this.initNeedsUpdate();
|
|
7
|
+
}
|
|
8
|
+
initNeedsUpdate() {
|
|
9
|
+
return !1;
|
|
10
|
+
}
|
|
11
|
+
// デフォルトfalse
|
|
12
|
+
update(e) {
|
|
6
13
|
}
|
|
14
|
+
// デフォルト: 何もしない
|
|
7
15
|
setLoc(e, t, n) {
|
|
8
16
|
this.object.position.set(e, t, n);
|
|
9
17
|
}
|
|
10
18
|
}
|
|
11
|
-
|
|
12
|
-
return s?.isA3Updatable === !0;
|
|
13
|
-
}
|
|
14
|
-
class a {
|
|
19
|
+
class d {
|
|
15
20
|
scene;
|
|
16
21
|
objects;
|
|
17
22
|
constructor() {
|
|
@@ -22,65 +27,85 @@ class a {
|
|
|
22
27
|
}
|
|
23
28
|
update(e) {
|
|
24
29
|
for (const t of this.objects)
|
|
25
|
-
|
|
30
|
+
t.needsUpdate && t.update(e);
|
|
26
31
|
}
|
|
27
32
|
}
|
|
33
|
+
class h extends a {
|
|
34
|
+
}
|
|
28
35
|
class c {
|
|
36
|
+
scene;
|
|
37
|
+
camera;
|
|
38
|
+
constructor(e) {
|
|
39
|
+
this.scene = new d(), this.camera = e, this.scene.scene.add(this.camera.object), this.camera.setLoc(0, 0, 3);
|
|
40
|
+
}
|
|
41
|
+
replaceScene(e) {
|
|
42
|
+
this.scene.scene.remove(this.camera.object), e.scene.add(this.camera.object);
|
|
43
|
+
const t = this.scene;
|
|
44
|
+
return this.scene = e, t;
|
|
45
|
+
}
|
|
46
|
+
updateScene(e) {
|
|
47
|
+
this.scene.update(e);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
class o extends h {
|
|
29
51
|
camera;
|
|
30
52
|
headLight;
|
|
31
53
|
constructor(e) {
|
|
32
|
-
this.camera = e, this.headLight = new i.SpotLight(16777215, 1, 0, Math.PI / 3, 0, 0), this.headLight.rotation.x = 3.14 / 2;
|
|
54
|
+
super(e), this.camera = e, this.headLight = new i.SpotLight(16777215, 1, 0, Math.PI / 3, 0, 0), this.headLight.rotation.x = 3.14 / 2, this.object.add(this.camera), this.object.add(this.headLight);
|
|
33
55
|
}
|
|
34
|
-
|
|
35
|
-
|
|
56
|
+
initObject() {
|
|
57
|
+
return new i.Object3D();
|
|
36
58
|
}
|
|
37
|
-
|
|
38
|
-
|
|
59
|
+
getHeadLight() {
|
|
60
|
+
return this.headLight;
|
|
39
61
|
}
|
|
40
|
-
|
|
41
|
-
this.
|
|
62
|
+
setAspect(e) {
|
|
63
|
+
m(this.camera) && (this.camera.aspect = e, this.camera.updateProjectionMatrix());
|
|
42
64
|
}
|
|
43
|
-
|
|
44
|
-
this.headLight.intensity = 1;
|
|
65
|
+
setHeadLightEnable(e) {
|
|
66
|
+
e ? this.headLight.intensity = 1 : this.headLight.intensity = 0;
|
|
45
67
|
}
|
|
46
68
|
}
|
|
47
|
-
function
|
|
69
|
+
function m(s) {
|
|
48
70
|
return s.isPerspectiveCamera === !0;
|
|
49
71
|
}
|
|
50
|
-
class
|
|
72
|
+
class l extends HTMLElement {
|
|
51
73
|
ro;
|
|
74
|
+
base;
|
|
52
75
|
renderer;
|
|
53
76
|
scene;
|
|
54
77
|
camera;
|
|
78
|
+
camera3js;
|
|
55
79
|
clock;
|
|
56
|
-
constructor() {
|
|
57
|
-
super(),
|
|
58
|
-
const
|
|
59
|
-
this.
|
|
80
|
+
constructor(e) {
|
|
81
|
+
super(), e || (e = new i.PerspectiveCamera(75, 300 / 150, 0.1, 1e3)), this.camera3js = e;
|
|
82
|
+
const t = new o(e);
|
|
83
|
+
this.base = new c(t), this.scene = this.base.scene, this.camera = this.base.camera, this.renderer = new i.WebGLRenderer(), this.clock = new i.Clock(), this.style = "display: block;", this.renderer.domElement.style = "display: block; width: 100%; height: 100%; margin: 0; padding: 0;", this.appendChild(this.renderer.domElement), this.animationFrameId = requestAnimationFrame(this.renderingLoop);
|
|
60
84
|
}
|
|
61
85
|
connectedCallback() {
|
|
62
86
|
this.ro = new ResizeObserver(() => {
|
|
63
87
|
const { width: e, height: t } = this.renderer.domElement.getBoundingClientRect();
|
|
64
|
-
this.
|
|
88
|
+
p(this.camera3js) && (this.camera3js.aspect = e / t), this.renderer.setSize(e, t);
|
|
65
89
|
}), this.ro.observe(this);
|
|
66
90
|
}
|
|
67
91
|
disconnectedCallback() {
|
|
68
92
|
this.ro?.disconnect();
|
|
69
93
|
}
|
|
70
94
|
replaceScene(e) {
|
|
71
|
-
|
|
72
|
-
const t = this.scene;
|
|
73
|
-
return this.scene = e, t;
|
|
95
|
+
return this.base.replaceScene(e);
|
|
74
96
|
}
|
|
75
97
|
animationFrameId = -1;
|
|
76
98
|
renderingLoop = () => {
|
|
77
99
|
this.animationFrameId = requestAnimationFrame(this.renderingLoop);
|
|
78
100
|
const e = this.clock.getDelta();
|
|
79
|
-
this.
|
|
101
|
+
this.base.updateScene(e), this.renderer.render(this.scene.scene, this.camera3js);
|
|
80
102
|
};
|
|
81
103
|
}
|
|
82
|
-
customElements.define("a3-canvas",
|
|
83
|
-
|
|
104
|
+
customElements.define("a3-canvas", l);
|
|
105
|
+
function p(s) {
|
|
106
|
+
return s.isPerspectiveCamera === !0;
|
|
107
|
+
}
|
|
108
|
+
const u = `
|
|
84
109
|
position: absolute;
|
|
85
110
|
top: 100px;
|
|
86
111
|
left: 100px;
|
|
@@ -88,35 +113,37 @@ const l = `
|
|
|
88
113
|
border: 1px solid #555;
|
|
89
114
|
background: white;
|
|
90
115
|
box-shadow: 4px 4px 10px rgba(0, 0, 0, 0.3);
|
|
91
|
-
`,
|
|
116
|
+
`, b = `
|
|
92
117
|
background: #444;
|
|
93
118
|
color: white;
|
|
94
119
|
padding: 8px;
|
|
95
120
|
cursor: move;
|
|
96
121
|
user-select: none; /* 文字選択を防ぐ */
|
|
97
122
|
`;
|
|
98
|
-
class
|
|
123
|
+
class g extends HTMLElement {
|
|
99
124
|
ro;
|
|
125
|
+
base;
|
|
100
126
|
renderer;
|
|
101
127
|
scene;
|
|
102
128
|
camera;
|
|
129
|
+
camera3js;
|
|
103
130
|
clock;
|
|
104
131
|
isDragging = !1;
|
|
105
132
|
offsetX = 0;
|
|
106
133
|
offsetY = 0;
|
|
107
134
|
constructor(e, t) {
|
|
108
|
-
super(), this.
|
|
109
|
-
const n = new
|
|
110
|
-
this.
|
|
135
|
+
super(), this.camera3js = new i.PerspectiveCamera(75, e / t, 0.1, 1e3);
|
|
136
|
+
const n = new o(this.camera3js);
|
|
137
|
+
this.base = new c(n), this.scene = this.base.scene, this.camera = this.base.camera, this.renderer = new i.WebGLRenderer(), this.clock = new i.Clock(), this.camera3js.aspect = e / t, this.renderer.setSize(e, t), this.style = u, document.body ? document.body.appendChild(this) : document.addEventListener("DOMContentLoaded", () => {
|
|
111
138
|
document.body.append(this);
|
|
112
139
|
}, { once: !0 });
|
|
113
140
|
const r = document.createElement("div");
|
|
114
|
-
r.textContent = "A3Window", r.style =
|
|
141
|
+
r.textContent = "A3Window", r.style = b, this.appendChild(r), r.addEventListener("mousedown", this.mouseDownListener), document.addEventListener("mousemove", this.mouseMoveListener), document.addEventListener("mouseup", this.mouseUpListener), this.renderer.domElement.style = `display: block; width: ${e}px; height: ${t}px; margin: 0; padding: 0;`, this.renderer.domElement.width = e, this.renderer.domElement.width = t, this.appendChild(this.renderer.domElement), this.animationFrameId = requestAnimationFrame(this.renderingLoop);
|
|
115
142
|
}
|
|
116
143
|
connectedCallback() {
|
|
117
144
|
this.ro = new ResizeObserver(() => {
|
|
118
145
|
const { width: e, height: t } = this.renderer.domElement.getBoundingClientRect();
|
|
119
|
-
this.
|
|
146
|
+
this.camera3js.aspect = e / t, this.renderer.setSize(e, t);
|
|
120
147
|
}), this.ro.observe(this);
|
|
121
148
|
}
|
|
122
149
|
disconnectedCallback() {
|
|
@@ -132,37 +159,39 @@ class u extends HTMLElement {
|
|
|
132
159
|
this.isDragging = !1;
|
|
133
160
|
};
|
|
134
161
|
replaceScene(e) {
|
|
135
|
-
|
|
136
|
-
const t = this.scene;
|
|
137
|
-
return this.scene = e, t;
|
|
162
|
+
return this.base.replaceScene(e);
|
|
138
163
|
}
|
|
139
164
|
animationFrameId = -1;
|
|
140
165
|
renderingLoop = () => {
|
|
141
166
|
this.animationFrameId = requestAnimationFrame(this.renderingLoop);
|
|
142
167
|
const e = this.clock.getDelta();
|
|
143
|
-
this.scene && (this.scene.update(e), this.renderer.render(this.scene.scene, this.
|
|
168
|
+
this.scene && (this.scene.update(e), this.renderer.render(this.scene.scene, this.camera3js));
|
|
144
169
|
};
|
|
145
170
|
}
|
|
146
|
-
customElements.define("a3-window",
|
|
147
|
-
class
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
171
|
+
customElements.define("a3-window", g);
|
|
172
|
+
class f extends a {
|
|
173
|
+
initObject() {
|
|
174
|
+
const e = new i.BoxGeometry(), t = new i.MeshStandardMaterial({ color: 65280 });
|
|
175
|
+
return new i.Mesh(e, t);
|
|
176
|
+
}
|
|
177
|
+
initNeedsUpdate() {
|
|
178
|
+
return !0;
|
|
153
179
|
}
|
|
154
180
|
update(e) {
|
|
155
|
-
this.
|
|
181
|
+
this.object.rotation.x += e, this.object.rotation.y += e, this.object.rotation.z += e;
|
|
156
182
|
}
|
|
157
183
|
}
|
|
158
184
|
function L(s) {
|
|
159
185
|
return 2 * s;
|
|
160
186
|
}
|
|
161
187
|
export {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
a as
|
|
165
|
-
|
|
166
|
-
|
|
188
|
+
h as A3Camera,
|
|
189
|
+
l as A3Canvas,
|
|
190
|
+
a as A3Object,
|
|
191
|
+
d as A3Scene,
|
|
192
|
+
f as A3Test,
|
|
193
|
+
c as A3ViewBase,
|
|
194
|
+
g as A3Window,
|
|
195
|
+
o as GeneralCamera,
|
|
167
196
|
L as times2
|
|
168
197
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "a3js",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/a3js.cjs.js",
|
|
6
6
|
"module": "dist/a3js.es.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"dev": "vite",
|
|
19
19
|
"build": "vite build && tsc --emitDeclarationOnly",
|
|
20
20
|
"preview": "vite preview",
|
|
21
|
-
"docs": "typedoc && vitepress build docs-src --outDir docs"
|
|
21
|
+
"docs": "typedoc && vitepress build docs-src --outDir docs && rm -r docs-src/public/api"
|
|
22
22
|
},
|
|
23
23
|
"devDependencies": {
|
|
24
24
|
"@types/three": "^0.182.0",
|