@tolokoban/tgd 2.0.100 → 2.0.103
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/canvas/gizmo/painter/tips.d.ts +1 -1
- package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -1
- package/lib/dist/canvas/gizmo/painter/tips.js +1 -1
- 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 +2 -0
- package/lib/dist/index.d.ts.map +1 -1
- package/lib/dist/index.js +3 -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 +2 -2
- package/lib/dist/painter/background-with-depth/background-with-depth.d.ts.map +1 -1
- package/lib/dist/painter/background-with-depth/background-with-depth.js +3 -3
- package/lib/dist/painter/debug/point/point.d.ts +1 -1
- package/lib/dist/painter/debug/point/point.d.ts.map +1 -1
- package/lib/dist/painter/debug/point/point.js +1 -1
- package/lib/dist/painter/debug/stencil/stencil.d.ts +1 -1
- package/lib/dist/painter/debug/stencil/stencil.d.ts.map +1 -1
- package/lib/dist/painter/debug/stencil/stencil.js +1 -1
- package/lib/dist/painter/filter/filter.d.ts +8 -10
- 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 +3 -3
- package/lib/dist/painter/fragment-shader/fragment-shader.d.ts.map +1 -1
- package/lib/dist/painter/fragment-shader/fragment-shader.js +3 -3
- package/lib/dist/painter/framebuffer-msaa.d.ts +24 -13
- 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 +20 -19
- 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 +5 -3
- 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/mesh/normals/normals.d.ts +1 -1
- package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -1
- package/lib/dist/painter/mesh/normals/normals.js +1 -1
- 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/skybox/skybox.d.ts +1 -1
- package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
- package/lib/dist/painter/skybox/skybox.js +1 -1
- 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 +4 -12
- 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/lib/dist/version.d.ts +2 -0
- package/lib/dist/version.d.ts.map +1 -0
- package/lib/dist/version.js +2 -0
- package/package.json +4 -4
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l6bW8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9naXptby9naXptby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUUzQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFFM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDdkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlDLE9BQU8sRUFBNEIsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDMUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDN0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQVNyQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVO0lBa0IzQyxZQUNvQixPQUFtQixFQUNuQyxFQUFFLE1BQU0sR0FB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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=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TgdContext } from "../../../context";
|
|
2
|
+
import { TgdPainter } from "../../painter";
|
|
3
|
+
export declare class PainterTipsMask extends TgdPainter {
|
|
4
|
+
readonly context: TgdContext;
|
|
5
|
+
size: number;
|
|
6
|
+
private readonly prg;
|
|
7
|
+
private readonly vao;
|
|
8
|
+
constructor(context: TgdContext, options: {
|
|
9
|
+
size: number;
|
|
10
|
+
});
|
|
11
|
+
delete(): void;
|
|
12
|
+
paint(time: number, delta: number): void;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=mask.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../../src/painter/gizmo/painters/mask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAMjD,qBAAa,eAAgB,SAAQ,UAAU;aAOvB,OAAO,EAAE,UAAU;IANhC,IAAI,EAAE,MAAM,CAAA;IAEnB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGhB,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAoE7B,MAAM,IAAI,IAAI;IAKd,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAgB3C"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { TgdDataset } from "./../../../dataset/index.js";
|
|
2
|
+
import { TgdPainter } from "./../../painter.js";
|
|
3
|
+
import { TgdPainterState } from "./../../state/index.js";
|
|
4
|
+
import { TgdProgram } from "./../../../program/index.js";
|
|
5
|
+
import { TgdShaderFragment, TgdShaderVertex } from "./../../../shader/index.js";
|
|
6
|
+
import { TgdVertexArray } from "./../../../vao/index.js";
|
|
7
|
+
export class PainterTipsMask extends TgdPainter {
|
|
8
|
+
constructor(context, options) {
|
|
9
|
+
super();
|
|
10
|
+
this.context = context;
|
|
11
|
+
this.size = options.size;
|
|
12
|
+
const prg = new TgdProgram(context.gl, {
|
|
13
|
+
vert: new TgdShaderVertex({
|
|
14
|
+
uniforms: {
|
|
15
|
+
uniIndex: "float",
|
|
16
|
+
uniTransfoMatrix: "mat4",
|
|
17
|
+
uniModelViewMatrix: "mat4",
|
|
18
|
+
uniProjectionMatrix: "mat4",
|
|
19
|
+
uniRadius: "float",
|
|
20
|
+
uniScreenHeightInPixels: "float",
|
|
21
|
+
},
|
|
22
|
+
attributes: {
|
|
23
|
+
attPoint: "vec3",
|
|
24
|
+
attIndex: "float",
|
|
25
|
+
},
|
|
26
|
+
varying: {
|
|
27
|
+
varIndex: "float",
|
|
28
|
+
},
|
|
29
|
+
mainCode: [
|
|
30
|
+
"varIndex = attIndex;",
|
|
31
|
+
"vec4 point = uniModelViewMatrix * vec4(attPoint.xyz, 1.0);",
|
|
32
|
+
"vec4 shift = point + vec4(0, uniRadius, 0, 0);",
|
|
33
|
+
"gl_Position = uniProjectionMatrix * point;",
|
|
34
|
+
"vec4 screenShift = uniProjectionMatrix * shift;",
|
|
35
|
+
"gl_PointSize = max(",
|
|
36
|
+
["8.0,", "abs(screenShift.y - gl_Position.y) * uniScreenHeightInPixels / gl_Position.w"],
|
|
37
|
+
");",
|
|
38
|
+
],
|
|
39
|
+
}),
|
|
40
|
+
frag: new TgdShaderFragment({
|
|
41
|
+
uniforms: {
|
|
42
|
+
uniTexture: "sampler2D",
|
|
43
|
+
},
|
|
44
|
+
outputs: {
|
|
45
|
+
FragColor: "vec4",
|
|
46
|
+
},
|
|
47
|
+
mainCode: [
|
|
48
|
+
"vec2 v = 2.0 * (gl_PointCoord - vec2(.5));",
|
|
49
|
+
"float d = dot(v, v);",
|
|
50
|
+
"if (d > 1.0) discard;",
|
|
51
|
+
`FragColor = vec4(vec3(varIndex), 1.0);`,
|
|
52
|
+
],
|
|
53
|
+
}),
|
|
54
|
+
});
|
|
55
|
+
this.prg = prg;
|
|
56
|
+
const dataset = new TgdDataset({
|
|
57
|
+
attPoint: "vec3",
|
|
58
|
+
attIndex: "float",
|
|
59
|
+
});
|
|
60
|
+
// prettier-ignore
|
|
61
|
+
dataset.set("attPoint", new Float32Array([
|
|
62
|
+
+1, 0, 0, 0, +1, 0, 0, 0, +1, -1, 0, 0, 0, -1, 0, 0, 0, -1,
|
|
63
|
+
]));
|
|
64
|
+
// prettier-ignore
|
|
65
|
+
dataset.set("attIndex", new Float32Array([1 / 8, 2 / 8, 3 / 8, 4 / 8, 5 / 8, 6 / 8]));
|
|
66
|
+
const vao = new TgdVertexArray(context.gl, prg, [dataset]);
|
|
67
|
+
this.vao = vao;
|
|
68
|
+
}
|
|
69
|
+
delete() {
|
|
70
|
+
this.prg.delete();
|
|
71
|
+
this.vao.delete();
|
|
72
|
+
}
|
|
73
|
+
paint(time, delta) {
|
|
74
|
+
const { context, prg, vao } = this;
|
|
75
|
+
const { gl, camera } = context;
|
|
76
|
+
prg.use();
|
|
77
|
+
prg.uniform1f("uniRadius", 0.333);
|
|
78
|
+
prg.uniform1f("uniScreenHeightInPixels", this.size);
|
|
79
|
+
prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
|
|
80
|
+
prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
|
|
81
|
+
vao.bind();
|
|
82
|
+
TgdPainterState.do(context, {
|
|
83
|
+
depth: "less",
|
|
84
|
+
blend: "off",
|
|
85
|
+
action: () => gl.drawArrays(gl.POINTS, 0, 6),
|
|
86
|
+
});
|
|
87
|
+
vao.unbind();
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFzay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL2dpem1vL3BhaW50ZXJzL21hc2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQTtBQUNoRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sVUFBVSxDQUFBO0FBRXpDLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFNM0MsWUFDb0IsT0FBbUIsRUFDbkMsT0FBeUI7UUFFekIsS0FBSyxFQUFFLENBQUE7UUFIUyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBSW5DLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQTtRQUN4QixNQUFNLEdBQUcsR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ25DLElBQUksRUFBRSxJQUFJLGVBQWUsQ0FBQztnQkFDdEIsUUFBUSxFQUFFO29CQUNOLFFBQVEsRUFBRSxPQUFPO29CQUNqQixnQkFBZ0IsRUFBRSxNQUFNO29CQUN4QixrQkFBa0IsRUFBRSxNQUFNO29CQUMxQixtQkFBbUIsRUFBRSxNQUFNO29CQUMzQixTQUFTLEVBQUUsT0FBTztvQkFDbEIsdUJBQXVCLEVBQUUsT0FBTztpQkFDbkM7Z0JBQ0QsVUFBVSxFQUFFO29CQUNSLFFBQVEsRUFBRSxNQUFNO29CQUNoQixRQUFRLEVBQUUsT0FBTztpQkFDcEI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLFFBQVEsRUFBRSxPQUFPO2lC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
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TgdContext } from "../../../context";
|
|
2
|
+
import { TgdPainter } from "../../painter";
|
|
3
|
+
import { TgdTexture2D } from "../../../texture";
|
|
4
|
+
interface PainterTipsNormalOptions {
|
|
5
|
+
texture: TgdTexture2D;
|
|
6
|
+
size: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class PainterTipsNormal extends TgdPainter {
|
|
9
|
+
private readonly context;
|
|
10
|
+
static create(context: TgdContext, options: Omit<PainterTipsNormalOptions, "texture">): Promise<PainterTipsNormal>;
|
|
11
|
+
index: number;
|
|
12
|
+
size: number;
|
|
13
|
+
private readonly texture;
|
|
14
|
+
private readonly prg;
|
|
15
|
+
private readonly vao;
|
|
16
|
+
private constructor();
|
|
17
|
+
delete(): void;
|
|
18
|
+
paint(time: number, delta: number): void;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=normal.1.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normal.1.d.ts","sourceRoot":"","sources":["../../../../src/painter/gizmo/painters/normal.1.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIjD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAI3C,UAAU,wBAAwB;IAC9B,OAAO,EAAE,YAAY,CAAA;IACrB,IAAI,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,iBAAkB,SAAQ,UAAU;IAczC,OAAO,CAAC,QAAQ,CAAC,OAAO;WAbR,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,SAAS,CAAC;IAK3F,KAAK,SAAK;IACV,IAAI,EAAE,MAAM,CAAA;IAEnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IAEpC,OAAO;IA+EP,MAAM,IAAI,IAAI;IAMd,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAkB3C"}
|