@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.
Files changed (164) hide show
  1. package/lib/dist/color/color.d.ts +4 -0
  2. package/lib/dist/color/color.d.ts.map +1 -1
  3. package/lib/dist/color/color.js +21 -1
  4. package/lib/dist/context/context.d.ts +3 -0
  5. package/lib/dist/context/context.d.ts.map +1 -1
  6. package/lib/dist/context/context.js +10 -7
  7. package/lib/dist/context/logic.d.ts +2 -2
  8. package/lib/dist/context/logic.js +2 -2
  9. package/lib/dist/context/ubo-manager.d.ts +10 -0
  10. package/lib/dist/context/ubo-manager.d.ts.map +1 -0
  11. package/lib/dist/context/ubo-manager.js +23 -0
  12. package/lib/dist/dataset/dataset.d.ts +8 -3
  13. package/lib/dist/dataset/dataset.d.ts.map +1 -1
  14. package/lib/dist/dataset/dataset.js +35 -12
  15. package/lib/dist/filter/blur.d.ts +1 -0
  16. package/lib/dist/filter/blur.d.ts.map +1 -1
  17. package/lib/dist/filter/blur.js +3 -1
  18. package/lib/dist/filter/filter.d.ts +4 -1
  19. package/lib/dist/filter/filter.d.ts.map +1 -1
  20. package/lib/dist/filter/filter.js +4 -1
  21. package/lib/dist/filter/hue-rotation.d.ts +2 -1
  22. package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
  23. package/lib/dist/filter/hue-rotation.js +3 -2
  24. package/lib/dist/index.d.ts +1 -0
  25. package/lib/dist/index.d.ts.map +1 -1
  26. package/lib/dist/index.js +2 -1
  27. package/lib/dist/interface/transformable.d.ts +1 -1
  28. package/lib/dist/loader/image.d.ts +3 -3
  29. package/lib/dist/loader/image.d.ts.map +1 -1
  30. package/lib/dist/loader/image.js +10 -22
  31. package/lib/dist/material/glass.js +3 -3
  32. package/lib/dist/material/material.d.ts +3 -7
  33. package/lib/dist/material/material.d.ts.map +1 -1
  34. package/lib/dist/material/material.js +1 -1
  35. package/lib/dist/painter/background-with-depth/background-with-depth.d.ts +1 -1
  36. package/lib/dist/painter/background-with-depth/background-with-depth.js +2 -2
  37. package/lib/dist/painter/filter/filter.d.ts +7 -9
  38. package/lib/dist/painter/filter/filter.d.ts.map +1 -1
  39. package/lib/dist/painter/filter/filter.js +41 -47
  40. package/lib/dist/painter/fragment-shader/fragment-shader.d.ts +2 -2
  41. package/lib/dist/painter/fragment-shader/fragment-shader.js +2 -2
  42. package/lib/dist/painter/framebuffer-msaa.d.ts +23 -12
  43. package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -1
  44. package/lib/dist/painter/framebuffer-msaa.js +60 -9
  45. package/lib/dist/painter/framebuffer.d.ts +19 -18
  46. package/lib/dist/painter/framebuffer.d.ts.map +1 -1
  47. package/lib/dist/painter/framebuffer.js +76 -19
  48. package/lib/dist/painter/gizmo/gizmo.d.ts +31 -0
  49. package/lib/dist/painter/gizmo/gizmo.d.ts.map +1 -0
  50. package/lib/dist/painter/gizmo/gizmo.js +186 -0
  51. package/lib/dist/painter/gizmo/index.d.ts +2 -0
  52. package/lib/dist/painter/gizmo/index.d.ts.map +1 -0
  53. package/lib/dist/painter/gizmo/index.js +2 -0
  54. package/lib/dist/painter/gizmo/painters/axes.1.d.ts +14 -0
  55. package/lib/dist/painter/gizmo/painters/axes.1.d.ts.map +1 -0
  56. package/lib/dist/painter/gizmo/painters/axes.1.js +50 -0
  57. package/lib/dist/painter/gizmo/painters/axes.d.ts +16 -0
  58. package/lib/dist/painter/gizmo/painters/axes.d.ts.map +1 -0
  59. package/lib/dist/painter/gizmo/painters/axes.js +81 -0
  60. package/lib/dist/painter/gizmo/painters/consts.d.ts +4 -0
  61. package/lib/dist/painter/gizmo/painters/consts.d.ts.map +1 -0
  62. package/lib/dist/painter/gizmo/painters/consts.js +4 -0
  63. package/lib/dist/painter/gizmo/painters/mask.d.ts +14 -0
  64. package/lib/dist/painter/gizmo/painters/mask.d.ts.map +1 -0
  65. package/lib/dist/painter/gizmo/painters/mask.js +90 -0
  66. package/lib/dist/painter/gizmo/painters/normal.1.d.ts +21 -0
  67. package/lib/dist/painter/gizmo/painters/normal.1.d.ts.map +1 -0
  68. package/lib/dist/painter/gizmo/painters/normal.1.js +111 -0
  69. package/lib/dist/painter/gizmo/painters/normal.d.ts +17 -0
  70. package/lib/dist/painter/gizmo/painters/normal.d.ts.map +1 -0
  71. package/lib/dist/painter/gizmo/painters/normal.js +87 -0
  72. package/lib/dist/painter/gizmo/painters/tips.d.ts +18 -0
  73. package/lib/dist/painter/gizmo/painters/tips.d.ts.map +1 -0
  74. package/lib/dist/painter/gizmo/painters/tips.js +44 -0
  75. package/lib/dist/painter/gizmo/tips.d.ts +22 -0
  76. package/lib/dist/painter/gizmo/tips.d.ts.map +1 -0
  77. package/lib/dist/painter/gizmo/tips.js +51 -0
  78. package/lib/dist/painter/group-camera.d.ts +4 -2
  79. package/lib/dist/painter/group-camera.d.ts.map +1 -1
  80. package/lib/dist/painter/group-camera.js +7 -3
  81. package/lib/dist/painter/group.d.ts +6 -6
  82. package/lib/dist/painter/group.d.ts.map +1 -1
  83. package/lib/dist/painter/group.js +19 -13
  84. package/lib/dist/painter/index.d.ts +3 -0
  85. package/lib/dist/painter/index.d.ts.map +1 -1
  86. package/lib/dist/painter/index.js +4 -1
  87. package/lib/dist/painter/lod/lod.d.ts +1 -1
  88. package/lib/dist/painter/lod/lod.js +2 -2
  89. package/lib/dist/painter/logic.d.ts +2 -2
  90. package/lib/dist/painter/logic.js +2 -2
  91. package/lib/dist/painter/mesh/gltf/gltf.d.ts +2 -8
  92. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  93. package/lib/dist/painter/mesh/gltf/gltf.js +1 -1
  94. package/lib/dist/painter/mesh/mesh/mesh.d.ts +7 -16
  95. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  96. package/lib/dist/painter/mesh/mesh/mesh.js +21 -9
  97. package/lib/dist/painter/node/node.d.ts +3 -3
  98. package/lib/dist/painter/node/node.js +4 -4
  99. package/lib/dist/painter/overlay/index.d.ts +2 -0
  100. package/lib/dist/painter/overlay/index.d.ts.map +1 -0
  101. package/lib/dist/painter/overlay/index.js +2 -0
  102. package/lib/dist/painter/overlay/overlay.d.ts +77 -0
  103. package/lib/dist/painter/overlay/overlay.d.ts.map +1 -0
  104. package/lib/dist/painter/overlay/overlay.js +196 -0
  105. package/lib/dist/painter/painter.d.ts +1 -1
  106. package/lib/dist/painter/program.d.ts +70 -0
  107. package/lib/dist/painter/program.d.ts.map +1 -0
  108. package/lib/dist/painter/program.js +250 -0
  109. package/lib/dist/painter/scissor.d.ts +1 -1
  110. package/lib/dist/painter/scissor.js +2 -2
  111. package/lib/dist/painter/segments/segments-morphing.d.ts +4 -13
  112. package/lib/dist/painter/segments/segments-morphing.d.ts.map +1 -1
  113. package/lib/dist/painter/segments/segments-morphing.js +3 -3
  114. package/lib/dist/painter/segments/segments.d.ts +4 -13
  115. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  116. package/lib/dist/painter/segments/segments.js +3 -3
  117. package/lib/dist/painter/sprites/sprites.d.ts +5 -0
  118. package/lib/dist/painter/sprites/sprites.d.ts.map +1 -1
  119. package/lib/dist/painter/sprites/sprites.js +20 -9
  120. package/lib/dist/painter/state/state.js +4 -4
  121. package/lib/dist/painter/tubes/tubes.d.ts +4 -13
  122. package/lib/dist/painter/tubes/tubes.d.ts.map +1 -1
  123. package/lib/dist/painter/tubes/tubes.js +2 -2
  124. package/lib/dist/painter/x-ray/x-ray.d.ts +3 -11
  125. package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -1
  126. package/lib/dist/painter/x-ray/x-ray.js +3 -3
  127. package/lib/dist/parser/gltf/gltf.d.ts +2 -5
  128. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  129. package/lib/dist/parser/gltf/gltf.js +1 -1
  130. package/lib/dist/program/program.d.ts +2 -0
  131. package/lib/dist/program/program.d.ts.map +1 -1
  132. package/lib/dist/program/program.js +43 -8
  133. package/lib/dist/shader/fragment.d.ts.map +1 -1
  134. package/lib/dist/shader/fragment.js +3 -3
  135. package/lib/dist/shader/vertex.d.ts +3 -1
  136. package/lib/dist/shader/vertex.d.ts.map +1 -1
  137. package/lib/dist/shader/vertex.js +8 -6
  138. package/lib/dist/texture/texture-depth.d.ts +3 -11
  139. package/lib/dist/texture/texture-depth.d.ts.map +1 -1
  140. package/lib/dist/texture/texture-depth.js +1 -1
  141. package/lib/dist/texture/texture2d.d.ts +5 -11
  142. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  143. package/lib/dist/texture/texture2d.js +3 -3
  144. package/lib/dist/time/interval/interval.d.ts +3 -3
  145. package/lib/dist/time/interval/interval.js +6 -6
  146. package/lib/dist/types/painter.d.ts +1 -1
  147. package/lib/dist/types/program.d.ts +3 -2
  148. package/lib/dist/types/program.d.ts.map +1 -1
  149. package/lib/dist/uniform/index.d.ts +3 -0
  150. package/lib/dist/uniform/index.d.ts.map +1 -0
  151. package/lib/dist/uniform/index.js +3 -0
  152. package/lib/dist/uniform/ubo-camera.d.ts +9 -0
  153. package/lib/dist/uniform/ubo-camera.d.ts.map +1 -0
  154. package/lib/dist/uniform/ubo-camera.js +20 -0
  155. package/lib/dist/uniform/uniform-buffer-object.d.ts +56 -0
  156. package/lib/dist/uniform/uniform-buffer-object.d.ts.map +1 -0
  157. package/lib/dist/uniform/uniform-buffer-object.js +347 -0
  158. package/lib/dist/utils/array.d.ts +2 -0
  159. package/lib/dist/utils/array.d.ts.map +1 -0
  160. package/lib/dist/utils/array.js +6 -0
  161. package/lib/dist/utils/index.d.ts +1 -0
  162. package/lib/dist/utils/index.d.ts.map +1 -1
  163. package/lib/dist/utils/index.js +2 -1
  164. 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
- this.size = options.size;
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 !== false) {
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
- const { gl } = context;
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, delay) {
114
- var _a, _b;
115
- const { context, options, size } = this;
158
+ paint(time, delta) {
159
+ const { context, options } = this;
160
+ const { aspectRatio } = context;
116
161
  const { gl } = context;
117
- const { viewportMatchingScale = 1 } = options;
118
- this.width = (_a = size === null || size === void 0 ? void 0 : size.width) !== null && _a !== void 0 ? _a : Math.round(gl.drawingBufferWidth * viewportMatchingScale);
119
- this.height = (_b = size === null || size === void 0 ? void 0 : size.height) !== null && _b !== void 0 ? _b : Math.round(gl.drawingBufferHeight * viewportMatchingScale);
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 = gl.getParameter(gl.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, delay);
127
- gl.bindFramebuffer(gl.FRAMEBUFFER, currentFB);
128
- const [x, y, w, h] = viewport;
129
- gl.viewport(x, y, w, h);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJhbWVidWZmZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGFpbnRlci9mcmFtZWJ1ZmZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUE7QUE4Q3pDLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxlQUFlO0lBbUJ0RCxZQUNxQixPQUF1QyxFQUN2QyxPQUE4QztRQUUvRCxLQUFLLENBQUM7WUFDRixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsUUFBUSxFQUFFLE9BQU8sQ0FBQyxRQUFRO1NBQzdCLENBQUMsQ0FBQTtRQU5lLFlBQU8sR0FBUCxPQUFPLENBQWdDO1FBQ3ZDLFlBQU8sR0FBUCxPQUFPLENBQXVDO1FBZjVELFNBQUksR0FBdUMsU0FBUyxDQUFBO1FBRTNEOztXQUVHO1FBQ0ssVUFBSyxHQUFHLElBQUksQ0FBQTtRQUNaLFdBQU0sR0FBRyxDQUFDLENBQUE7UUFDVixZQUFPLEdBQUcsQ0FBQyxDQUFBO1FBQ1gsaUJBQVksR0FBNEIsSUFBSSxDQUFBO1FBQzVDLGlCQUFZLEdBQTZCLElBQUksQ0FBQTtRQUM3QyxtQkFBYyxHQUE2QixJQUFJLENBQUE7UUFXbkQsSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFBO1FBQ3hCLE1BQU0sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsR0FBRyxPQUFPLENBQUE7UUFDOUUsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLGFBQWEsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUN0RSxPQUFPLENBQUMsSUFBSSxDQUNSLGlHQUFpRyxFQUNqRyxPQUFPLENBQ1YsQ0FBQTtZQUNELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN6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
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,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=