@tolokoban/tgd 2.0.23 → 2.0.25

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 (227) hide show
  1. package/lib/dist/camera/camera-orthographic.d.ts +1 -0
  2. package/lib/dist/camera/camera-orthographic.d.ts.map +1 -1
  3. package/lib/dist/camera/camera-orthographic.js +21 -1
  4. package/lib/dist/camera/camera-perspective.d.ts +7 -0
  5. package/lib/dist/camera/camera-perspective.d.ts.map +1 -1
  6. package/lib/dist/camera/camera-perspective.js +23 -5
  7. package/lib/dist/camera/camera.d.ts +3 -2
  8. package/lib/dist/camera/camera.d.ts.map +1 -1
  9. package/lib/dist/camera/camera.js +14 -10
  10. package/lib/dist/canvas/gizmo/gizmo.d.ts +4 -5
  11. package/lib/dist/canvas/gizmo/gizmo.d.ts.map +1 -1
  12. package/lib/dist/canvas/gizmo/gizmo.js +37 -25
  13. package/lib/dist/canvas/gizmo/painter/shader.frag +1 -1
  14. package/lib/dist/canvas/gizmo/painter/shader.vert +1 -1
  15. package/lib/dist/code/color.d.ts +4 -4
  16. package/lib/dist/code/color.d.ts.map +1 -1
  17. package/lib/dist/code/color.js +3 -3
  18. package/lib/dist/code/coords.d.ts +4 -4
  19. package/lib/dist/code/coords.d.ts.map +1 -1
  20. package/lib/dist/code/coords.js +4 -4
  21. package/lib/dist/code/random.d.ts +2 -2
  22. package/lib/dist/code/random.d.ts.map +1 -1
  23. package/lib/dist/code/random.js +2 -2
  24. package/lib/dist/context/animation/animation-manager.d.ts +1 -0
  25. package/lib/dist/context/animation/animation-manager.d.ts.map +1 -1
  26. package/lib/dist/context/animation/animation-manager.js +11 -3
  27. package/lib/dist/context/context.d.ts +12 -2
  28. package/lib/dist/context/context.d.ts.map +1 -1
  29. package/lib/dist/context/context.js +80 -34
  30. package/lib/dist/controller/camera/orbit.d.ts +15 -2
  31. package/lib/dist/controller/camera/orbit.d.ts.map +1 -1
  32. package/lib/dist/controller/camera/orbit.js +18 -6
  33. package/lib/dist/data/gltf/gltf.d.ts +60 -0
  34. package/lib/dist/data/gltf/gltf.d.ts.map +1 -0
  35. package/lib/dist/data/gltf/gltf.js +337 -0
  36. package/lib/dist/data/gltf/index.d.ts +2 -0
  37. package/lib/dist/data/gltf/index.d.ts.map +1 -0
  38. package/lib/dist/data/gltf/index.js +2 -0
  39. package/lib/dist/data/gltf/parser.d.ts +13 -0
  40. package/lib/dist/data/gltf/parser.d.ts.map +1 -0
  41. package/lib/dist/data/gltf/parser.js +54 -0
  42. package/lib/dist/data/index.d.ts +2 -0
  43. package/lib/dist/data/index.d.ts.map +1 -0
  44. package/lib/dist/data/index.js +2 -0
  45. package/lib/dist/factory/index.d.ts +2 -0
  46. package/lib/dist/factory/index.d.ts.map +1 -0
  47. package/lib/dist/factory/index.js +2 -0
  48. package/lib/dist/factory/mesh-glb.d.ts +42 -0
  49. package/lib/dist/factory/mesh-glb.d.ts.map +1 -0
  50. package/lib/dist/factory/mesh-glb.js +91 -0
  51. package/lib/dist/filter/blur.d.ts +2 -0
  52. package/lib/dist/filter/blur.d.ts.map +1 -1
  53. package/lib/dist/filter/blur.js +7 -5
  54. package/lib/dist/filter/chromatic-aberration.js +2 -2
  55. package/lib/dist/filter/filter.d.ts +10 -2
  56. package/lib/dist/filter/filter.d.ts.map +1 -1
  57. package/lib/dist/filter/filter.js +4 -8
  58. package/lib/dist/filter/hue-rotation.d.ts +2 -3
  59. package/lib/dist/filter/hue-rotation.d.ts.map +1 -1
  60. package/lib/dist/filter/hue-rotation.js +2 -2
  61. package/lib/dist/filter/zoom.d.ts +2 -3
  62. package/lib/dist/filter/zoom.d.ts.map +1 -1
  63. package/lib/dist/filter/zoom.js +3 -3
  64. package/lib/dist/index.d.ts +1 -0
  65. package/lib/dist/index.d.ts.map +1 -1
  66. package/lib/dist/index.js +2 -1
  67. package/lib/dist/input/pointer.d.ts +2 -1
  68. package/lib/dist/input/pointer.d.ts.map +1 -1
  69. package/lib/dist/input/pointer.js +8 -1
  70. package/lib/dist/interface/transformable.d.ts +1 -0
  71. package/lib/dist/interface/transformable.d.ts.map +1 -1
  72. package/lib/dist/loader/asset.d.ts +2 -2
  73. package/lib/dist/loader/asset.d.ts.map +1 -1
  74. package/lib/dist/loader/asset.js +1 -1
  75. package/lib/dist/loader/binary.d.ts +4 -3
  76. package/lib/dist/loader/binary.d.ts.map +1 -1
  77. package/lib/dist/loader/binary.js +31 -9
  78. package/lib/dist/material/diffuse.d.ts.map +1 -1
  79. package/lib/dist/material/diffuse.js +7 -5
  80. package/lib/dist/material/flat.d.ts +20 -0
  81. package/lib/dist/material/flat.d.ts.map +1 -0
  82. package/lib/dist/material/flat.js +18 -0
  83. package/lib/dist/material/index.d.ts +1 -0
  84. package/lib/dist/material/index.d.ts.map +1 -1
  85. package/lib/dist/material/index.js +2 -1
  86. package/lib/dist/math/index.d.ts +1 -0
  87. package/lib/dist/math/index.d.ts.map +1 -1
  88. package/lib/dist/math/index.js +2 -1
  89. package/lib/dist/math/mat2.d.ts +29 -0
  90. package/lib/dist/math/mat2.d.ts.map +1 -0
  91. package/lib/dist/math/mat2.js +94 -0
  92. package/lib/dist/math/quat.d.ts +25 -16
  93. package/lib/dist/math/quat.d.ts.map +1 -1
  94. package/lib/dist/math/quat.js +32 -54
  95. package/lib/dist/math/transfo.d.ts +11 -6
  96. package/lib/dist/math/transfo.d.ts.map +1 -1
  97. package/lib/dist/math/transfo.js +47 -30
  98. package/lib/dist/math/vec3.d.ts +6 -2
  99. package/lib/dist/math/vec3.d.ts.map +1 -1
  100. package/lib/dist/math/vec3.js +16 -5
  101. package/lib/dist/math/vec4.d.ts +1 -1
  102. package/lib/dist/math/vec4.d.ts.map +1 -1
  103. package/lib/dist/math/vec4.js +2 -2
  104. package/lib/dist/painter/axes/axes.frag +1 -1
  105. package/lib/dist/painter/axes/axes.vert +1 -1
  106. package/lib/dist/painter/background/background.d.ts +28 -2
  107. package/lib/dist/painter/background/background.d.ts.map +1 -1
  108. package/lib/dist/painter/background/background.frag +1 -1
  109. package/lib/dist/painter/background/background.js +47 -13
  110. package/lib/dist/painter/background-with-depth/background-with-depth.d.ts +24 -0
  111. package/lib/dist/painter/background-with-depth/background-with-depth.d.ts.map +1 -0
  112. package/lib/dist/painter/background-with-depth/background-with-depth.js +120 -0
  113. package/lib/dist/painter/background-with-depth/background.frag +17 -0
  114. package/lib/dist/painter/background-with-depth/background.vert +13 -0
  115. package/lib/dist/painter/background-with-depth/index.d.ts +2 -0
  116. package/lib/dist/painter/background-with-depth/index.d.ts.map +1 -0
  117. package/lib/dist/painter/background-with-depth/index.js +2 -0
  118. package/lib/dist/painter/debug/stencil/stencil.frag +1 -1
  119. package/lib/dist/painter/filter/filter.d.ts +1 -1
  120. package/lib/dist/painter/filter/filter.d.ts.map +1 -1
  121. package/lib/dist/painter/filter/filter.js +10 -10
  122. package/lib/dist/painter/framebuffer.d.ts.map +1 -1
  123. package/lib/dist/painter/framebuffer.js +2 -2
  124. package/lib/dist/painter/group.d.ts.map +1 -1
  125. package/lib/dist/painter/group.js +1 -1
  126. package/lib/dist/painter/index.d.ts +1 -0
  127. package/lib/dist/painter/index.d.ts.map +1 -1
  128. package/lib/dist/painter/index.js +2 -1
  129. package/lib/dist/painter/mesh/gltf/gltf.d.ts +8 -4
  130. package/lib/dist/painter/mesh/gltf/gltf.d.ts.map +1 -1
  131. package/lib/dist/painter/mesh/gltf/gltf.js +23 -11
  132. package/lib/dist/painter/mesh/mesh/mesh.d.ts +12 -3
  133. package/lib/dist/painter/mesh/mesh/mesh.d.ts.map +1 -1
  134. package/lib/dist/painter/mesh/mesh/mesh.js +4 -2
  135. package/lib/dist/painter/mesh/normals/shader.vert +1 -1
  136. package/lib/dist/painter/node/node.d.ts +20 -7
  137. package/lib/dist/painter/node/node.d.ts.map +1 -1
  138. package/lib/dist/painter/node/node.js +74 -17
  139. package/lib/dist/painter/segments/segments.d.ts +9 -7
  140. package/lib/dist/painter/segments/segments.d.ts.map +1 -1
  141. package/lib/dist/painter/segments/segments.frag +12 -2
  142. package/lib/dist/painter/segments/segments.js +64 -36
  143. package/lib/dist/painter/segments/segments.vert +12 -5
  144. package/lib/dist/painter/skybox/skybox.d.ts +5 -4
  145. package/lib/dist/painter/skybox/skybox.d.ts.map +1 -1
  146. package/lib/dist/painter/skybox/skybox.frag +3 -2
  147. package/lib/dist/painter/skybox/skybox.js +26 -20
  148. package/lib/dist/painter/skybox/skybox.vert +3 -4
  149. package/lib/dist/painter/state/state.d.ts +10 -2
  150. package/lib/dist/painter/state/state.d.ts.map +1 -1
  151. package/lib/dist/painter/state/state.js +49 -19
  152. package/lib/dist/parser/gltf/gltf.d.ts +18 -2
  153. package/lib/dist/parser/gltf/gltf.d.ts.map +1 -1
  154. package/lib/dist/parser/gltf/gltf.js +78 -2
  155. package/lib/dist/parser/gltf/parser.d.ts +4 -0
  156. package/lib/dist/parser/gltf/parser.d.ts.map +1 -1
  157. package/lib/dist/parser/gltf/parser.js +5 -2
  158. package/lib/dist/program/program.d.ts +4 -3
  159. package/lib/dist/program/program.d.ts.map +1 -1
  160. package/lib/dist/program/program.js +22 -8
  161. package/lib/dist/shader/code.d.ts +2 -2
  162. package/lib/dist/shader/code.d.ts.map +1 -1
  163. package/lib/dist/shader/code.js +16 -3
  164. package/lib/dist/shader/fragment.d.ts.map +1 -1
  165. package/lib/dist/shader/fragment.js +2 -2
  166. package/lib/dist/shader/vertex.d.ts.map +1 -1
  167. package/lib/dist/shader/vertex.js +2 -3
  168. package/lib/dist/texture/texture-depth.d.ts +36 -0
  169. package/lib/dist/texture/texture-depth.d.ts.map +1 -0
  170. package/lib/dist/texture/texture-depth.js +63 -0
  171. package/lib/dist/texture/texture2d.d.ts +15 -2
  172. package/lib/dist/texture/texture2d.d.ts.map +1 -1
  173. package/lib/dist/texture/texture2d.js +87 -27
  174. package/lib/dist/types/animation.d.ts +11 -2
  175. package/lib/dist/types/animation.d.ts.map +1 -1
  176. package/lib/dist/types/gltf.d.ts +9 -3
  177. package/lib/dist/types/gltf.d.ts.map +1 -1
  178. package/lib/dist/types/gltf.js +7 -1
  179. package/lib/dist/types/index.d.ts +3 -0
  180. package/lib/dist/types/index.d.ts.map +1 -1
  181. package/lib/dist/types/index.js +4 -1
  182. package/lib/dist/types/input-pointer.d.ts +1 -0
  183. package/lib/dist/types/input-pointer.d.ts.map +1 -1
  184. package/lib/dist/types/program.d.ts +5 -0
  185. package/lib/dist/types/program.d.ts.map +1 -1
  186. package/lib/dist/utils/action/camera.d.ts.map +1 -1
  187. package/lib/dist/utils/action/camera.js +7 -4
  188. package/lib/dist/utils/action/index.d.ts +1 -0
  189. package/lib/dist/utils/action/index.d.ts.map +1 -1
  190. package/lib/dist/utils/action/index.js +2 -1
  191. package/lib/dist/utils/action/transfo.d.ts +2 -2
  192. package/lib/dist/utils/action/transfo.d.ts.map +1 -1
  193. package/lib/dist/utils/action/transfo.js +17 -14
  194. package/lib/dist/utils/animation/chain-transfo-interpolations.d.ts +18 -0
  195. package/lib/dist/utils/animation/chain-transfo-interpolations.d.ts.map +1 -0
  196. package/lib/dist/utils/animation/chain-transfo-interpolations.js +15 -0
  197. package/lib/dist/utils/animation/chain.d.ts +11 -0
  198. package/lib/dist/utils/animation/chain.d.ts.map +1 -0
  199. package/lib/dist/utils/animation/chain.js +61 -0
  200. package/lib/dist/utils/animation/index.d.ts +3 -0
  201. package/lib/dist/utils/animation/index.d.ts.map +1 -0
  202. package/lib/dist/utils/animation/index.js +3 -0
  203. package/lib/dist/utils/canvas.d.ts +1 -0
  204. package/lib/dist/utils/canvas.d.ts.map +1 -1
  205. package/lib/dist/utils/canvas.js +7 -1
  206. package/lib/dist/utils/index.d.ts +1 -0
  207. package/lib/dist/utils/index.d.ts.map +1 -1
  208. package/lib/dist/utils/index.js +2 -1
  209. package/lib/dist/utils/math.d.ts +13 -0
  210. package/lib/dist/utils/math.d.ts.map +1 -1
  211. package/lib/dist/utils/math.js +34 -1
  212. package/lib/dist/utils/math.test.d.ts +2 -0
  213. package/lib/dist/utils/math.test.d.ts.map +1 -0
  214. package/lib/dist/utils/math.test.js +22 -0
  215. package/lib/dist/utils/state/blend.d.ts +1 -1
  216. package/lib/dist/utils/state/blend.d.ts.map +1 -1
  217. package/lib/dist/utils/state/blend.js +21 -3
  218. package/lib/dist/utils/state/depth.d.ts +1 -1
  219. package/lib/dist/utils/state/depth.d.ts.map +1 -1
  220. package/lib/dist/utils/state/depth.js +23 -2
  221. package/lib/dist/vao/vao.d.ts +6 -0
  222. package/lib/dist/vao/vao.d.ts.map +1 -1
  223. package/lib/dist/vao/vao.js +30 -1
  224. package/package.json +1 -1
  225. package/lib/dist/camera/camera-node.d.ts +0 -16
  226. package/lib/dist/camera/camera-node.d.ts.map +0 -1
  227. package/lib/dist/camera/camera-node.js +0 -17
@@ -48,23 +48,23 @@ export class TgdPainterMeshGltf extends TgdPainterMesh {
48
48
  }
49
49
  const DEFAULT_COLOR = new TgdVec4(0.9, 0.5, 0.1, 1);
50
50
  function figureColor(asset, meshIndex, primitiveIndex, context) {
51
- var _a, _b, _c;
51
+ var _a, _b;
52
52
  const primitive = asset.getMeshPrimitive(meshIndex, primitiveIndex);
53
53
  const materialIndex = (_a = primitive.material) !== null && _a !== void 0 ? _a : -1;
54
54
  if (materialIndex === -1)
55
55
  return DEFAULT_COLOR;
56
56
  const material = asset.getMaterial(materialIndex);
57
+ const textureEmissive = getTextureEmissive(context, asset, material);
57
58
  const pbr = material.pbrMetallicRoughness;
58
- if (!pbr) {
59
- const emissive = material.emissiveTexture;
60
- if (!emissive)
61
- return DEFAULT_COLOR;
62
- const color = asset.createTexture2D(context, (_b = emissive.index) !== null && _b !== void 0 ? _b : 0);
63
- return color;
64
- }
59
+ if (!pbr)
60
+ return textureEmissive !== null && textureEmissive !== void 0 ? textureEmissive : DEFAULT_COLOR;
61
+ if (textureEmissive)
62
+ return textureEmissive;
65
63
  if (pbr.baseColorTexture) {
66
- const textureIndex = (_c = pbr.baseColorTexture) === null || _c === void 0 ? void 0 : _c.index;
64
+ const textureIndex = (_b = pbr.baseColorTexture) === null || _b === void 0 ? void 0 : _b.index;
67
65
  const color = asset.createTexture2D(context, textureIndex !== null && textureIndex !== void 0 ? textureIndex : 0);
66
+ if (context.paint)
67
+ color.eventChange.addListener(context.paint);
68
68
  return color;
69
69
  }
70
70
  if (pbr.baseColorFactor) {
@@ -75,14 +75,26 @@ function figureColor(asset, meshIndex, primitiveIndex, context) {
75
75
  function makeMaterial({ color }) {
76
76
  const material = new TgdMaterialDiffuse({
77
77
  color,
78
+ specularIntensity: 0.3,
79
+ specularExponent: 80,
78
80
  light: new TgdLight({
79
81
  color: new TgdVec4(1, 1, 1, 1),
80
82
  direction: new TgdVec3(1, 0.2, 0),
81
83
  }),
82
84
  ambient: new TgdLight({
83
- color: new TgdVec4(0.75, 0.75, 0.75, 1),
85
+ color: new TgdVec4(0.2, 0.1, 0, 1),
84
86
  }),
85
87
  });
86
88
  return material;
87
89
  }
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvZ2x0Zi9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFFM0MsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUE7QUFFL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQWN4QztHQUNHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGNBQWM7SUFDbEQsWUFBWSxPQUFtQixFQUFFLE9BQWtDOztRQUMvRCxNQUFNLEVBQ0YsS0FBSyxFQUNMLFNBQVMsR0FBRyxDQUFDLEVBQ2IsY0FBYyxHQUFHLENBQUMsRUFDbEIsZUFBZSxHQUFHLFlBQVksR0FDakMsR0FBRyxPQUFPLENBQUE7UUFDWCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDcEUsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDMUIsTUFBTSxVQUFVLEdBQXlCO1lBQ3JDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUE7UUFDRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxVQUFVLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUNsQyxD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
90
+ function getTextureEmissive(context, asset, material) {
91
+ var _a;
92
+ const emissive = material.emissiveTexture;
93
+ if (!emissive)
94
+ return null;
95
+ const color = asset.createTexture2D(context, (_a = emissive.index) !== null && _a !== void 0 ? _a : 0);
96
+ if (context.paint)
97
+ color.eventChange.addListener(context.paint);
98
+ return color;
99
+ }
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2x0Zi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvZ2x0Zi9nbHRmLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBd0IsTUFBTSxjQUFjLENBQUE7QUFFL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUE7QUFDNUMsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFckMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQWdCeEM7R0FDRztBQUNILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxjQUFjO0lBQ2xELFlBQ0ksT0FJQyxFQUNELE9BQWtDOztRQUVsQyxNQUFNLEVBQ0YsS0FBSyxFQUNMLFNBQVMsR0FBRyxDQUFDLEVBQ2IsY0FBYyxHQUFHLENBQUMsRUFDbEIsZUFBZSxHQUFHLFlBQVksR0FDakMsR0FBRyxPQUFPLENBQUE7UUFDWCxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsT0FBTyxDQUFDLENBQUE7UUFDcEUsTUFBTSxRQUFRLEdBQUcsZUFBZSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUMzQyxJQUFJLGNBQWMsR0FBRyxLQUFLLENBQUE7UUFDMUIsTUFBTSxVQUFVLEdBQXlCO1lBQ3JDLFFBQVEsRUFBRSxNQUFNO1lBQ2hCLE1BQU0sRUFBRSxNQUFNO1NBQ2pCLENBQUE7UUFDRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqRCxVQUFVLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQTtRQUNsQyxD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
@@ -1,9 +1,9 @@
1
- import { TgdContext } from "../../../context";
2
1
  import { TgdGeometry } from "../../../geometry";
3
2
  import { TgdMaterial } from "../../../material";
4
3
  import { TgdTransfo, TgdTransfoOptions, TgdVec3 } from "../../../math";
5
4
  import { TgdInterfaceTransformable } from "../../../interface";
6
5
  import { TgdPainter } from "../../painter";
6
+ import { TgdCamera } from "../../../camera";
7
7
  export interface TgdPainterMeshOptions {
8
8
  transfo?: Partial<TgdTransfoOptions> | TgdTransfo;
9
9
  geometry?: TgdGeometry;
@@ -13,7 +13,11 @@ export interface TgdPainterMeshOptions {
13
13
  /**
14
14
  */
15
15
  export declare class TgdPainterMesh extends TgdPainter implements TgdInterfaceTransformable {
16
- protected readonly context: TgdContext;
16
+ protected readonly context: {
17
+ gl: WebGL2RenderingContext;
18
+ camera: TgdCamera;
19
+ paint?: () => void;
20
+ };
17
21
  readonly transfo: TgdTransfo;
18
22
  readonly material: TgdMaterial;
19
23
  private readonly prg;
@@ -24,7 +28,12 @@ export declare class TgdPainterMesh extends TgdPainter implements TgdInterfaceTr
24
28
  private readonly drawMode;
25
29
  private bboxMin;
26
30
  private bboxMax;
27
- constructor(context: TgdContext, options?: TgdPainterMeshOptions);
31
+ constructor(context: {
32
+ gl: WebGL2RenderingContext;
33
+ camera: TgdCamera;
34
+ paint?: () => void;
35
+ }, options?: TgdPainterMeshOptions);
36
+ debug(caption?: string): void;
28
37
  computeBoundingBox(): {
29
38
  min: Readonly<TgdVec3>;
30
39
  max: Readonly<TgdVec3>;
@@ -1 +1 @@
1
- {"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../../../src/painter/mesh/mesh/mesh.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,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;AAE1C,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,cAAe,SAAQ,UAAW,YAAW,yBAAyB;IAc3E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU;IAb1C,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,UAAU,EACtC,OAAO,GAAE,qBAA0B;IA2EvC,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;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"}
@@ -84,13 +84,15 @@ export class TgdPainterMesh extends TgdPainter {
84
84
  vert,
85
85
  frag,
86
86
  });
87
- prg.debug();
88
87
  this.prg = prg;
89
88
  this.vao = new TgdVertexArray(context.gl, prg, [geometry.dataset], geometry.elements);
90
89
  this.elementsType = geometry.elementsType;
91
90
  this.count = geometry.count;
92
91
  this.name = (_b = options.name) !== null && _b !== void 0 ? _b : `Mesh/${this.name}`;
93
92
  }
93
+ debug(caption) {
94
+ this.prg.debug(caption !== null && caption !== void 0 ? caption : this.name);
95
+ }
94
96
  computeBoundingBox() {
95
97
  if (this.bboxMin && this.bboxMax) {
96
98
  return {
@@ -121,4 +123,4 @@ export class TgdPainterMesh extends TgdPainter {
121
123
  this.vao.delete();
122
124
  }
123
125
  }
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbWVzaC9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQXFCLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFTMUM7R0FDRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBVTtJQWExQyxZQUN1QixPQUFtQixFQUN0QyxVQUFpQyxFQUFFOztRQUVuQyxLQUFLLEVBQUUsQ0FBQTtRQUhZLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFiMUIsWUFBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFRekIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUM3QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQUM5QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQThHdEIsVUFBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3BELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FDaEUsSUFBSSxDQUFBO1lBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxP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
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9wYWludGVyL21lc2gvbWVzaC9tZXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFDM0QsT0FBTyxFQUFlLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQXFCLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sY0FBYyxDQUFBO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDekMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBRXBELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFVMUM7R0FDRztBQUNILE1BQU0sT0FBTyxjQUNULFNBQVEsVUFBVTtJQWVsQixZQUN1QixPQUlsQixFQUNELFVBQWlDLEVBQUU7O1FBRW5DLEtBQUssRUFBRSxDQUFBO1FBUFksWUFBTyxHQUFQLE9BQU8sQ0FJekI7UUFqQlcsWUFBTyxHQUFHLElBQUksVUFBVSxFQUFFLENBQUE7UUFRekIsYUFBUSxHQUFXLENBQUMsQ0FBQTtRQUM3QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQUM5QixZQUFPLEdBQW1CLElBQUksQ0FBQTtRQXFIdEIsVUFBSyxHQUFHLENBQUMsSUFBWSxFQUFFLEtBQWEsRUFBRSxFQUFFO1lBQ3BELE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsR0FDaEUsSUFBSSxDQUFBO1lBQ1IsTUFBTSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxP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
@@ -1,6 +1,6 @@
1
1
  #version 300 es
2
2
 
3
- precision mediump float;
3
+ precision highp float;
4
4
 
5
5
  uniform mat4 uniModelViewMatrix;
6
6
  uniform mat4 uniProjectionMatrix;
@@ -2,11 +2,17 @@ import { TgdPainter } from "../painter";
2
2
  import { TgdTransfo, TgdTransfoOptions } from "../../math/transfo";
3
3
  import { TgdInterfaceTransformablePainter } from "../../interface";
4
4
  export interface TgdPainterNodeOptions {
5
+ name?: string;
5
6
  transfo: TgdTransfo | Partial<TgdTransfoOptions>;
6
- target: TgdInterfaceTransformablePainter;
7
- children: TgdPainterNode[];
8
- logic(time: number, delay: number): void;
7
+ children: TgdPainterNodeChild[];
8
+ /**
9
+ * Do we call the `paint()` method of the targets?
10
+ * Default to `true`.
11
+ */
12
+ paintTheTargets?: boolean;
13
+ logic(this: TgdPainterNode, time: number, delay: number): void;
9
14
  }
15
+ export type TgdPainterNodeChild = TgdPainterNode | TgdInterfaceTransformablePainter;
10
16
  /**
11
17
  * A Node can hold others Nodes or any object providing the
12
18
  * TgdPainterNodeChild interface.
@@ -41,15 +47,22 @@ export interface TgdPainterNodeOptions {
41
47
  */
42
48
  export declare class TgdPainterNode extends TgdPainter {
43
49
  readonly transfo: TgdTransfo;
44
- target: TgdInterfaceTransformablePainter | null;
45
50
  private readonly parentMatrix;
51
+ /**
52
+ * globalMatrix = parentMatrix * transfo
53
+ */
46
54
  private readonly globalMatrix;
47
- private readonly children;
55
+ private readonly nodes;
56
+ private readonly targets;
48
57
  private readonly logic?;
58
+ private readonly paintTheTargets;
49
59
  constructor(options?: Partial<TgdPainterNodeOptions>);
50
60
  delete(): void;
51
- add(...children: TgdPainterNode[]): this;
52
- remove(...children: TgdPainterNode[]): void;
61
+ add(...children: TgdPainterNodeChild[]): this;
62
+ remove(...children: TgdPainterNodeChild[]): this;
63
+ getNodes(): TgdPainterNode[];
64
+ getTargets(): TgdInterfaceTransformablePainter[];
53
65
  paint(time: number, delay: number): void;
66
+ debug(caption?: string): void;
54
67
  }
55
68
  //# sourceMappingURL=node.d.ts.map
@@ -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,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAChD,MAAM,EAAE,gCAAgC,CAAA;IACxC,QAAQ,EAAE,cAAc,EAAE,CAAA;IAC1B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC1C,SAAgB,OAAO,EAAE,UAAU,CAAA;IAC5B,MAAM,EAAE,gCAAgC,GAAG,IAAI,CAAO;IAE7D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAuC;gBAElD,OAAO,GAAE,OAAO,CAAC,qBAAqB,CAAM;IASxD,MAAM,IAAI,IAAI;IAOd,GAAG,CAAC,GAAG,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;IAOxC,MAAM,CAAC,GAAG,QAAQ,EAAE,cAAc,EAAE;IAOpC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAmB3C"}
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"}
@@ -36,36 +36,60 @@ import { TgdTransfo } from "../../math/transfo.js";
36
36
  export class TgdPainterNode extends TgdPainter {
37
37
  constructor(options = {}) {
38
38
  super();
39
- this.target = null;
40
39
  this.parentMatrix = new TgdMat4();
40
+ /**
41
+ * globalMatrix = parentMatrix * transfo
42
+ */
41
43
  this.globalMatrix = new TgdMat4();
42
- this.children = [];
43
- const { children = [], target = null, transfo, logic } = options;
44
+ this.nodes = [];
45
+ this.targets = [];
46
+ const { children = [], transfo, logic, paintTheTargets = true, name = `TgdPainterNode/${this.name}`, } = options;
47
+ this.paintTheTargets = paintTheTargets;
44
48
  for (const child of children)
45
49
  this.add(child);
46
- this.target = target;
47
50
  this.transfo = new TgdTransfo(transfo);
48
- this.logic = logic;
51
+ this.logic = logic === null || logic === void 0 ? void 0 : logic.bind(this);
52
+ this.name = name;
49
53
  }
50
54
  delete() {
51
- var _a, _b;
52
- for (const child of this.children) {
55
+ var _a;
56
+ for (const child of this.nodes) {
53
57
  child.delete();
54
58
  }
55
- (_b = (_a = this.target) === null || _a === void 0 ? void 0 : _a.delete) === null || _b === void 0 ? void 0 : _b.call(_a);
59
+ for (const target of this.targets)
60
+ (_a = target.delete) === null || _a === void 0 ? void 0 : _a.call(target);
56
61
  }
57
62
  add(...children) {
58
63
  for (const child of children) {
59
- this.children.push(child);
64
+ if (child instanceof TgdPainterNode) {
65
+ this.nodes.push(child);
66
+ }
67
+ else {
68
+ this.targets.push(child);
69
+ }
60
70
  }
61
71
  return this;
62
72
  }
63
73
  remove(...children) {
64
74
  for (const child of children) {
65
- const nodePosition = this.children.indexOf(child);
66
- if (nodePosition !== -1)
67
- this.children.splice(nodePosition, 1);
75
+ if (child instanceof TgdPainterNode) {
76
+ const nodePosition = this.nodes.indexOf(child);
77
+ if (nodePosition !== -1)
78
+ this.nodes.splice(nodePosition, 1);
79
+ }
80
+ else {
81
+ const index = this.targets.indexOf(child);
82
+ if (index !== -1)
83
+ this.targets.splice(index, 1);
84
+ }
68
85
  }
86
+ return this;
87
+ }
88
+ getNodes() {
89
+ return [...this.nodes];
90
+ }
91
+ getTargets() {
92
+ return [...this.targets];
69
93
  }
70
94
  paint(time, delay) {
71
95
  var _a, _b, _c;
@@ -77,15 +101,48 @@ export class TgdPainterNode extends TgdPainter {
77
101
  node.globalMatrix
78
102
  .from(node.parentMatrix)
79
103
  .multiply(node.transfo.matrix);
80
- if (node.target) {
81
- node.target.transfo.matrix.from(node.globalMatrix);
82
- (_c = (_b = node.target).paint) === null || _c === void 0 ? void 0 : _c.call(_b, time, delay);
104
+ (_b = node.logic) === null || _b === void 0 ? void 0 : _b.call(node, time, delay);
105
+ for (const target of node.targets) {
106
+ target.transfo.matrix.from(node.globalMatrix);
107
+ if (this.paintTheTargets)
108
+ (_c = target.paint) === null || _c === void 0 ? void 0 : _c.call(target, time, delay);
83
109
  }
84
- for (const child of node.children) {
110
+ for (const child of node.nodes) {
85
111
  child.parentMatrix.from(node.globalMatrix);
86
112
  fringe.push(child);
87
113
  }
88
114
  }
89
115
  }
116
+ debug(caption = "TgdPainterNode") {
117
+ console.log(caption);
118
+ actualDebug(this);
119
+ }
120
+ }
121
+ function actualDebug(node, indent = "| ") {
122
+ var _a, _b;
123
+ console.log(`${indent}${node.name} [${format(node.transfo.orientation)}] (${format(node.transfo.position)})`);
124
+ const targets = node.getTargets();
125
+ if (targets.length > 0) {
126
+ if (targets.length === 1) {
127
+ console.log(`${indent} Target: ${(_a = targets[0].name) !== null && _a !== void 0 ? _a : "..."}`);
128
+ }
129
+ else {
130
+ console.log(`${indent} Targets (${targets.length})`);
131
+ for (const target of targets) {
132
+ console.log(`${indent} ${(_b = target.name) !== null && _b !== void 0 ? _b : "..."}`);
133
+ }
134
+ }
135
+ }
136
+ const nodes = node.getNodes();
137
+ if (nodes.length > 0) {
138
+ console.log(`${indent} Nodes (${nodes.length})`);
139
+ for (const child of nodes) {
140
+ actualDebug(child, `${indent} | `);
141
+ }
142
+ }
143
+ }
144
+ function format(vec) {
145
+ const list = [...vec].map(v => v.toFixed(3));
146
+ return list.join(", ");
90
147
  }
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL25vZGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBQ25DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdkMsT0FBTyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxvQkFBb0IsQ0FBQTtBQVVsRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQUNILE1BQU0sT0FBTyxjQUFlLFNBQVEsVUFBVTtJQVMxQyxZQUFZLFVBQTBDLEVBQUU7UUFDcEQsS0FBSyxFQUFFLENBQUE7UUFSSixXQUFNLEdBQTRDLElBQUksQ0FBQTtRQUU1QyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUE7UUFDNUIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFBO1FBQzVCLGFBQVEsR0FBcUIsRUFBRSxDQUFBO1FBSzVDLE1BQU0sRUFBRSxRQUFRLEdBQUcsRUFBRSxFQUFFLE1BQU0sR0FBRyxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLE9BQU8sQ0FBQTtRQUNoRSxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVE7WUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdDLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFBO1FBQ3BCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFDdEIsQ0FBQztJQUVELE1BQU07O1FBQ0YsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2xCLENBQUM7UUFDRCxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sMENBQUUsTUFBTSxrREFBSSxDQUFBO0lBQzNCLENBQUM7SUFFRCxHQUFHLENBQUMsR0FBRyxRQUEwQjtRQUM3QixLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzdCLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQTtJQUNmLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxRQUEwQjtRQUNoQyxLQUFLLE1BQU0sS0FBSyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzNCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO1lBQ2pELElBQUksWUFBWSxLQUFLLENBQUMsQ0FBQztnQkFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbEUsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBWSxFQUFFLEtBQWE7O1FBQzdCLE1BQUEsSUFBSSxDQUFDLEtBQUsscURBQUcsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFBO1FBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDekIsTUFBTSxNQUFNLEdBQXFCLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDdkMsT0FBTyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLEVBQW9CLENBQUE7WUFDN0MsSUFBSSxDQUFDLFlBQVk7aUJBQ1osSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUM7aUJBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1lBQ2xDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUNsRCxNQUFBLE1BQUEsSUFBSSxDQUFDLE1BQU0sRUFBQyxLQUFLLG1EQUFHLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUNwQyxDQUFDO1lBQ0QsS0FBSyxNQUFNLEtBQUssSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2hDLEtBQUssQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQTtnQkFDMUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtZQUN0QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7Q0FDSiJ9
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wYWludGVyL25vZGUvbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFvQixNQUFNLFdBQVcsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3ZDLE9BQU8sRUFBRSxVQUFVLEVBQXFCLE1BQU0sb0JBQW9CLENBQUE7QUFtQmxFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBK0JHO0FBQ0gsTUFBTSxPQUFPLGNBQWUsU0FBUSxVQUFVO0lBYTFDLFlBQVksVUFBMEMsRUFBRTtRQUNwRCxLQUFLLEVBQUUsQ0FBQTtRQVhNLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUM3Qzs7V0FFRztRQUNjLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQTtRQUM1QixVQUFLLEdBQXFCLEVBQUUsQ0FBQTtRQUM1QixZQUFPLEdBQXVDLEVBQUUsQ0FBQTtRQU03RCxNQUFNLEVBQ0YsUUFBUSxHQUFHLEVBQUUsRUFDYixPQUFPLEVBQ1AsS0FBSyxFQUNMLGVBQWUsR0FBRyxJQUFJLEVBQ3RCLElBQUksR0FBRyxrQkFBa0IsSUFBSSxDQUFDLElBQUksRUFBRSxHQUN2QyxHQUFHLE9BQU8sQ0FBQTtRQUNYLElBQUksQ0FBQyxlQUFlLEdBQUcsZUFBZSxDQUFBO1FBQ3RDLEtBQUssTUFBTSxLQUFLLElBQUksUUFBUTtZQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtRQUN0QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsSUFBSSxDQUFDLElBQUksR0FB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
@@ -54,6 +54,9 @@ export declare class TgdPainterSegments extends TgdPainter {
54
54
  radiusSwitch: number;
55
55
  light: number;
56
56
  shiftZ: number;
57
+ contrast: number;
58
+ specularIntensity: number;
59
+ specularExponent: number;
57
60
  private readonly vao;
58
61
  private readonly prg;
59
62
  private readonly vertexCount;
@@ -61,10 +64,9 @@ export declare class TgdPainterSegments extends TgdPainter {
61
64
  constructor(context: {
62
65
  gl: WebGL2RenderingContext;
63
66
  camera: TgdCamera;
64
- }, factory: {
67
+ }, options: Partial<TgdPainterSegmentsOptions> & {
65
68
  makeDataset: () => InstanceDataset;
66
- readonly count: number;
67
- }, { roundness, minRadius, }?: Partial<TgdPainterSegmentsOptions>);
69
+ });
68
70
  delete(): void;
69
71
  paint(_time: number, _delay: number): void;
70
72
  }
@@ -81,13 +83,13 @@ export declare class TgdPainterSegmentsData {
81
83
  /**
82
84
  * @param Axyzr (x,y,z) and radius of point A.
83
85
  * @param Bxyzr (x,y,z) and radius of point B.
84
- * @param Auv
85
- * @param Buv
86
- * @param radiusMultiplierInfluenceA
86
+ * @param Auv Texture coordinates for point A.
87
+ * @param Buv Texture coordinates for point B.
88
+ * @param radiusMultiplierInfluenceA If you put 0, the radius won't change regardless to the currently applied radius multiplicator.
87
89
  * @param radiusMultiplierInfluenceB
88
90
  */
89
91
  add(Axyzr: ArrayNumber4, Bxyzr: ArrayNumber4, Auv?: ArrayNumber2, Buv?: ArrayNumber2, radiusMultiplierInfluenceA?: number, radiusMultiplierInfluenceB?: number): void;
90
- makeDataset(): InstanceDataset;
92
+ readonly makeDataset: () => InstanceDataset;
91
93
  }
92
94
  export {};
93
95
  //# sourceMappingURL=segments.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,MAAM,yBAAyB,GAAG;IACpC;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAe1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;KACpB;IAjBE,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAI;IACrB,gBAAgB,SAAI;IACpB,cAAc,SAAI;IAClB,YAAY,SAAI;IAChB,KAAK,SAAI;IACT,MAAM,SAAI;IAEjB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAGf,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;KACpB,EACD,OAAO,EAAE;QAAE,WAAW,EAAE,MAAM,eAAe,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EACvE,EACI,SAAa,EACb,SAAa,GAChB,GAAE,OAAO,CAAC,yBAAyB,CAAM;IAoC9C,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAqC7C;AAED,KAAK,eAAe,GAAG,UAAU,CAAA;AAEjC,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,IAAI,KAAK,WAER;IAED;;;;;;;OAOG;IACH,GAAG,CACC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,GAAG,GAAE,YAAqB,EAC1B,GAAG,GAAE,YAAqB,EAC1B,0BAA0B,SAAI,EAC9B,0BAA0B,SAAI;IAWlC,WAAW,IAAI,eAAe;CAsBjC"}
1
+ {"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../../src/painter/segments/segments.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAKvD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAGvC,MAAM,MAAM,yBAAyB,GAAG;IACpC;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAA;CACpB,CAAA;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;IAkB1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;KACpB;IApBE,YAAY,EAAE,YAAY,CAAA;IAC1B,SAAS,EAAE,MAAM,CAAI;IACrB,gBAAgB,SAAI;IACpB,cAAc,SAAI;IAClB,YAAY,SAAI;IAChB,KAAK,SAAI;IACT,MAAM,SAAI;IACV,QAAQ,SAAM;IACd,iBAAiB,SAAM;IACvB,gBAAgB,SAAK;IAE5B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAQ;gBAGf,OAAO,EAAE;QACxB,EAAE,EAAE,sBAAsB,CAAA;QAC1B,MAAM,EAAE,SAAS,CAAA;KACpB,EACD,OAAO,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG;QAC1C,WAAW,EAAE,MAAM,eAAe,CAAA;KACrC;IAsCL,MAAM,IAAI,IAAI;IAId,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CA4C7C;AAED,KAAK,eAAe,GAAG,UAAU,CAAA;AAEjC,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAI;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;IACtC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAE7C,IAAI,KAAK,WAER;IAED;;;;;;;OAOG;IACH,GAAG,CACC,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,GAAG,GAAE,YAAqB,EAC1B,GAAG,GAAE,YAAqB,EAC1B,0BAA0B,SAAI,EAC9B,0BAA0B,SAAI;IAWlC,QAAQ,CAAC,WAAW,QAAO,eAAe,CAqBzC;CACJ"}
@@ -1,12 +1,22 @@
1
1
  #version 300 es
2
2
 
3
- precision mediump float;
3
+ precision highp float;
4
+
5
+ uniform float uniContrast;
6
+ uniform float uniSpecularIntensity;
7
+ uniform float uniSpecularExponent;
4
8
 
5
9
  in vec4 varColor;
10
+ in vec3 varNormal;
11
+
6
12
  out vec4 FragColor;
7
13
 
8
14
 
9
15
  void main() {
10
16
  if (varColor.a < 1.0) discard;
11
- else FragColor = varColor;
17
+
18
+ float z = normalize(varNormal).z;
19
+ float light = z * uniContrast + (1.0 - uniContrast);
20
+ float spec = pow(z, uniSpecularExponent) * uniSpecularIntensity;
21
+ FragColor =vec4(varColor.rgb * light + vec3(spec), varColor.w); // varColor;
12
22
  }