@tolokoban/tgd 2.0.28 → 2.0.30

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 (205) hide show
  1. package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
  2. package/lib/dist/camera/camera-orthographic.js +2 -1
  3. package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
  4. package/lib/dist/camera/camera-perspective.js +4 -10
  5. package/lib/dist/canvas/gizmo/gizmo.js +2 -2
  6. package/lib/dist/canvas/landscape/landscape.js +2 -2
  7. package/lib/dist/color/color.d.ts +22 -7
  8. package/lib/dist/color/color.d.ts.map +1 -1
  9. package/lib/dist/color/color.js +59 -8
  10. package/lib/dist/color/index.d.ts +1 -0
  11. package/lib/dist/color/index.d.ts.map +1 -1
  12. package/lib/dist/color/index.js +2 -1
  13. package/lib/dist/color/utils.d.ts +12 -0
  14. package/lib/dist/color/utils.d.ts.map +1 -0
  15. package/lib/dist/color/utils.js +21 -0
  16. package/lib/dist/context/context.d.ts +14 -31
  17. package/lib/dist/context/context.d.ts.map +1 -1
  18. package/lib/dist/context/context.js +54 -69
  19. package/lib/dist/factory/mesh-glb.js +2 -2
  20. package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
  21. package/lib/dist/filter/hue-rotation.js +1 -1
  22. package/lib/dist/filter/zoom.d.ts.map +1 -1
  23. package/lib/dist/filter/zoom.js +1 -1
  24. package/lib/dist/geometry/gltf.d.ts +12 -0
  25. package/lib/dist/geometry/gltf.d.ts.map +1 -0
  26. package/lib/dist/geometry/gltf.js +36 -0
  27. package/lib/dist/geometry/index.d.ts +2 -0
  28. package/lib/dist/geometry/index.d.ts.map +1 -1
  29. package/lib/dist/geometry/index.js +3 -1
  30. package/lib/dist/geometry/tools/index.d.ts +2 -0
  31. package/lib/dist/geometry/tools/index.d.ts.map +1 -0
  32. package/lib/dist/geometry/tools/index.js +2 -0
  33. package/lib/dist/geometry/tools/marching-cubes/data.d.ts +64 -0
  34. package/lib/dist/geometry/tools/marching-cubes/data.d.ts.map +1 -0
  35. package/lib/dist/geometry/tools/marching-cubes/data.js +361 -0
  36. package/lib/dist/geometry/tools/marching-cubes/index.d.ts +3 -0
  37. package/lib/dist/geometry/tools/marching-cubes/index.d.ts.map +1 -0
  38. package/lib/dist/geometry/tools/marching-cubes/index.js +3 -0
  39. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts +29 -0
  40. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.d.ts.map +1 -0
  41. package/lib/dist/geometry/tools/marching-cubes/marching-cubes.js +245 -0
  42. package/lib/dist/index.d.ts +3 -0
  43. package/lib/dist/index.d.ts.map +1 -1
  44. package/lib/dist/index.js +4 -1
  45. package/lib/dist/loader/binary.d.ts.map +1 -1
  46. package/lib/dist/loader/binary.js +3 -1
  47. package/lib/dist/material/face-orientation.d.ts +34 -0
  48. package/lib/dist/material/face-orientation.d.ts.map +1 -0
  49. package/lib/dist/material/face-orientation.js +68 -0
  50. package/lib/dist/material/flat.d.ts.map +1 -1
  51. package/lib/dist/material/flat.js +1 -1
  52. package/lib/dist/material/ghost.d.ts +2 -2
  53. package/lib/dist/material/ghost.d.ts.map +1 -1
  54. package/lib/dist/material/ghost.js +1 -1
  55. package/lib/dist/material/hull.d.ts +14 -1
  56. package/lib/dist/material/hull.d.ts.map +1 -1
  57. package/lib/dist/material/hull.js +18 -6
  58. package/lib/dist/material/index.d.ts +2 -0
  59. package/lib/dist/material/index.d.ts.map +1 -1
  60. package/lib/dist/material/index.js +3 -1
  61. package/lib/dist/material/material.d.ts +7 -2
  62. package/lib/dist/material/material.d.ts.map +1 -1
  63. package/lib/dist/material/material.js +9 -1
  64. package/lib/dist/material/toon.d.ts +38 -0
  65. package/lib/dist/material/toon.d.ts.map +1 -0
  66. package/lib/dist/material/toon.js +95 -0
  67. package/lib/dist/math/mat4.d.ts +1 -0
  68. package/lib/dist/math/mat4.d.ts.map +1 -1
  69. package/lib/dist/math/mat4.js +18 -1
  70. package/lib/dist/math/transfo.d.ts.map +1 -1
  71. package/lib/dist/math/transfo.js +13 -4
  72. package/lib/dist/math/vec3.js +1 -1
  73. package/lib/dist/painter/axes/axes.d.ts +4 -0
  74. package/lib/dist/painter/axes/axes.d.ts.map +1 -1
  75. package/lib/dist/painter/axes/axes.js +14 -1
  76. package/lib/dist/painter/background-with-depth/background-with-depth.d.ts.map +1 -1
  77. package/lib/dist/painter/background-with-depth/background-with-depth.js +1 -1
  78. package/lib/dist/painter/framebuffer-msaa.d.ts +87 -0
  79. package/lib/dist/painter/framebuffer-msaa.d.ts.map +1 -0
  80. package/lib/dist/painter/framebuffer-msaa.js +241 -0
  81. package/lib/dist/painter/framebuffer.js +11 -5
  82. package/lib/dist/painter/group.d.ts +9 -3
  83. package/lib/dist/painter/group.d.ts.map +1 -1
  84. package/lib/dist/painter/group.js +44 -6
  85. package/lib/dist/painter/index.d.ts +5 -1
  86. package/lib/dist/painter/index.d.ts.map +1 -1
  87. package/lib/dist/painter/index.js +6 -2
  88. package/lib/dist/painter/lines/index.d.ts +2 -0
  89. package/lib/dist/painter/lines/index.d.ts.map +1 -0
  90. package/lib/dist/painter/lines/index.js +2 -0
  91. package/lib/dist/painter/lines/lines.d.ts +34 -0
  92. package/lib/dist/painter/lines/lines.d.ts.map +1 -0
  93. package/lib/dist/painter/lines/lines.js +98 -0
  94. package/lib/dist/painter/mesh/gltf/gltf.d.ts +2 -2
  95. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  96. package/lib/dist/painter/mesh/gltf/gltf.js +6 -4
  97. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  98. package/lib/dist/painter/mesh/mesh/mesh.js +22 -16
  99. package/lib/dist/painter/node/node.d.ts +1 -1
  100. package/lib/dist/painter/node/node.d.ts.map +1 -1
  101. package/lib/dist/painter/node/node.js +1 -1
  102. package/lib/dist/painter/painter.d.ts +2 -2
  103. package/lib/dist/painter/painter.d.ts.map +1 -1
  104. package/lib/dist/painter/painter.js +2 -2
  105. package/lib/dist/painter/points-cloud/index.d.ts +2 -0
  106. package/lib/dist/painter/points-cloud/index.d.ts.map +1 -0
  107. package/lib/dist/painter/points-cloud/index.js +2 -0
  108. package/lib/dist/painter/points-cloud/points-cloud.d.ts +49 -0
  109. package/lib/dist/painter/points-cloud/points-cloud.d.ts.map +1 -0
  110. package/lib/dist/painter/points-cloud/points-cloud.js +118 -0
  111. package/lib/dist/painter/segments/capsule.d.ts +11 -0
  112. package/lib/dist/painter/segments/capsule.d.ts.map +1 -0
  113. package/lib/dist/painter/segments/capsule.js +109 -0
  114. package/lib/dist/painter/segments/segments.d.ts +22 -27
  115. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  116. package/lib/dist/painter/segments/segments.js +134 -140
  117. package/lib/dist/painter/segments.backup/index.d.ts +2 -0
  118. package/lib/dist/painter/segments.backup/index.d.ts.map +1 -0
  119. package/lib/dist/painter/segments.backup/index.js +2 -0
  120. package/lib/dist/painter/segments.backup/segments.d.ts +95 -0
  121. package/lib/dist/painter/segments.backup/segments.d.ts.map +1 -0
  122. package/lib/dist/painter/segments.backup/segments.frag +22 -0
  123. package/lib/dist/painter/segments.backup/segments.js +223 -0
  124. package/lib/dist/painter/segments.backup/segments.vert +121 -0
  125. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  126. package/lib/dist/painter/skybox/skybox.js +4 -3
  127. package/lib/dist/painter/state/state.d.ts.map +1 -1
  128. package/lib/dist/painter/state/state.js +1 -1
  129. package/lib/dist/painter/x-ray/index.d.ts +2 -0
  130. package/lib/dist/painter/x-ray/index.d.ts.map +1 -0
  131. package/lib/dist/painter/x-ray/index.js +2 -0
  132. package/lib/dist/painter/x-ray/x-ray.d.ts +20 -0
  133. package/lib/dist/painter/x-ray/x-ray.d.ts.map +1 -0
  134. package/lib/dist/painter/x-ray/x-ray.js +60 -0
  135. package/lib/dist/parser/gltf/gltf.d.ts +4 -4
  136. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  137. package/lib/dist/parser/gltf/gltf.js +29 -17
  138. package/lib/dist/program/program.js +2 -2
  139. package/lib/dist/sdf/_common.d.ts +9 -0
  140. package/lib/dist/sdf/_common.d.ts.map +1 -0
  141. package/lib/dist/sdf/_common.js +23 -0
  142. package/lib/dist/sdf/capsule.d.ts +3 -0
  143. package/lib/dist/sdf/capsule.d.ts.map +1 -0
  144. package/lib/dist/sdf/capsule.js +24 -0
  145. package/lib/dist/sdf/index.d.ts +3 -0
  146. package/lib/dist/sdf/index.d.ts.map +1 -0
  147. package/lib/dist/sdf/index.js +3 -0
  148. package/lib/dist/sdf/sphere.d.ts +3 -0
  149. package/lib/dist/sdf/sphere.d.ts.map +1 -0
  150. package/lib/dist/sdf/sphere.js +7 -0
  151. package/lib/dist/sound.d.ts +8 -0
  152. package/lib/dist/sound.d.ts.map +1 -0
  153. package/lib/dist/sound.js +43 -0
  154. package/lib/dist/texture/texture-cube.d.ts +2 -3
  155. package/lib/dist/texture/texture-cube.d.ts.map +1 -1
  156. package/lib/dist/texture/texture-cube.js +14 -19
  157. package/lib/dist/texture/texture2d.d.ts +3 -2
  158. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  159. package/lib/dist/texture/texture2d.js +56 -19
  160. package/lib/dist/utils/action/camera.d.ts.map +1 -1
  161. package/lib/dist/utils/action/camera.js +1 -2
  162. package/lib/dist/utils/canvas.d.ts +5 -4
  163. package/lib/dist/utils/canvas.d.ts.map +1 -1
  164. package/lib/dist/utils/canvas.js +6 -3
  165. package/lib/dist/utils/framebuffer.d.ts +1 -0
  166. package/lib/dist/utils/framebuffer.d.ts.map +1 -1
  167. package/lib/dist/utils/framebuffer.js +19 -1
  168. package/lib/dist/vao/vao.d.ts +2 -1
  169. package/lib/dist/vao/vao.d.ts.map +1 -1
  170. package/lib/dist/vao/vao.js +23 -1
  171. package/lib/dist/wasm/code.d.ts +165 -0
  172. package/lib/dist/wasm/code.d.ts.map +1 -0
  173. package/lib/dist/wasm/code.js +605 -0
  174. package/lib/dist/wasm/flow.d.ts +31 -0
  175. package/lib/dist/wasm/flow.d.ts.map +1 -0
  176. package/lib/dist/wasm/flow.js +69 -0
  177. package/lib/dist/wasm/function.d.ts +5 -0
  178. package/lib/dist/wasm/function.d.ts.map +1 -0
  179. package/lib/dist/wasm/function.js +36 -0
  180. package/lib/dist/wasm/index.d.ts +9 -0
  181. package/lib/dist/wasm/index.d.ts.map +1 -0
  182. package/lib/dist/wasm/index.js +31 -0
  183. package/lib/dist/wasm/local.d.ts +9 -0
  184. package/lib/dist/wasm/local.d.ts.map +1 -0
  185. package/lib/dist/wasm/local.js +14 -0
  186. package/lib/dist/wasm/memory.d.ts +13 -0
  187. package/lib/dist/wasm/memory.d.ts.map +1 -0
  188. package/lib/dist/wasm/memory.js +16 -0
  189. package/lib/dist/wasm/module.d.ts +4 -0
  190. package/lib/dist/wasm/module.d.ts.map +1 -0
  191. package/lib/dist/wasm/module.js +22 -0
  192. package/lib/dist/wasm/types.d.ts +22 -0
  193. package/lib/dist/wasm/types.d.ts.map +1 -0
  194. package/lib/dist/wasm/types.js +2 -0
  195. package/lib/dist/wasm/wast.d.ts +2 -0
  196. package/lib/dist/wasm/wast.d.ts.map +1 -0
  197. package/lib/dist/wasm/wast.js +105863 -0
  198. package/lib/dist/webgl/texture/texture2d.js +3 -3
  199. package/package.json +1 -1
  200. package/lib/dist/camera/camera-node.d.ts +0 -16
  201. package/lib/dist/camera/camera-node.d.ts.map +0 -1
  202. package/lib/dist/camera/camera-node.js +0 -17
  203. package/lib/dist/painter/background-with-depth/background.d.ts +0 -55
  204. package/lib/dist/painter/background-with-depth/background.d.ts.map +0 -1
  205. package/lib/dist/painter/background-with-depth/background.js +0 -99
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lines.d.ts","sourceRoot":"","sources":["../../../src/painter/lines/lines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,MAAM,WAAW,sBAAsB;IACnC;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,CAAC,EAAE,YAAY,CAAA;CACzB;AAED,qBAAa,eAAgB,SAAQ,UAAU;aAkBvB,OAAO,EAAE,UAAU;IAjBvC,SAAgB,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,YAAY,CAAA;IAC5B;;;;;OAKG;IACI,CAAC,SAAI;IAEZ,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGhB,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,sBAAsB;IA2BnC,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IAab,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,aAAa;CAmCxB"}
@@ -0,0 +1,98 @@
1
+ import { TgdTexture2D } from "./../../texture/index.js";
2
+ import { TgdPainter } from "../painter.js";
3
+ import { TgdDataset } from "./../../dataset/index.js";
4
+ import { TgdProgram } from "./../../program/index.js";
5
+ import { TgdVertexArray } from "./../../vao/index.js";
6
+ import { tgdCanvasCreateGradientHorizontal } from "./../../utils/index.js";
7
+ import { tgdColorMakeHueWheel } from "./../../color/index.js";
8
+ import { TgdShaderFragment, TgdShaderVertex } from "./../../shader/index.js";
9
+ export class TgdPainterLines extends TgdPainter {
10
+ constructor(context, options) {
11
+ super();
12
+ this.context = context;
13
+ /**
14
+ * V coord on the texture.
15
+ *
16
+ * It allows you to change the color palette
17
+ * by selecting a line in the texture.
18
+ */
19
+ this.v = 0;
20
+ this.dataPoint = options.dataPoint;
21
+ if ((this.dataPoint.length & 3) !== 0) {
22
+ throw new Error("dataPoint must have a length that is an integral multiple of 4: [x, y, z, radius, ...]!");
23
+ }
24
+ if (options.texture) {
25
+ this.texture = options.texture;
26
+ this.textureMustBeDeleted = false;
27
+ }
28
+ else {
29
+ this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreateGradientHorizontal(128, tgdColorMakeHueWheel({ luminance: 90 })));
30
+ this.textureMustBeDeleted = true;
31
+ }
32
+ this.count = this.dataPoint.length >> 2;
33
+ this.dataset = this.createDataset();
34
+ this.program = this.createProgram();
35
+ this.vao = new TgdVertexArray(context.gl, this.program, [this.dataset]);
36
+ }
37
+ delete() {
38
+ if (this.textureMustBeDeleted)
39
+ this.texture.delete();
40
+ this.program.delete();
41
+ this.vao.delete();
42
+ }
43
+ paint() {
44
+ const { context, program, vao, texture, count } = this;
45
+ const { gl, camera } = context;
46
+ program.use();
47
+ texture.activate(0, program, "uniTexture");
48
+ program.uniform1f("uniV", this.v);
49
+ program.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
50
+ program.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
51
+ vao.bind();
52
+ gl.drawArrays(gl.LINES, 0, count);
53
+ vao.unbind();
54
+ }
55
+ createDataset() {
56
+ const dataset = new TgdDataset({
57
+ attPoint: "vec4",
58
+ });
59
+ dataset.set("attPoint", this.dataPoint);
60
+ return dataset;
61
+ }
62
+ createProgram() {
63
+ const vert = new TgdShaderVertex({
64
+ uniforms: {
65
+ uniV: "float",
66
+ uniModelViewMatrix: "mat4",
67
+ uniProjectionMatrix: "mat4",
68
+ },
69
+ attributes: {
70
+ attPoint: "vec4",
71
+ },
72
+ varying: {
73
+ varUV: "vec2",
74
+ },
75
+ mainCode: [
76
+ "varUV = vec2(attPoint.w, uniV);",
77
+ "vec4 point = vec4(attPoint.xyz, 1.0);",
78
+ "gl_Position = uniProjectionMatrix * uniModelViewMatrix * point;",
79
+ ],
80
+ }).code;
81
+ const frag = new TgdShaderFragment({
82
+ uniforms: {
83
+ uniTexture: "sampler2D",
84
+ },
85
+ varying: {
86
+ varUV: "vec2",
87
+ },
88
+ outputs: { FragColor: "vec4" },
89
+ mainCode: [
90
+ "vec4 color = texture(uniTexture, varUV);",
91
+ "FragColor = color;",
92
+ ],
93
+ }).code;
94
+ const program = new TgdProgram(this.context.gl, { vert, frag });
95
+ return program;
96
+ }
97
+ }
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9saW5lcy9saW5lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBV2hFLE1BQU0sT0FBTyxlQUFnQixTQUFRLFVBQVU7SUFpQjNDLFlBQ29CLE9BQW1CLEVBQ25DLE9BQStCO1FBRS9CLEtBQUssRUFBRSxDQUFBO1FBSFMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQWZ2Qzs7Ozs7V0FLRztRQUNJLE1BQUMsR0FBRyxDQUFDLENBQUE7UUFhUixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUE7UUFDbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sSUFBSSxLQUFLLENBQ1gseUZBQXlGLENBQzVGLENBQUE7UUFDTCxDQUFDO1FBQ0QsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFBO1lBQzlCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFL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
@@ -9,9 +9,9 @@ export interface TgdPainterMeshGltfOptions {
9
9
  meshIndex?: number;
10
10
  primitiveIndex?: number;
11
11
  name?: string;
12
- materialFactory?(this: void, options: {
12
+ material?: TgdMaterial | ((this: void, options: {
13
13
  color?: TgdVec4 | TgdTexture2D;
14
- }): TgdMaterial;
14
+ }) => TgdMaterial);
15
15
  }
16
16
  /**
17
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/gltf/gltf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAW,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,eAAe,CAAC,CACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KAAE,GAC5C,WAAW,CAAA;CACjB;AAED;GACG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;gBAE9C,OAAO,EAAE;QACL,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,EACD,OAAO,EAAE,yBAAyB;CA6CzC"}
1
+ {"version":3,"file":"gltf.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/gltf/gltf.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAW,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,WAAW,yBAAyB;IACtC,KAAK,EAAE,UAAU,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EACH,WAAW,GACX,CAAC,CACG,IAAI,EAAE,IAAI,EACV,OAAO,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAA;KAAE,KAC1C,WAAW,CAAC,CAAA;CAC1B;AAED;GACG;AACH,qBAAa,kBAAmB,SAAQ,cAAc;gBAE9C,OAAO,EAAE;QACL,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,EACD,OAAO,EAAE,yBAAyB;CAgDzC"}
@@ -1,7 +1,7 @@
1
1
  import { TgdGeometry } from "./../../../geometry/index.js";
2
2
  import { TgdDataset } from "./../../../dataset/index.js";
3
3
  import { TgdVec3, TgdVec4 } from "./../../../math/index.js";
4
- import { TgdMaterialDiffuse } from "./../../../material/index.js";
4
+ import { TgdMaterial, TgdMaterialDiffuse } from "./../../../material/index.js";
5
5
  import { TgdLight } from "./../../../light/index.js";
6
6
  import { TgdPainterMesh } from "../mesh/index.js";
7
7
  /**
@@ -9,9 +9,11 @@ import { TgdPainterMesh } from "../mesh/index.js";
9
9
  export class TgdPainterMeshGltf extends TgdPainterMesh {
10
10
  constructor(context, options) {
11
11
  var _a;
12
- const { asset, meshIndex = 0, primitiveIndex = 0, materialFactory = makeMaterial, } = options;
12
+ const { asset, meshIndex = 0, primitiveIndex = 0, material: materialFactory = makeMaterial, } = options;
13
13
  const color = figureColor(asset, meshIndex, primitiveIndex, context);
14
- const material = materialFactory({ color });
14
+ const material = materialFactory instanceof TgdMaterial
15
+ ? materialFactory
16
+ : materialFactory({ color });
15
17
  let computeNormals = false;
16
18
  const attributes = {
17
19
  POSITION: "vec3",
@@ -97,4 +99,4 @@ function getTextureEmissive(context, asset, material) {
97
99
  color.eventChange.addListener(context.paint);
98
100
  return color;
99
101
  }
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvZ2x0Zi9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUE7QUFFL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQWdCeEM7R0FDRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBQ2xELFlBQ0ksT0FJQyxFQUNELE9BQWtDOztRQUVsQyxNQUFNLEVBQ0YsS0FBSyxFQUNMLFNBQVMsR0FBRyxDQUFDLEVBQ2IsY0FBYyxHQUFHLENBQUMsRUFDbEIsZUFBZSxHQUFHLFlBQVksR0FDakMsR0FBRyxPQUFPLENBQUE7UUFDWCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDcEUsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDMUIsTUFBTSxVQUFVLEdBQXlCO1lBQ3JDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUE7UUFDRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxVQUFVLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUNsQyxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDMUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUMvRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFBO1FBQ2pFLENBQUM7YUFBTSxDQUFDO1lBQ0osaURBQWlEO1lBQ2pELDhDQUE4QztZQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7WUFDL0QsY0FBYyxHQUFHLElBQUksQ0FBQTtRQUN6QixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNYLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDdEIsT0FBTztnQkFDUCxRQUFRLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUNuQyxTQUFTLEVBQ1QsY0FBYyxDQUNqQjtnQkFDRCxRQUFRLEVBQUUsV0FBVztnQkFDckIsdUJBQXVCLEVBQUUsY0FBYzthQUMxQyxDQUFDO1lBQ0YsUUFBUTtTQUNYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNuRCxDQUFDO0NBQ0o7QUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxTQUFTLFdBQVcsQ0FDaEIsS0FBaUIsRUFDakIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsT0FBMkQ7O0lBRTNELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDbkUsTUFBTSxhQUFhLEdBQUcsTUFBQSxTQUFTLENBQUMsUUFBUSxtQ0FBSSxDQUFDLENBQUMsQ0FBQTtJQUM5QyxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLGFBQWEsQ0FBQTtJQUU5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDcEUsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFBO0lBQ3pDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxlQUFlLGFBQWYsZUFBZSxjQUFmLGVBQWUsR0FBSSxhQUFhLENBQUE7SUFDakQsSUFBSSxlQUFlO1FBQUUsT0FBTyxlQUFlLENBQUE7SUFFM0MsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxNQUFBLEdBQUcsQ0FBQyxnQkFBZ0IsMENBQUUsS0FBSyxDQUFBO1FBQ2hELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELElBQUksT0FBTyxDQUFDLEtBQUs7WUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0QsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUNELE9BQU8sYUFBYSxDQUFBO0FBQ3hCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFFLEtBQUssRUFBc0M7SUFDL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQztRQUNwQyxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsR0FBRztRQUN0QixnQkFBZ0IsRUFBRSxFQUFFO1FBQ3BCLEtBQUssRUFBRSxJQUFJLFFBQVEsQ0FBQztZQUNoQixLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLFNBQVMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNwQyxDQUFDO1FBQ0YsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckMsQ0FBQztLQUNMLENBQUMsQ0FBQTtJQUNGLE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUN2QixPQUEyRCxFQUMzRCxLQUFpQixFQUNqQixRQUErQjs7SUFFL0IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQTtJQUN6QyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRTFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQUEsUUFBUSxDQUFDLEtBQUssbUNBQUksQ0FBQyxDQUFDLENBQUE7SUFDakUsSUFBSSxPQUFPLENBQUMsS0FBSztRQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMvRCxPQUFPLEtBQUssQ0FBQTtBQUNoQixDQUFDIn0=
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvZ2x0Zi9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUE7QUFFL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQTtBQUMvRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBRXJDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxTQUFTLENBQUE7QUFrQnhDO0dBQ0c7QUFDSCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsY0FBYztJQUNsRCxZQUNJLE9BSUMsRUFDRCxPQUFrQzs7UUFFbEMsTUFBTSxFQUNGLEtBQUssRUFDTCxTQUFTLEdBQUcsQ0FBQyxFQUNiLGNBQWMsR0FBRyxDQUFDLEVBQ2xCLFFBQVEsRUFBRSxlQUFlLEdBQUcsWUFBWSxHQUMzQyxHQUFHLE9BQU8sQ0FBQTtRQUNYLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQTtRQUNwRSxNQUFNLFFBQVEsR0FDVixlQUFlLFlBQVksV0FBVztZQUNsQyxDQUFDLENBQUMsZUFBZTtZQUNqQixDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUNwQyxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDMUIsTUFBTSxVQUFVLEdBQXlCO1lBQ3JDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUE7UUFDRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxVQUFVLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUNsQyxDQUFDO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDMUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUMvRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUM3QyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFBO1FBQ2pFLENBQUM7YUFBTSxDQUFDO1lBQ0osaURBQWlEO1lBQ2pELDhDQUE4QztZQUM5QyxPQUFPLENBQUMsSUFBSSxDQUFDLGlEQUFpRCxDQUFDLENBQUE7WUFDL0QsY0FBYyxHQUFHLElBQUksQ0FBQTtRQUN6QixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxjQUFjLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsS0FBSyxDQUFDLE9BQU8sRUFBRTtZQUNYLFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBQztnQkFDdEIsT0FBTztnQkFDUCxRQUFRLEVBQUUsS0FBSyxDQUFDLHVCQUF1QixDQUNuQyxTQUFTLEVBQ1QsY0FBYyxDQUNqQjtnQkFDRCxRQUFRLEVBQUUsV0FBVztnQkFDckIsdUJBQXVCLEVBQUUsY0FBYzthQUMxQyxDQUFDO1lBQ0YsUUFBUTtTQUNYLENBQUMsQ0FBQTtRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBQSxPQUFPLENBQUMsSUFBSSxtQ0FBSSxRQUFRLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNuRCxDQUFDO0NBQ0o7QUFFRCxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUVuRCxTQUFTLFdBQVcsQ0FDaEIsS0FBaUIsRUFDakIsU0FBaUIsRUFDakIsY0FBc0IsRUFDdEIsT0FBMkQ7O0lBRTNELE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUE7SUFDbkUsTUFBTSxhQUFhLEdBQUcsTUFBQSxTQUFTLENBQUMsUUFBUSxtQ0FBSSxDQUFDLENBQUMsQ0FBQTtJQUM5QyxJQUFJLGFBQWEsS0FBSyxDQUFDLENBQUM7UUFBRSxPQUFPLGFBQWEsQ0FBQTtJQUU5QyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sZUFBZSxHQUFHLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUE7SUFDcEUsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFBO0lBQ3pDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxlQUFlLGFBQWYsZUFBZSxjQUFmLGVBQWUsR0FBSSxhQUFhLENBQUE7SUFDakQsSUFBSSxlQUFlO1FBQUUsT0FBTyxlQUFlLENBQUE7SUFFM0MsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUN2QixNQUFNLFlBQVksR0FBRyxNQUFBLEdBQUcsQ0FBQyxnQkFBZ0IsMENBQUUsS0FBSyxDQUFBO1FBQ2hELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFlBQVksYUFBWixZQUFZLGNBQVosWUFBWSxHQUFJLENBQUMsQ0FBQyxDQUFBO1FBQy9ELElBQUksT0FBTyxDQUFDLEtBQUs7WUFBRSxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDL0QsT0FBTyxLQUFLLENBQUE7SUFDaEIsQ0FBQztJQUNELElBQUksR0FBRyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUE7SUFDOUMsQ0FBQztJQUNELE9BQU8sYUFBYSxDQUFBO0FBQ3hCLENBQUM7QUFFRCxTQUFTLFlBQVksQ0FBQyxFQUFFLEtBQUssRUFBc0M7SUFDL0QsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQztRQUNwQyxLQUFLO1FBQ0wsaUJBQWlCLEVBQUUsR0FBRztRQUN0QixnQkFBZ0IsRUFBRSxFQUFFO1FBQ3BCLEtBQUssRUFBRSxJQUFJLFFBQVEsQ0FBQztZQUNoQixLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLFNBQVMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztTQUNwQyxDQUFDO1FBQ0YsT0FBTyxFQUFFLElBQUksUUFBUSxDQUFDO1lBQ2xCLEtBQUssRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDckMsQ0FBQztLQUNMLENBQUMsQ0FBQTtJQUNGLE9BQU8sUUFBUSxDQUFBO0FBQ25CLENBQUM7QUFFRCxTQUFTLGtCQUFrQixDQUN2QixPQUEyRCxFQUMzRCxLQUFpQixFQUNqQixRQUErQjs7SUFFL0IsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGVBQWUsQ0FBQTtJQUN6QyxJQUFJLENBQUMsUUFBUTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBRTFCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLE1BQUEsUUFBUSxDQUFDLEtBQUssbUNBQUksQ0FBQyxDQUFDLENBQUE7SUFDakUsSUFBSSxPQUFPLENBQUMsS0FBSztRQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMvRCxPQUFPLEtBQUssQ0FBQTtBQUNoQixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAA;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;GACG;AACH,qBAAa,cACT,SAAQ,UACR,YAAW,yBAAyB;IAehC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB;IAjBL,SAAgB,OAAO,aAAmB;IAC1C,SAAgB,QAAQ,EAAE,WAAW,CAAA;IAErC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAuB;gBAGf,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,EACD,OAAO,GAAE,qBAA0B;IA0EvC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IAItB,kBAAkB,IAAI;QAClB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;KACzB;IA4BD,SAAgB,KAAK,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,UAgBnD;IAED,MAAM,IAAI,IAAI;CAGjB"}
1
+ {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAC/D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKlE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,WAAW,qBAAqB;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAAA;IACjD,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;GACG;AACH,qBAAa,cACT,SAAQ,UACR,YAAW,yBAAyB;IAehC,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB;IAjBL,SAAgB,OAAO,aAAmB;IAC1C,SAAgB,QAAQ,EAAE,WAAW,CAAA;IAErC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAQ;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAa;IACtC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,OAAO,CAAuB;IACtC,OAAO,CAAC,OAAO,CAAuB;gBAGf,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;QACjB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;KACrB,EACD,OAAO,GAAE,qBAA0B;IA8EvC,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM;IAItB,kBAAkB,IAAI;QAClB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtB,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;KACzB;IA4BD,SAAgB,KAAK,GAAI,MAAM,MAAM,EAAE,OAAO,MAAM,UAkBnD;IAED,MAAM,IAAI,IAAI;CAGjB"}
@@ -25,14 +25,16 @@ export class TgdPainterMesh extends TgdPainter {
25
25
  prg.uniformMatrix4fv("uniTransfoMatrix", transfo.matrix);
26
26
  prg.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
27
27
  prg.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
28
- this.vao.bind();
29
- if (geometry.elements) {
30
- gl.drawElements(drawMode, count, this.elementsType, 0);
31
- }
32
- else {
33
- gl.drawArrays(drawMode, 0, count);
34
- }
35
- this.vao.unbind();
28
+ material.applyState(gl, () => {
29
+ this.vao.bind();
30
+ if (geometry.elements) {
31
+ gl.drawElements(drawMode, count, this.elementsType, 0);
32
+ }
33
+ else {
34
+ gl.drawArrays(drawMode, 0, count);
35
+ }
36
+ this.vao.unbind();
37
+ });
36
38
  };
37
39
  const { transfo, material = new TgdMaterialNormals(), geometry = new TgdGeometryBox(), } = options;
38
40
  this.transfo = new TgdTransfo(transfo);
@@ -42,6 +44,9 @@ export class TgdPainterMesh extends TgdPainter {
42
44
  typeof geometry.drawMode === "number"
43
45
  ? geometry.drawMode
44
46
  : context.gl[geometry.drawMode];
47
+ material.attPosition = geometry.attPosition;
48
+ material.attNormal = geometry.attNormal;
49
+ material.attUV = geometry.attUV;
45
50
  const vert = new TgdShaderVertex({
46
51
  uniforms: Object.assign({ uniTransfoMatrix: "mat4", uniModelViewMatrix: "mat4", uniProjectionMatrix: "mat4" }, material.uniforms),
47
52
  attributes: {
@@ -51,20 +56,21 @@ export class TgdPainterMesh extends TgdPainter {
51
56
  },
52
57
  varying: material.varyings,
53
58
  functions: {
54
- applyMaterial: [
55
- "void applyMaterial() {",
56
- [material.vertexShaderCode],
57
- "}",
58
- ],
59
59
  getPosition: [
60
60
  "vec4 getPosition(vec4 pos) {",
61
61
  [(_a = material.vertexShaderCodeForGetPosition) !== null && _a !== void 0 ? _a : "return pos;"],
62
62
  "}",
63
63
  ],
64
+ applyMaterial: [
65
+ `void applyMaterial(vec3 position, vec3 normal, vec2 uv) {`,
66
+ [material.vertexShaderCode],
67
+ "}",
68
+ ],
64
69
  },
65
70
  mainCode: [
66
- "gl_Position = uniProjectionMatrix * uniModelViewMatrix * uniTransfoMatrix * getPosition(POSITION);",
67
- "applyMaterial();",
71
+ `vec4 position = getPosition(${geometry.attPosition});`,
72
+ `gl_Position = uniProjectionMatrix * uniModelViewMatrix * uniTransfoMatrix * position;`,
73
+ `applyMaterial(position.xyz, ${geometry.attNormal}.xyz, ${geometry.attUV}.xy);`,
68
74
  ],
69
75
  }).code;
70
76
  const frag = new TgdShaderFragment({
@@ -123,4 +129,4 @@ export class TgdPainterMesh extends TgdPainter {
123
129
  this.vao.delete();
124
130
  }
125
131
  }
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbWVzaC9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQXFCLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFVMUM7R0FDRztBQUNILE1BQU0sT0FBTyxjQUNULFNBQVEsVUFBVTtJQWVsQixZQUN1QixPQUlsQixFQUNELFVBQWlDLEVBQUU7O1FBRW5DLEtBQUssRUFBRSxDQUFBO1FBUFksWUFBTyxHQUFQLE9BQU8sQ0FJekI7UUFqQlcsWUFBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFRekIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUM3QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQUM5QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQXFIdEIsVUFBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3BELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FDaEUsSUFBSSxDQUFBO1lBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxP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
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbWVzaC9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQXFCLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFVMUM7R0FDRztBQUNILE1BQU0sT0FBTyxjQUNULFNBQVEsVUFBVTtJQWVsQixZQUN1QixPQUlsQixFQUNELFVBQWlDLEVBQUU7O1FBRW5DLEtBQUssRUFBRSxDQUFBO1FBUFksWUFBTyxHQUFQLE9BQU8sQ0FJekI7UUFqQlcsWUFBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFRekIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUM3QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQUM5QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQXlIdEIsVUFBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3BELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FDaEUsSUFBSSxDQUFBO1lBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxP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
@@ -47,6 +47,7 @@ export type TgdPainterNodeChild = TgdPainterNode | TgdInterfaceTransformablePain
47
47
  */
48
48
  export declare class TgdPainterNode extends TgdPainter {
49
49
  readonly transfo: TgdTransfo;
50
+ logic?: ((time: number, delay: number) => void) | undefined;
50
51
  private readonly parentMatrix;
51
52
  /**
52
53
  * globalMatrix = parentMatrix * transfo
@@ -54,7 +55,6 @@ export declare class TgdPainterNode extends TgdPainter {
54
55
  private readonly globalMatrix;
55
56
  private readonly nodes;
56
57
  private readonly targets;
57
- private readonly logic?;
58
58
  private readonly paintTheTargets;
59
59
  constructor(options?: Partial<TgdPainterNodeOptions>);
60
60
  delete(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/painter/node/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAA;AAElE,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACjE;AAED,MAAM,MAAM,mBAAmB,GACzB,cAAc,GACd,gCAAgC,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,SAAgB,OAAO,EAAE,UAAU,CAAA;IAEnC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAgBxD,MAAM,IAAI,IAAI;IAOd,GAAG,CAAC,GAAG,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAW7C,MAAM,CAAC,GAAG,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAahD,QAAQ,IAAI,cAAc,EAAE;IAI5B,UAAU,IAAI,gCAAgC,EAAE;IAIhD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAqBxC,KAAK,CAAC,OAAO,SAAmB;CAInC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/painter/node/node.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AACvC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAA;AAElE,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,EAAE,mBAAmB,EAAE,CAAA;IAC/B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CACjE;AAED,MAAM,MAAM,mBAAmB,GACzB,cAAc,GACd,gCAAgC,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,SAAgB,OAAO,EAAE,UAAU,CAAA;IAC5B,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IAElE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;IAC7C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IAgBxD,MAAM,IAAI,IAAI;IAOd,GAAG,CAAC,GAAG,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAW7C,MAAM,CAAC,GAAG,QAAQ,EAAE,mBAAmB,EAAE,GAAG,IAAI;IAahD,QAAQ,IAAI,cAAc,EAAE;IAI5B,UAAU,IAAI,gCAAgC,EAAE;IAIhD,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAqBxC,KAAK,CAAC,OAAO,SAAmB;CAInC"}
@@ -145,4 +145,4 @@ function format(vec) {
145
145
  const list = [...vec].map(v => v.toFixed(3));
146
146
  return list.join(", ");
147
147
  }
148
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL25vZGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFvQixNQUFNLFdBQVcsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sb0JBQW9CLENBQUE7QUFtQmxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBYTFDLFlBQVksVUFBMEMsRUFBRTtRQUNwRCxLQUFLLEVBQUUsQ0FBQTtRQVhNLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUM3Qzs7V0FFRztRQUNjLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUM1QixVQUFLLEdBQXFCLEVBQUUsQ0FBQTtRQUM1QixZQUFPLEdBQXVDLEVBQUUsQ0FBQTtRQU03RCxNQUFNLEVBQ0YsUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEVBQ1AsS0FBSyxFQUNMLGVBQWUsR0FBRyxJQUFJLEVBQ3RCLElBQUksR0FBRyxrQkFBa0IsSUFBSSxDQUFDLElBQUksRUFBRSxHQUN2QyxHQUFHLE9BQU8sQ0FBQTtRQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFBO1FBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FB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
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL25vZGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFvQixNQUFNLFdBQVcsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sb0JBQW9CLENBQUE7QUFtQmxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBYTFDLFlBQVksVUFBMEMsRUFBRTtRQUNwRCxLQUFLLEVBQUUsQ0FBQTtRQVZNLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUM3Qzs7V0FFRztRQUNjLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUM1QixVQUFLLEdBQXFCLEVBQUUsQ0FBQTtRQUM1QixZQUFPLEdBQXVDLEVBQUUsQ0FBQTtRQUs3RCxNQUFNLEVBQ0YsUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEVBQ1AsS0FBSyxFQUNMLGVBQWUsR0FBRyxJQUFJLEVBQ3RCLElBQUksR0FBRyxrQkFBa0IsSUFBSSxDQUFDLElBQUksRUFBRSxHQUN2QyxHQUFHLE9BQU8sQ0FBQTtRQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFBO1FBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FB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
@@ -1,5 +1,5 @@
1
1
  import { TgdLogger } from "../log";
2
- export type TgdDebugPainterhierarchy = Record<string, TgdDebugPainterhierarchy[] | null>;
2
+ export type TgdDebugPainterHierarchy = Record<string, TgdDebugPainterHierarchy[] | null>;
3
3
  export declare abstract class TgdPainter {
4
4
  static readonly log: TgdLogger;
5
5
  private static counter;
@@ -11,6 +11,6 @@ export declare abstract class TgdPainter {
11
11
  active: boolean;
12
12
  abstract delete(): void;
13
13
  abstract paint(time: number, delay: number): void;
14
- debugHierarchy(): TgdDebugPainterhierarchy;
14
+ get hierarchy(): TgdDebugPainterHierarchy;
15
15
  }
16
16
  //# sourceMappingURL=painter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"painter.d.ts","sourceRoot":"","sources":["../../src/painter/painter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,MAAM,wBAAwB,GAAG,MAAM,CACzC,MAAM,EACN,wBAAwB,EAAE,GAAG,IAAI,CACpC,CAAA;AAED,8BAAsB,UAAU;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAkB;IAErC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAI;IAE1B;;;OAGG;IACI,IAAI,EAAE,MAAM,CAAoC;IAEhD,MAAM,EAAE,OAAO,CAAO;IAE7B,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAEjD,cAAc,IAAI,wBAAwB;CAK7C"}
1
+ {"version":3,"file":"painter.d.ts","sourceRoot":"","sources":["../../src/painter/painter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,MAAM,MAAM,wBAAwB,GAAG,MAAM,CACzC,MAAM,EACN,wBAAwB,EAAE,GAAG,IAAI,CACpC,CAAA;AAED,8BAAsB,UAAU;IAC5B,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAkB;IAErC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAI;IAE1B;;;OAGG;IACI,IAAI,EAAE,MAAM,CAAoC;IAEhD,MAAM,EAAE,OAAO,CAAO;IAE7B,QAAQ,CAAC,MAAM,IAAI,IAAI;IAEvB,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAEjD,IAAI,SAAS,IAAI,wBAAwB,CAIxC;CACJ"}
@@ -8,7 +8,7 @@ export class TgdPainter {
8
8
  this.name = `Painter/${TgdPainter.counter++}`;
9
9
  this.active = true;
10
10
  }
11
- debugHierarchy() {
11
+ get hierarchy() {
12
12
  return {
13
13
  [this.active ? this.name : `${this.name} (Inactive)`]: null,
14
14
  };
@@ -16,4 +16,4 @@ export class TgdPainter {
16
16
  }
17
17
  TgdPainter.log = new TgdLogger();
18
18
  TgdPainter.counter = 0;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWludGVyL3BhaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQU9wQyxNQUFNLE9BQWdCLFVBQVU7SUFBaEM7UUFLSTs7O1dBR0c7UUFDSSxTQUFJLEdBQVcsV0FBVyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUVoRCxXQUFNLEdBQVksSUFBSSxDQUFBO0lBV2pDLENBQUM7SUFMRyxjQUFjO1FBQ1YsT0FBTztZQUNILENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxhQUFhLENBQUMsRUFBRSxJQUFJO1NBQzlELENBQUE7SUFDTCxDQUFDOztBQXBCZSxjQUFHLEdBQUcsSUFBSSxTQUFTLEVBQUUsQUFBbEIsQ0FBa0I7QUFFdEIsa0JBQU8sR0FBRyxDQUFDLEFBQUosQ0FBSSJ9
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFpbnRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wYWludGVyL3BhaW50ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQU9wQyxNQUFNLE9BQWdCLFVBQVU7SUFBaEM7UUFLSTs7O1dBR0c7UUFDSSxTQUFJLEdBQVcsV0FBVyxVQUFVLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQTtRQUVoRCxXQUFNLEdBQVksSUFBSSxDQUFBO0lBV2pDLENBQUM7SUFMRyxJQUFJLFNBQVM7UUFDVCxPQUFPO1lBQ0gsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxFQUFFLElBQUk7U0FDOUQsQ0FBQTtJQUNMLENBQUM7O0FBcEJlLGNBQUcsR0FBRyxJQUFJLFNBQVMsRUFBRSxBQUFsQixDQUFrQjtBQUV0QixrQkFBTyxHQUFHLENBQUMsQUFBSixDQUFJIn0=
@@ -0,0 +1,2 @@
1
+ export * from "./points-cloud";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from "./points-cloud.js";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGFpbnRlci9wb2ludHMtY2xvdWQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxnQkFBZ0IsQ0FBQSJ9
@@ -0,0 +1,49 @@
1
+ import { TgdTexture2D } from "../../texture";
2
+ import { TgdPainter } from "../painter";
3
+ import { TgdContext } from "../../context";
4
+ export interface TgdPainterPointsCloudOptions {
5
+ /**
6
+ * Flatten array of points:
7
+ * `[ x1, y1, z1, radius1, x2, y2, z2, radius2, ... ]`
8
+ */
9
+ dataPoint: Float32Array;
10
+ /**
11
+ * Flatten array of UVs:
12
+ * `[ u1, v1, u2, v2, ... ]`
13
+ */
14
+ dataUV?: Float32Array;
15
+ /**
16
+ * Multiply the radius of each point by this value.
17
+ *
18
+ * Default to 1.
19
+ */
20
+ radiusMultiplier?: number;
21
+ /**
22
+ * Depending on the radius and the distance to the camera,
23
+ * the point can be invisible.
24
+ * This value is the minimum size of the point in pixels.
25
+ *
26
+ * Default to 0.
27
+ */
28
+ minSizeInPixels?: number;
29
+ texture?: TgdTexture2D;
30
+ }
31
+ export declare class TgdPainterPointsCloud extends TgdPainter {
32
+ readonly context: TgdContext;
33
+ readonly count: number;
34
+ texture: TgdTexture2D;
35
+ radiusMultiplier: number;
36
+ minSizeInPixels: number;
37
+ private readonly dataPoint;
38
+ private readonly dataUV;
39
+ private readonly textureMustBeDeleted;
40
+ private readonly dataset;
41
+ private readonly program;
42
+ private readonly vao;
43
+ constructor(context: TgdContext, options: TgdPainterPointsCloudOptions);
44
+ delete(): void;
45
+ paint(): void;
46
+ private createDataset;
47
+ private createProgram;
48
+ }
49
+ //# sourceMappingURL=points-cloud.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"points-cloud.d.ts","sourceRoot":"","sources":["../../../src/painter/points-cloud/points-cloud.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAKzC,MAAM,WAAW,4BAA4B;IACzC;;;OAGG;IACH,SAAS,EAAE,YAAY,CAAA;IACvB;;;OAGG;IACH,MAAM,CAAC,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,YAAY,CAAA;CACzB;AAED,qBAAa,qBAAsB,SAAQ,UAAU;aAc7B,OAAO,EAAE,UAAU;IAbvC,SAAgB,KAAK,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,YAAY,CAAA;IACrB,gBAAgB,SAAI;IACpB,eAAe,SAAI;IAE1B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;gBAGhB,OAAO,EAAE,UAAU,EACnC,OAAO,EAAE,4BAA4B;IAoCzC,MAAM,IAAI,IAAI;IAMd,KAAK,IAAI,IAAI;IAuBb,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,aAAa;CAgDxB"}
@@ -0,0 +1,118 @@
1
+ import { TgdTexture2D } from "./../../texture/index.js";
2
+ import { TgdPainter } from "../painter.js";
3
+ import { TgdDataset } from "./../../dataset/index.js";
4
+ import { TgdProgram } from "./../../program/index.js";
5
+ import { TgdVertexArray } from "./../../vao/index.js";
6
+ import { tgdCanvasCreateGradientHorizontal } from "./../../utils/index.js";
7
+ import { tgdColorMakeHueWheel } from "./../../color/index.js";
8
+ import { TgdShaderFragment, TgdShaderVertex } from "./../../shader/index.js";
9
+ export class TgdPainterPointsCloud extends TgdPainter {
10
+ constructor(context, options) {
11
+ var _a, _b, _c;
12
+ super();
13
+ this.context = context;
14
+ this.radiusMultiplier = 1;
15
+ this.minSizeInPixels = 0;
16
+ this.radiusMultiplier = (_a = options.radiusMultiplier) !== null && _a !== void 0 ? _a : 1;
17
+ this.minSizeInPixels = (_b = options.minSizeInPixels) !== null && _b !== void 0 ? _b : 0;
18
+ this.dataPoint = options.dataPoint;
19
+ if ((this.dataPoint.length & 3) !== 0) {
20
+ throw new Error("dataPoint must have a length that is an integral multiple of 4: [x, y, z, radius, ...]!");
21
+ }
22
+ this.dataUV =
23
+ (_c = options.dataUV) !== null && _c !== void 0 ? _c : new Float32Array(this.dataPoint.length >> 1);
24
+ if (this.dataPoint.length !== this.dataUV.length * 2) {
25
+ throw new Error("dataUV must be half of the size of dataPoint: [u, v, ...]!");
26
+ }
27
+ if (options.texture) {
28
+ this.texture = options.texture;
29
+ this.textureMustBeDeleted = false;
30
+ }
31
+ else {
32
+ this.texture = new TgdTexture2D(context).loadBitmap(tgdCanvasCreateGradientHorizontal(128, tgdColorMakeHueWheel({ luminance: 0.2 })));
33
+ this.textureMustBeDeleted = true;
34
+ }
35
+ this.count = this.dataUV.length >> 1;
36
+ this.dataset = this.createDataset();
37
+ this.program = this.createProgram();
38
+ this.vao = new TgdVertexArray(context.gl, this.program, [this.dataset]);
39
+ }
40
+ delete() {
41
+ if (this.textureMustBeDeleted)
42
+ this.texture.delete();
43
+ this.program.delete();
44
+ this.vao.delete();
45
+ }
46
+ paint() {
47
+ const { context, program, vao, texture, count, radiusMultiplier, minSizeInPixels, } = this;
48
+ const { gl, camera } = context;
49
+ program.use();
50
+ texture.activate(0, program, "uniTexture");
51
+ program.uniform1f("uniRadiusMultiplier", radiusMultiplier);
52
+ program.uniform1f("uniMinSizeInPixels", minSizeInPixels);
53
+ program.uniform1f("uniHalfScreenHeightInPixels", context.height * 0.5);
54
+ program.uniformMatrix4fv("uniModelViewMatrix", camera.matrixModelView);
55
+ program.uniformMatrix4fv("uniProjectionMatrix", camera.matrixProjection);
56
+ vao.bind();
57
+ gl.drawArrays(gl.POINTS, 0, count);
58
+ vao.unbind();
59
+ }
60
+ createDataset() {
61
+ const dataset = new TgdDataset({
62
+ attPoint: "vec4",
63
+ attUV: "vec2",
64
+ });
65
+ dataset.set("attPoint", this.dataPoint);
66
+ dataset.set("attUV", this.dataUV);
67
+ return dataset;
68
+ }
69
+ createProgram() {
70
+ const vert = new TgdShaderVertex({
71
+ uniforms: {
72
+ uniMinSizeInPixels: "float",
73
+ uniRadiusMultiplier: "float",
74
+ uniHalfScreenHeightInPixels: "float",
75
+ uniModelViewMatrix: "mat4",
76
+ uniProjectionMatrix: "mat4",
77
+ },
78
+ attributes: {
79
+ attPoint: "vec4",
80
+ attUV: "vec2",
81
+ },
82
+ varying: {
83
+ varUV: "vec2",
84
+ },
85
+ mainCode: [
86
+ "varUV = attUV;",
87
+ "float radius = attPoint.w;",
88
+ "vec4 point = vec4(attPoint.xyz, 1.0);",
89
+ "gl_Position = uniProjectionMatrix * uniModelViewMatrix * point;",
90
+ "gl_PointSize = max(",
91
+ " uniMinSizeInPixels,",
92
+ " uniRadiusMultiplier * radius * uniHalfScreenHeightInPixels / gl_Position.w",
93
+ ");",
94
+ ],
95
+ }).code;
96
+ const frag = new TgdShaderFragment({
97
+ uniforms: {
98
+ uniTexture: "sampler2D",
99
+ },
100
+ varying: {
101
+ varUV: "vec2",
102
+ },
103
+ outputs: { FragColor: "vec4" },
104
+ mainCode: [
105
+ "vec2 coords = 2.0 * (gl_PointCoord - vec2(.5));",
106
+ "float len = 1.0 - dot(coords, coords);",
107
+ "if (len < 0.0) discard;",
108
+ "vec4 color = texture(uniTexture, varUV);",
109
+ "float light = smoothstep(0.0, 0.5, len);",
110
+ "float spec = pow(len, 2.0) * .5;",
111
+ "FragColor = color * vec4(vec3(light), 1.0) + vec4(vec3(spec), 0.0);",
112
+ ],
113
+ }).code;
114
+ const program = new TgdProgram(this.context.gl, { vert, frag });
115
+ return program;
116
+ }
117
+ }
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9pbnRzLWNsb3VkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BhaW50ZXIvcG9pbnRzLWNsb3VkL3BvaW50cy1jbG91ZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQzNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFFekMsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQzlELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBOEJoRSxNQUFNLE9BQU8scUJBQXNCLFNBQVEsVUFBVTtJQWFqRCxZQUNvQixPQUFtQixFQUNuQyxPQUFxQzs7UUFFckMsS0FBSyxFQUFFLENBQUE7UUFIUyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBWGhDLHFCQUFnQixHQUFHLENBQUMsQ0FBQTtRQUNwQixvQkFBZSxHQUFHLENBQUMsQ0FBQTtRQWN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBQSxPQUFPLENBQUMsZ0JBQWdCLG1DQUFJLENBQUMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQUEsT0FBTyxDQUFDLGVBQWUsbUNBQUksQ0FBQyxDQUFBO1FBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQTtRQUNsQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7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
@@ -0,0 +1,11 @@
1
+ import { TgdGeometry } from "../../geometry";
2
+ /**
3
+ * The capsule is a 3D shape mae of a cylinder
4
+ * and two hemispheres, all of radius 1.
5
+ * The roundness gives use the number of faces around the cylinder.
6
+ * Every vertex has 4 coordinates: x, y, z, and a number that will
7
+ * be 0.0 for bottom tip, and 1.1 for top tip.
8
+ * The cylinder is aligned along Z axis.
9
+ */
10
+ export declare function makeCapsule(roundness: number): TgdGeometry;
11
+ //# sourceMappingURL=capsule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capsule.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/capsule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAI3C;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,CAgG1D"}