@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.
Files changed (184) hide show
  1. package/lib/dist/canvas/gizmo/painter/tips.d.ts +1 -1
  2. package/lib/dist/canvas/gizmo/painter/tips.d.ts.map +1 -1
  3. package/lib/dist/canvas/gizmo/painter/tips.js +1 -1
  4. package/lib/dist/color/color.d.ts +4 -0
  5. package/lib/dist/color/color.d.ts.map +1 -1
  6. package/lib/dist/color/color.js +21 -1
  7. package/lib/dist/context/context.d.ts +3 -0
  8. package/lib/dist/context/context.d.ts.map +1 -1
  9. package/lib/dist/context/context.js +10 -7
  10. package/lib/dist/context/logic.d.ts +2 -2
  11. package/lib/dist/context/logic.js +2 -2
  12. package/lib/dist/context/ubo-manager.d.ts +10 -0
  13. package/lib/dist/context/ubo-manager.d.ts.map +1 -0
  14. package/lib/dist/context/ubo-manager.js +23 -0
  15. package/lib/dist/dataset/dataset.d.ts +8 -3
  16. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  17. package/lib/dist/dataset/dataset.js +35 -12
  18. package/lib/dist/filter/blur.d.ts +1 -0
  19. package/lib/dist/filter/blur.d.ts.map +1 -1
  20. package/lib/dist/filter/blur.js +3 -1
  21. package/lib/dist/filter/filter.d.ts +4 -1
  22. package/lib/dist/filter/filter.d.ts.map +1 -1
  23. package/lib/dist/filter/filter.js +4 -1
  24. package/lib/dist/filter/hue-rotation.d.ts +2 -1
  25. package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
  26. package/lib/dist/filter/hue-rotation.js +3 -2
  27. package/lib/dist/index.d.ts +2 -0
  28. package/lib/dist/index.d.ts.map +1 -1
  29. package/lib/dist/index.js +3 -1
  30. package/lib/dist/interface/transformable.d.ts +1 -1
  31. package/lib/dist/loader/image.d.ts +3 -3
  32. package/lib/dist/loader/image.d.ts.map +1 -1
  33. package/lib/dist/loader/image.js +10 -22
  34. package/lib/dist/material/glass.js +3 -3
  35. package/lib/dist/material/material.d.ts +3 -7
  36. package/lib/dist/material/material.d.ts.map +1 -1
  37. package/lib/dist/material/material.js +1 -1
  38. package/lib/dist/painter/background-with-depth/background-with-depth.d.ts +2 -2
  39. package/lib/dist/painter/background-with-depth/background-with-depth.d.ts.map +1 -1
  40. package/lib/dist/painter/background-with-depth/background-with-depth.js +3 -3
  41. package/lib/dist/painter/debug/point/point.d.ts +1 -1
  42. package/lib/dist/painter/debug/point/point.d.ts.map +1 -1
  43. package/lib/dist/painter/debug/point/point.js +1 -1
  44. package/lib/dist/painter/debug/stencil/stencil.d.ts +1 -1
  45. package/lib/dist/painter/debug/stencil/stencil.d.ts.map +1 -1
  46. package/lib/dist/painter/debug/stencil/stencil.js +1 -1
  47. package/lib/dist/painter/filter/filter.d.ts +8 -10
  48. package/lib/dist/painter/filter/filter.d.ts.map +1 -1
  49. package/lib/dist/painter/filter/filter.js +41 -47
  50. package/lib/dist/painter/fragment-shader/fragment-shader.d.ts +3 -3
  51. package/lib/dist/painter/fragment-shader/fragment-shader.d.ts.map +1 -1
  52. package/lib/dist/painter/fragment-shader/fragment-shader.js +3 -3
  53. package/lib/dist/painter/framebuffer-msaa.d.ts +24 -13
  54. package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
  55. package/lib/dist/painter/framebuffer-msaa.js +60 -9
  56. package/lib/dist/painter/framebuffer.d.ts +20 -19
  57. package/lib/dist/painter/framebuffer.d.ts.map +1 -1
  58. package/lib/dist/painter/framebuffer.js +76 -19
  59. package/lib/dist/painter/gizmo/gizmo.d.ts +31 -0
  60. package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -0
  61. package/lib/dist/painter/gizmo/gizmo.js +186 -0
  62. package/lib/dist/painter/gizmo/index.d.ts +2 -0
  63. package/lib/dist/painter/gizmo/index.d.ts.map +1 -0
  64. package/lib/dist/painter/gizmo/index.js +2 -0
  65. package/lib/dist/painter/gizmo/painters/axes.1.d.ts +14 -0
  66. package/lib/dist/painter/gizmo/painters/axes.1.d.ts.map +1 -0
  67. package/lib/dist/painter/gizmo/painters/axes.1.js +50 -0
  68. package/lib/dist/painter/gizmo/painters/axes.d.ts +16 -0
  69. package/lib/dist/painter/gizmo/painters/axes.d.ts.map +1 -0
  70. package/lib/dist/painter/gizmo/painters/axes.js +81 -0
  71. package/lib/dist/painter/gizmo/painters/consts.d.ts +4 -0
  72. package/lib/dist/painter/gizmo/painters/consts.d.ts.map +1 -0
  73. package/lib/dist/painter/gizmo/painters/consts.js +4 -0
  74. package/lib/dist/painter/gizmo/painters/mask.d.ts +14 -0
  75. package/lib/dist/painter/gizmo/painters/mask.d.ts.map +1 -0
  76. package/lib/dist/painter/gizmo/painters/mask.js +90 -0
  77. package/lib/dist/painter/gizmo/painters/normal.1.d.ts +21 -0
  78. package/lib/dist/painter/gizmo/painters/normal.1.d.ts.map +1 -0
  79. package/lib/dist/painter/gizmo/painters/normal.1.js +111 -0
  80. package/lib/dist/painter/gizmo/painters/normal.d.ts +17 -0
  81. package/lib/dist/painter/gizmo/painters/normal.d.ts.map +1 -0
  82. package/lib/dist/painter/gizmo/painters/normal.js +87 -0
  83. package/lib/dist/painter/gizmo/painters/tips.d.ts +18 -0
  84. package/lib/dist/painter/gizmo/painters/tips.d.ts.map +1 -0
  85. package/lib/dist/painter/gizmo/painters/tips.js +44 -0
  86. package/lib/dist/painter/gizmo/tips.d.ts +22 -0
  87. package/lib/dist/painter/gizmo/tips.d.ts.map +1 -0
  88. package/lib/dist/painter/gizmo/tips.js +51 -0
  89. package/lib/dist/painter/group-camera.d.ts +5 -3
  90. package/lib/dist/painter/group-camera.d.ts.map +1 -1
  91. package/lib/dist/painter/group-camera.js +7 -3
  92. package/lib/dist/painter/group.d.ts +6 -6
  93. package/lib/dist/painter/group.d.ts.map +1 -1
  94. package/lib/dist/painter/group.js +19 -13
  95. package/lib/dist/painter/index.d.ts +3 -0
  96. package/lib/dist/painter/index.d.ts.map +1 -1
  97. package/lib/dist/painter/index.js +4 -1
  98. package/lib/dist/painter/lod/lod.d.ts +1 -1
  99. package/lib/dist/painter/lod/lod.js +2 -2
  100. package/lib/dist/painter/logic.d.ts +2 -2
  101. package/lib/dist/painter/logic.js +2 -2
  102. package/lib/dist/painter/mesh/gltf/gltf.d.ts +2 -8
  103. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  104. package/lib/dist/painter/mesh/gltf/gltf.js +1 -1
  105. package/lib/dist/painter/mesh/mesh/mesh.d.ts +7 -16
  106. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  107. package/lib/dist/painter/mesh/mesh/mesh.js +21 -9
  108. package/lib/dist/painter/mesh/normals/normals.d.ts +1 -1
  109. package/lib/dist/painter/mesh/normals/normals.d.ts.map +1 -1
  110. package/lib/dist/painter/mesh/normals/normals.js +1 -1
  111. package/lib/dist/painter/node/node.d.ts +3 -3
  112. package/lib/dist/painter/node/node.js +4 -4
  113. package/lib/dist/painter/overlay/index.d.ts +2 -0
  114. package/lib/dist/painter/overlay/index.d.ts.map +1 -0
  115. package/lib/dist/painter/overlay/index.js +2 -0
  116. package/lib/dist/painter/overlay/overlay.d.ts +77 -0
  117. package/lib/dist/painter/overlay/overlay.d.ts.map +1 -0
  118. package/lib/dist/painter/overlay/overlay.js +196 -0
  119. package/lib/dist/painter/painter.d.ts +1 -1
  120. package/lib/dist/painter/program.d.ts +70 -0
  121. package/lib/dist/painter/program.d.ts.map +1 -0
  122. package/lib/dist/painter/program.js +250 -0
  123. package/lib/dist/painter/scissor.d.ts +1 -1
  124. package/lib/dist/painter/scissor.js +2 -2
  125. package/lib/dist/painter/segments/segments-morphing.d.ts +4 -13
  126. package/lib/dist/painter/segments/segments-morphing.d.ts.map +1 -1
  127. package/lib/dist/painter/segments/segments-morphing.js +3 -3
  128. package/lib/dist/painter/segments/segments.d.ts +4 -13
  129. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  130. package/lib/dist/painter/segments/segments.js +3 -3
  131. package/lib/dist/painter/skybox/skybox.d.ts +1 -1
  132. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  133. package/lib/dist/painter/skybox/skybox.js +1 -1
  134. package/lib/dist/painter/sprites/sprites.d.ts +5 -0
  135. package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
  136. package/lib/dist/painter/sprites/sprites.js +20 -9
  137. package/lib/dist/painter/state/state.js +4 -4
  138. package/lib/dist/painter/tubes/tubes.d.ts +4 -13
  139. package/lib/dist/painter/tubes/tubes.d.ts.map +1 -1
  140. package/lib/dist/painter/tubes/tubes.js +2 -2
  141. package/lib/dist/painter/x-ray/x-ray.d.ts +4 -12
  142. package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -1
  143. package/lib/dist/painter/x-ray/x-ray.js +3 -3
  144. package/lib/dist/parser/gltf/gltf.d.ts +2 -5
  145. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  146. package/lib/dist/parser/gltf/gltf.js +1 -1
  147. package/lib/dist/program/program.d.ts +2 -0
  148. package/lib/dist/program/program.d.ts.map +1 -1
  149. package/lib/dist/program/program.js +43 -8
  150. package/lib/dist/shader/fragment.d.ts.map +1 -1
  151. package/lib/dist/shader/fragment.js +3 -3
  152. package/lib/dist/shader/vertex.d.ts +3 -1
  153. package/lib/dist/shader/vertex.d.ts.map +1 -1
  154. package/lib/dist/shader/vertex.js +8 -6
  155. package/lib/dist/texture/texture-depth.d.ts +3 -11
  156. package/lib/dist/texture/texture-depth.d.ts.map +1 -1
  157. package/lib/dist/texture/texture-depth.js +1 -1
  158. package/lib/dist/texture/texture2d.d.ts +5 -11
  159. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  160. package/lib/dist/texture/texture2d.js +3 -3
  161. package/lib/dist/time/interval/interval.d.ts +3 -3
  162. package/lib/dist/time/interval/interval.js +6 -6
  163. package/lib/dist/types/painter.d.ts +1 -1
  164. package/lib/dist/types/program.d.ts +3 -2
  165. package/lib/dist/types/program.d.ts.map +1 -1
  166. package/lib/dist/uniform/index.d.ts +3 -0
  167. package/lib/dist/uniform/index.d.ts.map +1 -0
  168. package/lib/dist/uniform/index.js +3 -0
  169. package/lib/dist/uniform/ubo-camera.d.ts +9 -0
  170. package/lib/dist/uniform/ubo-camera.d.ts.map +1 -0
  171. package/lib/dist/uniform/ubo-camera.js +20 -0
  172. package/lib/dist/uniform/uniform-buffer-object.d.ts +56 -0
  173. package/lib/dist/uniform/uniform-buffer-object.d.ts.map +1 -0
  174. package/lib/dist/uniform/uniform-buffer-object.js +347 -0
  175. package/lib/dist/utils/array.d.ts +2 -0
  176. package/lib/dist/utils/array.d.ts.map +1 -0
  177. package/lib/dist/utils/array.js +6 -0
  178. package/lib/dist/utils/index.d.ts +1 -0
  179. package/lib/dist/utils/index.d.ts.map +1 -1
  180. package/lib/dist/utils/index.js +2 -1
  181. package/lib/dist/version.d.ts +2 -0
  182. package/lib/dist/version.d.ts.map +1 -0
  183. package/lib/dist/version.js +2 -0
  184. 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,2 @@
1
+ export * from "./gizmo";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from "./gizmo.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9naXptby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFNBQVMsQ0FBQSJ9
@@ -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,4 @@
1
+ export declare const RED = "#F63652FF";
2
+ export declare const GREEN = "#70A41CFF";
3
+ export declare const BLUE = "#2F84E3FF";
4
+ //# sourceMappingURL=consts.d.ts.map
@@ -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"}