@tolokoban/tgd 2.0.100 → 2.0.102
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/lib/dist/color/color.d.ts +4 -0
- package/lib/dist/color/color.d.ts.map +1 -1
- package/lib/dist/color/color.js +21 -1
- package/lib/dist/context/context.d.ts +3 -0
- package/lib/dist/context/context.d.ts.map +1 -1
- package/lib/dist/context/context.js +10 -7
- package/lib/dist/context/logic.d.ts +2 -2
- package/lib/dist/context/logic.js +2 -2
- package/lib/dist/context/ubo-manager.d.ts +10 -0
- package/lib/dist/context/ubo-manager.d.ts.map +1 -0
- package/lib/dist/context/ubo-manager.js +23 -0
- package/lib/dist/dataset/dataset.d.ts +8 -3
- package/lib/dist/dataset/dataset.d.ts.map +1 -1
- package/lib/dist/dataset/dataset.js +35 -12
- package/lib/dist/filter/blur.d.ts +1 -0
- package/lib/dist/filter/blur.d.ts.map +1 -1
- package/lib/dist/filter/blur.js +3 -1
- package/lib/dist/filter/filter.d.ts +4 -1
- package/lib/dist/filter/filter.d.ts.map +1 -1
- package/lib/dist/filter/filter.js +4 -1
- package/lib/dist/filter/hue-rotation.d.ts +2 -1
- package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
- package/lib/dist/filter/hue-rotation.js +3 -2
- package/lib/dist/index.d.ts +1 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +2 -1
- package/lib/dist/interface/transformable.d.ts +1 -1
- package/lib/dist/loader/image.d.ts +3 -3
- package/lib/dist/loader/image.d.ts.map +1 -1
- package/lib/dist/loader/image.js +10 -22
- package/lib/dist/material/glass.js +3 -3
- package/lib/dist/material/material.d.ts +3 -7
- package/lib/dist/material/material.d.ts.map +1 -1
- package/lib/dist/material/material.js +1 -1
- package/lib/dist/painter/background-with-depth/background-with-depth.d.ts +1 -1
- package/lib/dist/painter/background-with-depth/background-with-depth.js +2 -2
- package/lib/dist/painter/filter/filter.d.ts +7 -9
- package/lib/dist/painter/filter/filter.d.ts.map +1 -1
- package/lib/dist/painter/filter/filter.js +41 -47
- package/lib/dist/painter/fragment-shader/fragment-shader.d.ts +2 -2
- package/lib/dist/painter/fragment-shader/fragment-shader.js +2 -2
- package/lib/dist/painter/framebuffer-msaa.d.ts +23 -12
- package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer-msaa.js +60 -9
- package/lib/dist/painter/framebuffer.d.ts +19 -18
- package/lib/dist/painter/framebuffer.d.ts.map +1 -1
- package/lib/dist/painter/framebuffer.js +76 -19
- package/lib/dist/painter/gizmo/gizmo.d.ts +31 -0
- package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/gizmo.js +186 -0
- package/lib/dist/painter/gizmo/index.d.ts +2 -0
- package/lib/dist/painter/gizmo/index.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/index.js +2 -0
- package/lib/dist/painter/gizmo/painters/axes.1.d.ts +14 -0
- package/lib/dist/painter/gizmo/painters/axes.1.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/axes.1.js +50 -0
- package/lib/dist/painter/gizmo/painters/axes.d.ts +16 -0
- package/lib/dist/painter/gizmo/painters/axes.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/axes.js +81 -0
- package/lib/dist/painter/gizmo/painters/consts.d.ts +4 -0
- package/lib/dist/painter/gizmo/painters/consts.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/consts.js +4 -0
- package/lib/dist/painter/gizmo/painters/mask.d.ts +14 -0
- package/lib/dist/painter/gizmo/painters/mask.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/mask.js +90 -0
- package/lib/dist/painter/gizmo/painters/normal.1.d.ts +21 -0
- package/lib/dist/painter/gizmo/painters/normal.1.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/normal.1.js +111 -0
- package/lib/dist/painter/gizmo/painters/normal.d.ts +17 -0
- package/lib/dist/painter/gizmo/painters/normal.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/normal.js +87 -0
- package/lib/dist/painter/gizmo/painters/tips.d.ts +18 -0
- package/lib/dist/painter/gizmo/painters/tips.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/painters/tips.js +44 -0
- package/lib/dist/painter/gizmo/tips.d.ts +22 -0
- package/lib/dist/painter/gizmo/tips.d.ts.map +1 -0
- package/lib/dist/painter/gizmo/tips.js +51 -0
- package/lib/dist/painter/group-camera.d.ts +4 -2
- package/lib/dist/painter/group-camera.d.ts.map +1 -1
- package/lib/dist/painter/group-camera.js +7 -3
- package/lib/dist/painter/group.d.ts +6 -6
- package/lib/dist/painter/group.d.ts.map +1 -1
- package/lib/dist/painter/group.js +19 -13
- package/lib/dist/painter/index.d.ts +3 -0
- package/lib/dist/painter/index.d.ts.map +1 -1
- package/lib/dist/painter/index.js +4 -1
- package/lib/dist/painter/lod/lod.d.ts +1 -1
- package/lib/dist/painter/lod/lod.js +2 -2
- package/lib/dist/painter/logic.d.ts +2 -2
- package/lib/dist/painter/logic.js +2 -2
- package/lib/dist/painter/mesh/gltf/gltf.d.ts +2 -8
- package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/painter/mesh/gltf/gltf.js +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.d.ts +7 -16
- package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
- package/lib/dist/painter/mesh/mesh/mesh.js +21 -9
- package/lib/dist/painter/node/node.d.ts +3 -3
- package/lib/dist/painter/node/node.js +4 -4
- package/lib/dist/painter/overlay/index.d.ts +2 -0
- package/lib/dist/painter/overlay/index.d.ts.map +1 -0
- package/lib/dist/painter/overlay/index.js +2 -0
- package/lib/dist/painter/overlay/overlay.d.ts +77 -0
- package/lib/dist/painter/overlay/overlay.d.ts.map +1 -0
- package/lib/dist/painter/overlay/overlay.js +196 -0
- package/lib/dist/painter/painter.d.ts +1 -1
- package/lib/dist/painter/program.d.ts +70 -0
- package/lib/dist/painter/program.d.ts.map +1 -0
- package/lib/dist/painter/program.js +250 -0
- package/lib/dist/painter/scissor.d.ts +1 -1
- package/lib/dist/painter/scissor.js +2 -2
- package/lib/dist/painter/segments/segments-morphing.d.ts +4 -13
- package/lib/dist/painter/segments/segments-morphing.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments-morphing.js +3 -3
- package/lib/dist/painter/segments/segments.d.ts +4 -13
- package/lib/dist/painter/segments/segments.d.ts.map +1 -1
- package/lib/dist/painter/segments/segments.js +3 -3
- package/lib/dist/painter/sprites/sprites.d.ts +5 -0
- package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
- package/lib/dist/painter/sprites/sprites.js +20 -9
- package/lib/dist/painter/state/state.js +4 -4
- package/lib/dist/painter/tubes/tubes.d.ts +4 -13
- package/lib/dist/painter/tubes/tubes.d.ts.map +1 -1
- package/lib/dist/painter/tubes/tubes.js +2 -2
- package/lib/dist/painter/x-ray/x-ray.d.ts +3 -11
- package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -1
- package/lib/dist/painter/x-ray/x-ray.js +3 -3
- package/lib/dist/parser/gltf/gltf.d.ts +2 -5
- package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
- package/lib/dist/parser/gltf/gltf.js +1 -1
- package/lib/dist/program/program.d.ts +2 -0
- package/lib/dist/program/program.d.ts.map +1 -1
- package/lib/dist/program/program.js +43 -8
- package/lib/dist/shader/fragment.d.ts.map +1 -1
- package/lib/dist/shader/fragment.js +3 -3
- package/lib/dist/shader/vertex.d.ts +3 -1
- package/lib/dist/shader/vertex.d.ts.map +1 -1
- package/lib/dist/shader/vertex.js +8 -6
- package/lib/dist/texture/texture-depth.d.ts +3 -11
- package/lib/dist/texture/texture-depth.d.ts.map +1 -1
- package/lib/dist/texture/texture-depth.js +1 -1
- package/lib/dist/texture/texture2d.d.ts +5 -11
- package/lib/dist/texture/texture2d.d.ts.map +1 -1
- package/lib/dist/texture/texture2d.js +3 -3
- package/lib/dist/time/interval/interval.d.ts +3 -3
- package/lib/dist/time/interval/interval.js +6 -6
- package/lib/dist/types/painter.d.ts +1 -1
- package/lib/dist/types/program.d.ts +3 -2
- package/lib/dist/types/program.d.ts.map +1 -1
- package/lib/dist/uniform/index.d.ts +3 -0
- package/lib/dist/uniform/index.d.ts.map +1 -0
- package/lib/dist/uniform/index.js +3 -0
- package/lib/dist/uniform/ubo-camera.d.ts +9 -0
- package/lib/dist/uniform/ubo-camera.d.ts.map +1 -0
- package/lib/dist/uniform/ubo-camera.js +20 -0
- package/lib/dist/uniform/uniform-buffer-object.d.ts +56 -0
- package/lib/dist/uniform/uniform-buffer-object.d.ts.map +1 -0
- package/lib/dist/uniform/uniform-buffer-object.js +347 -0
- package/lib/dist/utils/array.d.ts +2 -0
- package/lib/dist/utils/array.d.ts.map +1 -0
- package/lib/dist/utils/array.js +6 -0
- package/lib/dist/utils/index.d.ts +1 -0
- package/lib/dist/utils/index.d.ts.map +1 -1
- package/lib/dist/utils/index.js +2 -1
- package/package.json +2 -2
|
@@ -3,12 +3,10 @@ import { TgdPainterGroup } from "./group.js";
|
|
|
3
3
|
export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
4
4
|
constructor(context, options) {
|
|
5
5
|
super({
|
|
6
|
-
name: options.name,
|
|
7
6
|
children: options.children,
|
|
8
7
|
});
|
|
9
8
|
this.context = context;
|
|
10
9
|
this.options = options;
|
|
11
|
-
this.size = undefined;
|
|
12
10
|
/**
|
|
13
11
|
* The framebuffer becomes dirty as soon as the width or height changes.
|
|
14
12
|
*/
|
|
@@ -18,7 +16,10 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
18
16
|
this._framebuffer = null;
|
|
19
17
|
this._depthBuffer = null;
|
|
20
18
|
this._stencilBuffer = null;
|
|
21
|
-
|
|
19
|
+
if (options.name)
|
|
20
|
+
this.name = options.name;
|
|
21
|
+
else
|
|
22
|
+
this.name = `FramebufferMSAA/${this.name}`;
|
|
22
23
|
const { textureColor0, textureColor1, textureColor2, textureColor3 } = options;
|
|
23
24
|
if (!(textureColor0 || textureColor1 || textureColor2 || textureColor3)) {
|
|
24
25
|
console.warn("[TgdPainterFramebuffer] You gave no color texture in the constructor: nothing will be rendered!", options);
|
|
@@ -37,6 +38,48 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
37
38
|
this.textureColor2 ? gl.COLOR_ATTACHMENT2 : gl.NONE,
|
|
38
39
|
this.textureColor3 ? gl.COLOR_ATTACHMENT3 : gl.NONE,
|
|
39
40
|
];
|
|
41
|
+
this.isFixedSize = !!options.fixedSize;
|
|
42
|
+
if (options.fixedSize) {
|
|
43
|
+
const [width, height] = options.fixedSize;
|
|
44
|
+
this.width = width;
|
|
45
|
+
this.height = height;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
get textureColor0() {
|
|
49
|
+
return this._textureColor0;
|
|
50
|
+
}
|
|
51
|
+
set textureColor0(textureColor0) {
|
|
52
|
+
if (this._textureColor0 === textureColor0)
|
|
53
|
+
return;
|
|
54
|
+
this._textureColor0 = textureColor0;
|
|
55
|
+
this.dirty = true;
|
|
56
|
+
}
|
|
57
|
+
get textureColor1() {
|
|
58
|
+
return this._textureColor1;
|
|
59
|
+
}
|
|
60
|
+
set textureColor1(textureColor1) {
|
|
61
|
+
if (this._textureColor1 === textureColor1)
|
|
62
|
+
return;
|
|
63
|
+
this._textureColor1 = textureColor1;
|
|
64
|
+
this.dirty = true;
|
|
65
|
+
}
|
|
66
|
+
get textureColor2() {
|
|
67
|
+
return this._textureColor2;
|
|
68
|
+
}
|
|
69
|
+
set textureColor2(textureColor2) {
|
|
70
|
+
if (this._textureColor2 === textureColor2)
|
|
71
|
+
return;
|
|
72
|
+
this._textureColor2 = textureColor2;
|
|
73
|
+
this.dirty = true;
|
|
74
|
+
}
|
|
75
|
+
get textureColor3() {
|
|
76
|
+
return this._textureColor3;
|
|
77
|
+
}
|
|
78
|
+
set textureColor3(textureColor3) {
|
|
79
|
+
if (this._textureColor3 === textureColor3)
|
|
80
|
+
return;
|
|
81
|
+
this._textureColor3 = textureColor3;
|
|
82
|
+
this.dirty = true;
|
|
40
83
|
}
|
|
41
84
|
get width() {
|
|
42
85
|
return this._width;
|
|
@@ -79,7 +122,7 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
79
122
|
gl.bindRenderbuffer(gl.RENDERBUFFER, null);
|
|
80
123
|
}
|
|
81
124
|
createStencilBuffer(gl) {
|
|
82
|
-
if (this.options.stencilBuffer
|
|
125
|
+
if (this.options.stencilBuffer) {
|
|
83
126
|
const { width, height } = this;
|
|
84
127
|
const stencilBuffer = gl.createRenderbuffer();
|
|
85
128
|
if (!stencilBuffer)
|
|
@@ -93,9 +136,11 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
93
136
|
createFramebufferIfNeeded() {
|
|
94
137
|
if (!this.dirty)
|
|
95
138
|
return;
|
|
96
|
-
const { context } = this;
|
|
97
|
-
|
|
139
|
+
const { context, width, height } = this;
|
|
140
|
+
if (width < 1 || height < 1)
|
|
141
|
+
return;
|
|
98
142
|
this.delete();
|
|
143
|
+
const { gl } = context;
|
|
99
144
|
this._framebuffer = webglCreateFramebuffer(gl);
|
|
100
145
|
gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
|
|
101
146
|
this.updateTextureForColor(this.textureColor0, 0);
|
|
@@ -110,23 +155,35 @@ export class TgdPainterFramebuffer extends TgdPainterGroup {
|
|
|
110
155
|
}
|
|
111
156
|
this.dirty = false;
|
|
112
157
|
}
|
|
113
|
-
paint(time,
|
|
114
|
-
|
|
115
|
-
const {
|
|
158
|
+
paint(time, delta) {
|
|
159
|
+
const { context, options } = this;
|
|
160
|
+
const { aspectRatio } = context;
|
|
116
161
|
const { gl } = context;
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
162
|
+
if (!this.isFixedSize) {
|
|
163
|
+
const { viewportMatchingScale = 1 } = options;
|
|
164
|
+
this.width = Math.round(context.width * viewportMatchingScale);
|
|
165
|
+
this.height = Math.round(context.height * viewportMatchingScale);
|
|
166
|
+
}
|
|
167
|
+
context.aspectRatio = this.width / this.height;
|
|
120
168
|
this.createFramebufferIfNeeded();
|
|
121
|
-
const currentFB = gl.getParameter(gl.FRAMEBUFFER_BINDING)
|
|
169
|
+
// const currentFB = gl.getParameter(gl.FRAMEBUFFER_BINDING)
|
|
170
|
+
// gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer)
|
|
171
|
+
// const viewport: Int32Array = gl.getParameter(gl.VIEWPORT)
|
|
172
|
+
// gl.viewport(0, 0, this.width, this.height)
|
|
173
|
+
// gl.drawBuffers(this.drawBuffers)
|
|
174
|
+
// super.paint(time, delta)
|
|
175
|
+
// gl.bindFramebuffer(gl.FRAMEBUFFER, currentFB)
|
|
176
|
+
// const [x, y, w, h] = viewport
|
|
177
|
+
// gl.viewport(x, y, w, h)
|
|
122
178
|
gl.bindFramebuffer(gl.FRAMEBUFFER, this._framebuffer);
|
|
123
|
-
const viewport =
|
|
179
|
+
const viewport = context.webglParams.viewport;
|
|
124
180
|
gl.viewport(0, 0, this.width, this.height);
|
|
125
181
|
gl.drawBuffers(this.drawBuffers);
|
|
126
|
-
super.paint(time,
|
|
127
|
-
gl.bindFramebuffer(gl.FRAMEBUFFER,
|
|
128
|
-
|
|
129
|
-
|
|
182
|
+
super.paint(time, delta);
|
|
183
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, null);
|
|
184
|
+
// this.blitFramebuffers()
|
|
185
|
+
context.webglParams.viewport = viewport;
|
|
186
|
+
context.aspectRatio = aspectRatio;
|
|
130
187
|
}
|
|
131
188
|
delete() {
|
|
132
189
|
const { context, _framebuffer, _depthBuffer, _stencilBuffer } = this;
|
|
@@ -151,4 +208,4 @@ function nameTexture(texture, name) {
|
|
|
151
208
|
}
|
|
152
209
|
return texture;
|
|
153
210
|
}
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVidWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9mcmFtZWJ1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUE7QUErQ3pDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBbUJ0RCxZQUNxQixPQUFtQixFQUNuQixPQUE4QztRQUUvRCxLQUFLLENBQUM7WUFDRixRQUFRLEVBQUUsT0FBTyxDQUFDLFFBQVE7U0FDN0IsQ0FBQyxDQUFBO1FBTGUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUF1QztRQWRuRTs7V0FFRztRQUNLLFVBQUssR0FBRyxJQUFJLENBQUE7UUFDWixXQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ1YsWUFBTyxHQUFHLENBQUMsQ0FBQTtRQUNYLGlCQUFZLEdBQTRCLElBQUksQ0FBQTtRQUM1QyxpQkFBWSxHQUE2QixJQUFJLENBQUE7UUFDN0MsbUJBQWMsR0FBNkIsSUFBSSxDQUFBO1FBV25ELElBQUksT0FBTyxDQUFDLElBQUk7WUFBRSxJQUFJLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUE7O1lBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsbUJBQW1CLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtRQUMvQyxNQUFNLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLEdBQUcsT0FBTyxDQUFBO1FBQzlFLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxhQUFhLElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdEUsT0FBTyxDQUFDLElBQUksQ0FDUixpR0FBaUcsRUFDakcsT0FBTyxDQUNWLENBQUE7WUFDRCxJQUFJ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
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { TgdCameraPerspective } from "../../camera";
|
|
2
|
+
import { TgdContext } from "../../context";
|
|
3
|
+
import { TgdVec3 } from "../../math";
|
|
4
|
+
import { TgdDebugPainterHierarchy, TgdPainter } from "../painter";
|
|
5
|
+
import { TgdEvent } from "../../event";
|
|
6
|
+
export interface TgdPainterGizmoOptions {
|
|
7
|
+
alignX: number;
|
|
8
|
+
alignY: number;
|
|
9
|
+
size: number;
|
|
10
|
+
margin: number;
|
|
11
|
+
}
|
|
12
|
+
export declare class TgdPainterGizmo extends TgdPainter {
|
|
13
|
+
private readonly context;
|
|
14
|
+
readonly eventTap: TgdEvent<Readonly<TgdVec3>>;
|
|
15
|
+
camera: TgdCameraPerspective;
|
|
16
|
+
alignX: number;
|
|
17
|
+
alignY: number;
|
|
18
|
+
size: number;
|
|
19
|
+
margin: number;
|
|
20
|
+
private group;
|
|
21
|
+
private readonly textureFramebuffer;
|
|
22
|
+
private overlay;
|
|
23
|
+
private contextOffscreen;
|
|
24
|
+
private readonly uniformCamera;
|
|
25
|
+
constructor(context: TgdContext, { alignX, alignY, size, margin }?: Partial<TgdPainterGizmoOptions>);
|
|
26
|
+
private readonly init;
|
|
27
|
+
delete(): void;
|
|
28
|
+
paint(time: number, delta: number): void;
|
|
29
|
+
get hierarchy(): TgdDebugPainterHierarchy;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=gizmo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gizmo.d.ts","sourceRoot":"","sources":["../../../src/painter/gizmo/gizmo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAoB,OAAO,EAAE,MAAM,WAAW,CAAA;AASrD,OAAO,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAMjE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,eAAgB,SAAQ,UAAU;IAmBvC,OAAO,CAAC,QAAQ,CAAC,OAAO;IAlB5B,SAAgB,QAAQ,8BAAoC;IACrD,MAAM,uBAIX;IACK,MAAM,SAAA;IACN,MAAM,SAAA;IACN,IAAI,SAAA;IACJ,MAAM,SAAA;IAEb,OAAO,CAAC,KAAK,CAA+B;IAC5C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAc;IACjD,OAAO,CAAC,OAAO,CAAiC;IAChD,OAAO,CAAC,gBAAgB,CAA0B;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwB;gBAGjC,OAAO,EAAE,UAAU,EACpC,EAAE,MAAW,EAAE,MAAW,EAAE,IAAU,EAAE,MAAU,EAAE,GAAE,OAAO,CAAC,sBAAsB,CAAM;IAyB9F,OAAO,CAAC,QAAQ,CAAC,IAAI,CAqGpB;IAED,MAAM,IAAI,IAAI;IAKd,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAaxC,IAAI,SAAS,IAAI,wBAAwB,CAOxC;CACJ"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { TgdCameraPerspective } from "./../../camera/index.js";
|
|
2
|
+
import { TgdContext } from "./../../context/index.js";
|
|
3
|
+
import { TgdMat3, TgdQuat, TgdVec3 } from "./../../math/index.js";
|
|
4
|
+
import { TgdTexture2D } from "./../../texture/index.js";
|
|
5
|
+
import { tgdActionCreateCameraInterpolation, tgdCanvasCreate } from "./../../utils/index.js";
|
|
6
|
+
import { TgdPainterClear } from "../clear.js";
|
|
7
|
+
import { TgdPainterFramebufferWithAntiAliasing } from "../framebuffer-msaa.js";
|
|
8
|
+
import { TgdPainterGroupCamera } from "../group-camera.js";
|
|
9
|
+
import { TgdPainterOverlay } from "../overlay/index.js";
|
|
10
|
+
import { TgdPainter } from "../painter.js";
|
|
11
|
+
import { TgdPainterState } from "../state/index.js";
|
|
12
|
+
import { PainterTipsMask } from "./painters/mask.js";
|
|
13
|
+
import { PainterTipsNormal } from "./painters/normal.js";
|
|
14
|
+
import { TgdUniformBufferObject } from "./../../uniform/index.js";
|
|
15
|
+
import { PainterAxes } from "./painters/axes.js";
|
|
16
|
+
import { TgdEvent } from "./../../event/index.js";
|
|
17
|
+
export class TgdPainterGizmo extends TgdPainter {
|
|
18
|
+
constructor(context, { alignX = +1, alignY = +1, size = 128, margin = 0 } = {}) {
|
|
19
|
+
super();
|
|
20
|
+
this.context = context;
|
|
21
|
+
this.eventTap = new TgdEvent();
|
|
22
|
+
this.camera = new TgdCameraPerspective({
|
|
23
|
+
name: "Gizmo/Camera",
|
|
24
|
+
near: 0.1,
|
|
25
|
+
far: 10,
|
|
26
|
+
});
|
|
27
|
+
this.group = null;
|
|
28
|
+
this.overlay = null;
|
|
29
|
+
this.contextOffscreen = null;
|
|
30
|
+
this.init = (tipsNormal) => {
|
|
31
|
+
const { context, size, alignX, alignY, camera, uniformCamera } = this;
|
|
32
|
+
console.log(camera.near, camera.far);
|
|
33
|
+
const group = new TgdPainterState(context, {
|
|
34
|
+
depth: "off",
|
|
35
|
+
blend: "alpha",
|
|
36
|
+
});
|
|
37
|
+
this.group = group;
|
|
38
|
+
group.removeAll();
|
|
39
|
+
const clear = new TgdPainterClear(context, {
|
|
40
|
+
color: [0, 0, 0, 0],
|
|
41
|
+
depth: 1,
|
|
42
|
+
});
|
|
43
|
+
const axes = new PainterAxes(context, { uniformCamera, size });
|
|
44
|
+
const state = new TgdPainterState(context, {
|
|
45
|
+
depth: "less",
|
|
46
|
+
blend: "off",
|
|
47
|
+
cull: "off",
|
|
48
|
+
children: [
|
|
49
|
+
new TgdPainterGroupCamera(context, {
|
|
50
|
+
camera,
|
|
51
|
+
children: [clear, axes, tipsNormal],
|
|
52
|
+
}),
|
|
53
|
+
],
|
|
54
|
+
});
|
|
55
|
+
const framebuffer = new TgdPainterFramebufferWithAntiAliasing(context, {
|
|
56
|
+
name: "Framebuffer",
|
|
57
|
+
depthBuffer: true,
|
|
58
|
+
textureColor0: this.textureFramebuffer,
|
|
59
|
+
children: [state],
|
|
60
|
+
fixedSize: [size, size],
|
|
61
|
+
});
|
|
62
|
+
const overlay = new TgdPainterOverlay(context, {
|
|
63
|
+
alignX,
|
|
64
|
+
alignY,
|
|
65
|
+
scaleY: -1,
|
|
66
|
+
width: size,
|
|
67
|
+
height: size,
|
|
68
|
+
margin: 0,
|
|
69
|
+
texture: framebuffer.textureColor0,
|
|
70
|
+
});
|
|
71
|
+
this.overlay = overlay;
|
|
72
|
+
group.add(framebuffer, overlay);
|
|
73
|
+
context.paint();
|
|
74
|
+
// Offscreen
|
|
75
|
+
const contextOffscreen = new TgdContext(new OffscreenCanvas(size, size), {
|
|
76
|
+
preserveDrawingBuffer: true,
|
|
77
|
+
antialias: false,
|
|
78
|
+
alpha: false,
|
|
79
|
+
camera,
|
|
80
|
+
});
|
|
81
|
+
contextOffscreen.add(new TgdPainterState(contextOffscreen, {
|
|
82
|
+
depth: "less",
|
|
83
|
+
blend: "off",
|
|
84
|
+
cull: "off",
|
|
85
|
+
children: [
|
|
86
|
+
new TgdPainterClear(contextOffscreen, {
|
|
87
|
+
color: [0, 0, 0, 1],
|
|
88
|
+
depth: 1,
|
|
89
|
+
}),
|
|
90
|
+
new PainterTipsMask(contextOffscreen, { size }),
|
|
91
|
+
],
|
|
92
|
+
}));
|
|
93
|
+
contextOffscreen.camera = camera;
|
|
94
|
+
this.contextOffscreen = contextOffscreen;
|
|
95
|
+
overlay.eventPointerHover.addListener((evt) => {
|
|
96
|
+
const [red] = contextOffscreen.readPixel(evt.current.x, evt.current.y);
|
|
97
|
+
const index = Math.floor((4 + red * 8) / 0xff) - 1;
|
|
98
|
+
if (tipsNormal.index !== index) {
|
|
99
|
+
tipsNormal.index = index;
|
|
100
|
+
context.paint();
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
let animations = [];
|
|
104
|
+
overlay.eventPointerTap.addListener((evt) => {
|
|
105
|
+
const [red] = contextOffscreen.readPixel(evt.x, evt.y);
|
|
106
|
+
const index = Math.floor((4 + red * 8) / 0xff) - 1;
|
|
107
|
+
if (index < 0 || index > 5)
|
|
108
|
+
return;
|
|
109
|
+
const { matrix } = context.camera.transfo;
|
|
110
|
+
const facing = new TgdVec3(matrix.m02, matrix.m12, matrix.m22);
|
|
111
|
+
const axisZ = AXES[index];
|
|
112
|
+
this.eventTap.dispatch(axisZ);
|
|
113
|
+
if (axisZ.isClose(facing)) {
|
|
114
|
+
// Clicking the facing vector is like cliking the opposite vector.
|
|
115
|
+
axisZ.scale(-1);
|
|
116
|
+
}
|
|
117
|
+
if (Math.abs(axisZ.y) > 0.999)
|
|
118
|
+
axisZ.scale(-1);
|
|
119
|
+
const axisY = Math.abs(axisZ.y) > 0.999 ? new TgdVec3(0, 0, 1) : new TgdVec3(0, 1, 0);
|
|
120
|
+
const axisX = TgdVec3.newFrom(axisY).cross(axisZ);
|
|
121
|
+
const orientation = TgdQuat.fromMatrix(new TgdMat3(axisX, axisY, axisZ));
|
|
122
|
+
context.animCancelArray(animations);
|
|
123
|
+
animations = context.animSchedule({
|
|
124
|
+
duration: 0.2,
|
|
125
|
+
action: tgdActionCreateCameraInterpolation(context.camera, {
|
|
126
|
+
orientation,
|
|
127
|
+
}),
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
const uniformCamera = new TgdUniformBufferObject(context, {
|
|
132
|
+
uniforms: {
|
|
133
|
+
uniModelViewMatrix: "mat4",
|
|
134
|
+
uniProjectionMatrix: "mat4",
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
this.uniformCamera = uniformCamera;
|
|
138
|
+
this.alignX = alignX;
|
|
139
|
+
this.alignY = alignY;
|
|
140
|
+
this.size = size;
|
|
141
|
+
this.margin = margin;
|
|
142
|
+
this.name = "Gizmo";
|
|
143
|
+
this.textureFramebuffer = new TgdTexture2D(context, {
|
|
144
|
+
load: tgdCanvasCreate(size, size),
|
|
145
|
+
params: {
|
|
146
|
+
minFilter: "NEAREST",
|
|
147
|
+
magFilter: "NEAREST",
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
PainterTipsNormal.create(context, { size, uniformCamera }).then(this.init);
|
|
151
|
+
}
|
|
152
|
+
delete() {
|
|
153
|
+
var _a;
|
|
154
|
+
(_a = this.group) === null || _a === void 0 ? void 0 : _a.delete();
|
|
155
|
+
this.uniformCamera.delete();
|
|
156
|
+
}
|
|
157
|
+
paint(time, delta) {
|
|
158
|
+
const { context, contextOffscreen, camera, group, size, uniformCamera } = this;
|
|
159
|
+
camera.screenWidth = size;
|
|
160
|
+
camera.screenHeight = size;
|
|
161
|
+
camera.fitSpaceAtTarget(3, 3);
|
|
162
|
+
camera.transfo.orientation = context.camera.transfo.orientation;
|
|
163
|
+
uniformCamera.values.uniModelViewMatrix = camera.matrixModelView;
|
|
164
|
+
uniformCamera.values.uniProjectionMatrix = camera.matrixProjection;
|
|
165
|
+
group === null || group === void 0 ? void 0 : group.paint(time, delta);
|
|
166
|
+
// Offscreen
|
|
167
|
+
contextOffscreen === null || contextOffscreen === void 0 ? void 0 : contextOffscreen.paint();
|
|
168
|
+
}
|
|
169
|
+
get hierarchy() {
|
|
170
|
+
const { group } = this;
|
|
171
|
+
if (!group)
|
|
172
|
+
return {};
|
|
173
|
+
return {
|
|
174
|
+
[this.name]: [group.hierarchy],
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const AXES = [
|
|
179
|
+
new TgdVec3(+1, 0, 0),
|
|
180
|
+
new TgdVec3(0, +1, 0),
|
|
181
|
+
new TgdVec3(0, 0, +1),
|
|
182
|
+
new TgdVec3(-1, 0, 0),
|
|
183
|
+
new TgdVec3(0, -1, 0),
|
|
184
|
+
new TgdVec3(0, 0, -1),
|
|
185
|
+
];
|
|
186
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9naXptby9naXptby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlDLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVNyQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBa0IzQyxZQUNxQixPQUFtQixFQUNwQyxFQUFFLE1BQU0sR0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/gizmo/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TgdContext } from "../../../context";
|
|
2
|
+
import { TgdPainterProgram } from "../../program";
|
|
3
|
+
import { TgdUniformBufferObject } from "../../../uniform";
|
|
4
|
+
interface PainterAxesOptions {
|
|
5
|
+
uniformCamera: TgdUniformBufferObject;
|
|
6
|
+
red?: string;
|
|
7
|
+
green?: string;
|
|
8
|
+
blue?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class PainterAxes extends TgdPainterProgram {
|
|
11
|
+
constructor(context: TgdContext, { uniformCamera, red, green, blue }: PainterAxesOptions);
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=axes.1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axes.1.d.ts","sourceRoot":"","sources":["../../../../src/painter/gizmo/painters/axes.1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAKrD,UAAU,kBAAkB;IACxB,aAAa,EAAE,sBAAsB,CAAA;IACrC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,WAAY,SAAQ,iBAAiB;gBAClC,OAAO,EAAE,UAAU,EAAE,EAAE,aAAa,EAAE,GAAS,EAAE,KAAa,EAAE,IAAW,EAAE,EAAE,kBAAkB;CAwChH"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { TgdPainterProgram } from "./../../program.js";
|
|
2
|
+
import { RED, GREEN, BLUE } from "./consts.js";
|
|
3
|
+
import { TgdColor } from "./../../../color/index.js";
|
|
4
|
+
export class PainterAxes extends TgdPainterProgram {
|
|
5
|
+
constructor(context, { uniformCamera, red = RED, green = GREEN, blue = BLUE }) {
|
|
6
|
+
const R = parseColor(red);
|
|
7
|
+
const G = parseColor(green);
|
|
8
|
+
const B = parseColor(blue);
|
|
9
|
+
super(context, {
|
|
10
|
+
drawMode: "LINES",
|
|
11
|
+
uniforms: {
|
|
12
|
+
uniformCamera,
|
|
13
|
+
},
|
|
14
|
+
varying: {
|
|
15
|
+
varColor: "vec4",
|
|
16
|
+
},
|
|
17
|
+
dataset: [
|
|
18
|
+
{
|
|
19
|
+
attribs: {
|
|
20
|
+
attPos: {
|
|
21
|
+
type: "vec3",
|
|
22
|
+
data: new Float32Array([0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]),
|
|
23
|
+
},
|
|
24
|
+
attCol: {
|
|
25
|
+
type: "vec3",
|
|
26
|
+
data: new Float32Array([...R, ...R, ...G, ...G, ...B, ...B]),
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
vert: {
|
|
32
|
+
mainCode: [
|
|
33
|
+
"varColor = vec4(attCol, 1.0);",
|
|
34
|
+
"gl_Position = uniProjectionMatrix * uniModelViewMatrix * vec4(attPos, 1.0);",
|
|
35
|
+
],
|
|
36
|
+
},
|
|
37
|
+
frag: {
|
|
38
|
+
mainCode: ["FragColor = varColor;"],
|
|
39
|
+
},
|
|
40
|
+
state: {
|
|
41
|
+
depth: "less",
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function parseColor(colorCSS) {
|
|
47
|
+
const color = TgdColor.fromString(colorCSS);
|
|
48
|
+
return [color.R, color.G, color.B];
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhlcy4xLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhaW50ZXIvZ2l6bW8vcGFpbnRlcnMvYXhlcy4xLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBRXhELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBU3JDLE1BQU0sT0FBTyxXQUFZLFNBQVEsaUJBQWlCO0lBQzlDLFlBQVksT0FBbUIsRUFBRSxFQUFFLGFBQWEsRUFBRSxHQUFHLEdBQUcsR0FBRyxFQUFFLEtBQUssR0FBRyxLQUFLLEVBQUUsSUFBSSxHQUFHLElBQUksRUFBc0I7UUFDekcsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ3pCLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUMzQixNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDMUIsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNYLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLFFBQVEsRUFBRTtnQkFDTixhQUFhO2FBQ2hCO1lBQ0QsT0FBTyxFQUFFO2dCQUNMLFFBQVEsRUFBRSxNQUFNO2FBQ25CO1lBQ0QsT0FBTyxFQUFFO2dCQUNMO29CQUNJLE9BQU8sRUFBRTt3QkFDTCxNQUFNLEVBQUU7NEJBQ0osSUFBSSxFQUFFLE1BQU07NEJBQ1osSUFBSSxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzt5QkFDakY7d0JBQ0QsTUFBTSxFQUFFOzRCQUNKLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7eUJBQy9EO3FCQUNKO2lCQUNKO2FBQ0o7WUFDRCxJQUFJLEVBQUU7Z0JBQ0YsUUFBUSxFQUFFO29CQUNOLCtCQUErQjtvQkFDL0IsNkVBQTZFO2lCQUNoRjthQUNKO1lBQ0QsSUFBSSxFQUFFO2dCQUNGLFFBQVEsRUFBRSxDQUFDLHVCQUF1QixDQUFDO2FBQ3RDO1lBQ0QsS0FBSyxFQUFFO2dCQUNILEtBQUssRUFBRSxNQUFNO2FBQ2hCO1NBQ0osQ0FBQyxDQUFBO0lBQ04sQ0FBQztDQUNKO0FBRUQsU0FBUyxVQUFVLENBQUMsUUFBZ0I7SUFDaEMsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQTtJQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQTtBQUN0QyxDQUFDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { TgdContext } from "../../../context";
|
|
2
|
+
import { TgdPainterProgram } from "../../program";
|
|
3
|
+
import { TgdUniformBufferObject } from "../../../uniform";
|
|
4
|
+
interface PainterAxesOptions {
|
|
5
|
+
uniformCamera: TgdUniformBufferObject;
|
|
6
|
+
size: number;
|
|
7
|
+
red?: string;
|
|
8
|
+
green?: string;
|
|
9
|
+
blue?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare class PainterAxes extends TgdPainterProgram {
|
|
12
|
+
size: number;
|
|
13
|
+
constructor(context: TgdContext, { uniformCamera, size, red, green, blue }: PainterAxesOptions);
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=axes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"axes.d.ts","sourceRoot":"","sources":["../../../../src/painter/gizmo/painters/axes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAMrD,UAAU,kBAAkB;IACxB,aAAa,EAAE,sBAAsB,CAAA;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,qBAAa,WAAY,SAAQ,iBAAiB;IACvC,IAAI,EAAE,MAAM,CAAA;gBAGf,OAAO,EAAE,UAAU,EACnB,EAAE,aAAa,EAAE,IAAI,EAAE,GAAS,EAAE,KAAa,EAAE,IAAW,EAAE,EAAE,kBAAkB;CAsEzF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { TgdPainterProgram } from "./../../program.js";
|
|
2
|
+
import { TgdUniformBufferObject } from "./../../../uniform/index.js";
|
|
3
|
+
import { RED, GREEN, BLUE } from "./consts.js";
|
|
4
|
+
import { TgdColor } from "./../../../color/index.js";
|
|
5
|
+
import { TgdVec2 } from "./../../../math/index.js";
|
|
6
|
+
export class PainterAxes extends TgdPainterProgram {
|
|
7
|
+
constructor(context, { uniformCamera, size, red = RED, green = GREEN, blue = BLUE }) {
|
|
8
|
+
const R = parseColor(red);
|
|
9
|
+
const G = parseColor(green);
|
|
10
|
+
const B = parseColor(blue);
|
|
11
|
+
const uniformPixels = new TgdUniformBufferObject(context, {
|
|
12
|
+
uniforms: {
|
|
13
|
+
uniPixels: "vec2",
|
|
14
|
+
},
|
|
15
|
+
});
|
|
16
|
+
const uniPixels = new TgdVec2();
|
|
17
|
+
super(context, {
|
|
18
|
+
drawMode: "TRIANGLE_STRIP",
|
|
19
|
+
uniforms: {
|
|
20
|
+
uniformCamera,
|
|
21
|
+
uniformPixels,
|
|
22
|
+
},
|
|
23
|
+
varying: {
|
|
24
|
+
varColor: "vec4",
|
|
25
|
+
},
|
|
26
|
+
dataset: [
|
|
27
|
+
{
|
|
28
|
+
attribs: {
|
|
29
|
+
attPos: {
|
|
30
|
+
type: "vec2",
|
|
31
|
+
data: new Float32Array([+1, 0, +1, +1, -1, 0, -1, +1]),
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
divisor: 1,
|
|
37
|
+
attribs: {
|
|
38
|
+
attVec: {
|
|
39
|
+
type: "vec3",
|
|
40
|
+
data: new Float32Array([1, 0, 0, 0, 1, 0, 0, 0, 1]),
|
|
41
|
+
},
|
|
42
|
+
attCol: {
|
|
43
|
+
type: "vec3",
|
|
44
|
+
data: new Float32Array([...R, ...G, ...B]),
|
|
45
|
+
},
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
vert: {
|
|
50
|
+
mainCode: [
|
|
51
|
+
"varColor = vec4(attCol, 1.0);",
|
|
52
|
+
"vec4 point = uniProjectionMatrix * uniModelViewMatrix * vec4(attVec, 1.0);",
|
|
53
|
+
"vec2 radial = normalize(vec2(-point.y, point.x)) * uniPixels * point.w;",
|
|
54
|
+
"point.xy *= attPos.y;",
|
|
55
|
+
"point.xy += radial * attPos.x;",
|
|
56
|
+
"gl_Position = point;",
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
frag: {
|
|
60
|
+
mainCode: ["FragColor = varColor;"],
|
|
61
|
+
},
|
|
62
|
+
state: {
|
|
63
|
+
depth: "off",
|
|
64
|
+
blend: "off",
|
|
65
|
+
cull: "off",
|
|
66
|
+
},
|
|
67
|
+
onEnter: () => {
|
|
68
|
+
const thickness = this.size / 64;
|
|
69
|
+
uniPixels.x = thickness / this.size;
|
|
70
|
+
uniPixels.y = uniPixels.x;
|
|
71
|
+
uniformPixels.values.uniPixels = uniPixels;
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
this.size = size;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
function parseColor(colorCSS) {
|
|
78
|
+
const color = TgdColor.fromString(colorCSS);
|
|
79
|
+
return [color.R, color.G, color.B];
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXhlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL2dpem1vL3BhaW50ZXJzL2F4ZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3JELE9BQU8sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3JDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFVbkMsTUFBTSxPQUFPLFdBQVksU0FBUSxpQkFBaUI7SUFHOUMsWUFDSSxPQUFtQixFQUNuQixFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLEdBQUcsRUFBRSxLQUFLLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxJQUFJLEVBQXNCO1FBRWxGLE1BQU0sQ0FBQyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN6QixNQUFNLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDM0IsTUFBTSxDQUFDLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzFCLE1BQU0sYUFBYSxHQUFHLElBQUksc0JBQXNCLENBQUMsT0FBTyxFQUFFO1lBQ3RELFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQUUsTUFBTTthQUNwQjtTQUNKLENBQUMsQ0FBQTtRQUNGLE1BQU0sU0FBUyxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDL0IsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNYLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsUUFBUSxFQUFFO2dCQUNOLGFBQWE7Z0JBQ2IsYUFBYTthQUNoQjtZQUNELE9BQU8sRUFBRTtnQkFDTCxRQUFRLEVBQUUsTUFBTTthQUNuQjtZQUNELE9BQU8sRUFBRTtnQkFDTDtvQkFDSSxPQUFPLEVBQUU7d0JBQ0wsTUFBTSxFQUFFOzRCQUNKLElBQUksRUFBRSxNQUFNOzRCQUNaLElBQUksRUFBRSxJQUFJLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQzt5QkFDekQ7cUJBQ0o7aUJBQ0o7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxFQUFFO3dCQUNMLE1BQU0sRUFBRTs0QkFDSixJQUFJLEVBQUUsTUFBTTs0QkFDWixJQUFJLEVBQUUsSUFBSSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO3lCQUN0RDt3QkFDRCxNQUFNLEVBQUU7NEJBQ0osSUFBSSxFQUFFLE1BQU07NEJBQ1osSUFBSSxFQUFFLElBQUksWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQzt5QkFDN0M7cUJBQ0o7aUJBQ0o7YUFDSjtZQUNELElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUU7b0JBQ04sK0JBQStCO29CQUMvQiw0RUFBNEU7b0JBQzVFLHlFQUF5RTtvQkFDekUsdUJBQXVCO29CQUN2QixnQ0FBZ0M7b0JBQ2hDLHNCQUFzQjtpQkFDekI7YUFDSjtZQUNELElBQUksRUFBRTtnQkFDRixRQUFRLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzthQUN0QztZQUNELEtBQUssRUFBRTtnQkFDSCxLQUFLLEVBQUUsS0FBSztnQkFDWixLQUFLLEVBQUUsS0FBSztnQkFDWixJQUFJLEVBQUUsS0FBSzthQUNkO1lBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRTtnQkFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQTtnQkFDaEMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtnQkFDbkMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFBO2dCQUN6QixhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUE7WUFDOUMsQ0FBQztTQUNKLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFBO0lBQ3BCLENBQUM7Q0FDSjtBQUVELFNBQVMsVUFBVSxDQUFDLFFBQWdCO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDdEMsQ0FBQyJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.d.ts","sourceRoot":"","sources":["../../../../src/painter/gizmo/painters/consts.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,GAAG,cAAc,CAAA;AAC9B,eAAO,MAAM,KAAK,cAAc,CAAA;AAChC,eAAO,MAAM,IAAI,cAAc,CAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export const RED = "#F63652FF";
|
|
2
|
+
export const GREEN = "#70A41CFF";
|
|
3
|
+
export const BLUE = "#2F84E3FF";
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3BhaW50ZXIvZ2l6bW8vcGFpbnRlcnMvY29uc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUE7QUFDOUIsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQTtBQUNoQyxNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFBIn0=
|