@babylonjs/smart-filters 0.2.0-alpha → 0.3.1-alpha

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 (108) hide show
  1. package/dist/blocks/baseBlock.d.ts +1 -1
  2. package/dist/blocks/baseBlock.d.ts.map +1 -1
  3. package/dist/blocks/baseBlock.js +1 -1
  4. package/dist/blocks/baseBlock.js.map +1 -1
  5. package/dist/blocks/copyBlock.d.ts +2 -3
  6. package/dist/blocks/copyBlock.d.ts.map +1 -1
  7. package/dist/blocks/copyBlock.js +4 -24
  8. package/dist/blocks/copyBlock.js.map +1 -1
  9. package/dist/blocks/copyBlock.shader.d.ts +13 -0
  10. package/dist/blocks/copyBlock.shader.d.ts.map +1 -0
  11. package/dist/blocks/copyBlock.shader.js +34 -0
  12. package/dist/blocks/copyBlock.shader.js.map +1 -0
  13. package/dist/blocks/inputBlock.d.ts +41 -5
  14. package/dist/blocks/inputBlock.d.ts.map +1 -1
  15. package/dist/blocks/inputBlock.deserializer.d.ts +14 -0
  16. package/dist/blocks/inputBlock.deserializer.d.ts.map +1 -0
  17. package/dist/blocks/inputBlock.deserializer.js +46 -0
  18. package/dist/blocks/inputBlock.deserializer.js.map +1 -0
  19. package/dist/blocks/inputBlock.js +16 -6
  20. package/dist/blocks/inputBlock.js.map +1 -1
  21. package/dist/blocks/inputBlock.serialization.types.d.ts +74 -0
  22. package/dist/blocks/inputBlock.serialization.types.d.ts.map +1 -0
  23. package/dist/blocks/inputBlock.serialization.types.js +2 -0
  24. package/dist/blocks/inputBlock.serialization.types.js.map +1 -0
  25. package/dist/blocks/inputBlock.serializer.d.ts +6 -0
  26. package/dist/blocks/inputBlock.serializer.d.ts.map +1 -0
  27. package/dist/blocks/inputBlock.serializer.js +115 -0
  28. package/dist/blocks/inputBlock.serializer.js.map +1 -0
  29. package/dist/index.d.ts +2 -1
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/serialization/index.d.ts +5 -0
  34. package/dist/serialization/index.d.ts.map +1 -0
  35. package/dist/serialization/index.js +5 -0
  36. package/dist/serialization/index.js.map +1 -0
  37. package/dist/serialization/serializedSmartFilter.d.ts +6 -0
  38. package/dist/serialization/serializedSmartFilter.d.ts.map +1 -0
  39. package/dist/serialization/serializedSmartFilter.js +2 -0
  40. package/dist/serialization/serializedSmartFilter.js.map +1 -0
  41. package/dist/serialization/smartFilterDeserializer.d.ts +25 -0
  42. package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -0
  43. package/dist/serialization/smartFilterDeserializer.js +90 -0
  44. package/dist/serialization/smartFilterDeserializer.js.map +1 -0
  45. package/dist/serialization/smartFilterSerializer.d.ts +23 -0
  46. package/dist/serialization/smartFilterSerializer.d.ts.map +1 -0
  47. package/dist/serialization/smartFilterSerializer.js +91 -0
  48. package/dist/serialization/smartFilterSerializer.js.map +1 -0
  49. package/dist/serialization/v1/defaultBlockSerializer.d.ts +9 -0
  50. package/dist/serialization/v1/defaultBlockSerializer.d.ts.map +1 -0
  51. package/dist/serialization/v1/defaultBlockSerializer.js +16 -0
  52. package/dist/serialization/v1/defaultBlockSerializer.js.map +1 -0
  53. package/dist/serialization/v1/index.d.ts +3 -0
  54. package/dist/serialization/v1/index.d.ts.map +1 -0
  55. package/dist/serialization/v1/index.js +3 -0
  56. package/dist/serialization/v1/index.js.map +1 -0
  57. package/dist/serialization/v1/serialization.types.d.ts +83 -0
  58. package/dist/serialization/v1/serialization.types.d.ts.map +1 -0
  59. package/dist/serialization/v1/serialization.types.js +2 -0
  60. package/dist/serialization/v1/serialization.types.js.map +1 -0
  61. package/dist/smartFilter.d.ts +2 -2
  62. package/dist/smartFilter.d.ts.map +1 -1
  63. package/dist/smartFilter.js +9 -6
  64. package/dist/smartFilter.js.map +1 -1
  65. package/dist/utils/buildTools/determineVersion.d.ts +36 -0
  66. package/dist/utils/buildTools/determineVersion.d.ts.map +1 -0
  67. package/dist/utils/buildTools/determineVersion.js +109 -0
  68. package/dist/utils/buildTools/determineVersion.js.map +1 -0
  69. package/dist/utils/buildTools/shaderConverter.d.ts +2 -0
  70. package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -0
  71. package/dist/utils/buildTools/shaderConverter.js +277 -0
  72. package/dist/utils/buildTools/shaderConverter.js.map +1 -0
  73. package/dist/utils/buildTools/versionUp.d.ts +2 -0
  74. package/dist/utils/buildTools/versionUp.d.ts.map +1 -0
  75. package/dist/utils/buildTools/versionUp.js +45 -0
  76. package/dist/utils/buildTools/versionUp.js.map +1 -0
  77. package/dist/utils/textureLoaders.d.ts +3 -1
  78. package/dist/utils/textureLoaders.d.ts.map +1 -1
  79. package/dist/utils/textureLoaders.js +3 -2
  80. package/dist/utils/textureLoaders.js.map +1 -1
  81. package/dist/utils/uniqueIdGenerator.d.ts +19 -0
  82. package/dist/utils/uniqueIdGenerator.d.ts.map +1 -0
  83. package/dist/utils/uniqueIdGenerator.js +27 -0
  84. package/dist/utils/uniqueIdGenerator.js.map +1 -0
  85. package/package.json +11 -6
  86. package/readme.md +12 -0
  87. package/src/blocks/baseBlock.ts +2 -3
  88. package/src/blocks/copyBlock.fragment.glsl +5 -0
  89. package/src/blocks/copyBlock.shader.ts +36 -0
  90. package/src/blocks/copyBlock.ts +4 -29
  91. package/src/blocks/inputBlock.deserializer.ts +60 -0
  92. package/src/blocks/inputBlock.serialization.types.ts +95 -0
  93. package/src/blocks/inputBlock.serializer.ts +132 -0
  94. package/src/blocks/inputBlock.ts +51 -7
  95. package/src/index.ts +2 -1
  96. package/src/serialization/index.ts +4 -0
  97. package/src/serialization/serializedSmartFilter.ts +6 -0
  98. package/src/serialization/smartFilterDeserializer.ts +127 -0
  99. package/src/serialization/smartFilterSerializer.ts +113 -0
  100. package/src/serialization/v1/defaultBlockSerializer.ts +18 -0
  101. package/src/serialization/v1/index.ts +2 -0
  102. package/src/serialization/v1/serialization.types.ts +108 -0
  103. package/src/smartFilter.ts +10 -8
  104. package/src/utils/buildTools/determineVersion.ts +127 -0
  105. package/src/utils/buildTools/shaderConverter.ts +399 -0
  106. package/src/utils/buildTools/versionUp.ts +52 -0
  107. package/src/utils/textureLoaders.ts +18 -3
  108. package/src/utils/uniqueIdGenerator.ts +28 -0
@@ -31,7 +31,7 @@ export declare abstract class BaseBlock implements ICommandOwner {
31
31
  /**
32
32
  * Global unique id of the block (This is unique for the current session).
33
33
  */
34
- readonly uniqueId: number;
34
+ uniqueId: number;
35
35
  /**
36
36
  * The name of the block. This is used to identify the block in the smart filter or in debug.
37
37
  */
@@ -1 +1 @@
1
- {"version":3,"file":"baseBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { UniqueIdGenerator } from "@babylonjs/core/Misc/uniqueIdGenerator.js";
2
1
  import { ConnectionPointType } from "../connection/connectionPointType.js";
3
2
  import { ConnectionPoint } from "../connection/connectionPoint.js";
4
3
  import { ConnectionPointWithDefault } from "../connection/connectionPointWithDefault.js";
5
4
  import { ConnectionPointDirection } from "../connection/connectionPointDirection.js";
5
+ import { UniqueIdGenerator } from "../utils/uniqueIdGenerator.js";
6
6
  /**
7
7
  * This class represents the base class for all smart filter blocks.
8
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"baseBlock.js","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseBlock.js","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAA6B,MAAM,sCAAsC,CAAC;AAGtG,OAAO,EAAE,eAAe,EAAoB,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAQlE;;;;;;;GAOG;AACH,MAAM,OAAgB,SAAS;IA+B3B;;;;;OAKG;IACH,YACI,WAAwB,EACxB,IAAY,EACI,sBAAsB,KAAK;QAA3B,wBAAmB,GAAnB,mBAAmB,CAAQ;QAjB/C;;WAEG;QACI,aAAQ,GAAqB,IAAI,CAAC;QAExB,YAAO,GAAsB,EAAE,CAAC;QAChC,aAAQ,GAAsB,EAAE,CAAC;QAa9C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,yCAAyC;QACzC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,qJAAqJ;QACrJ,OAAQ,IAAI,CAAC,WAAgC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAgB;QAClC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC3B,SAAS;YACb,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5C,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,YAAY,CAClB,SAAY,EACZ,QAAyB,EACzB,cAA8B;QAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;YAE3C,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CACR,SAAY,EACZ,QAAyB,EACzB,oBAAqC;QAErC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,oBAAoB,GAAG,SAAS,CAAC,qBAAqB,CAAC;YACvD,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAE7D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAgC,IAAY;QACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,KAA2B,CAAC;YACvC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,wBAA+D,IAAS,CAAC;IAEpG;;;OAGG;IACI,iBAAiB,KAAU,CAAC;IAEnC;;OAEG;IACI,oBAAoB;QACvB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,qCAAqC,CAAC,kBAAsC,EAAE,YAAqB;;QACtG,6GAA6G;QAC7G,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,WAAW,0CAAE,KAA0D,CAAC;gBAC9F,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBAChC,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBACrD,IAAI,eAAe,EAAE,CAAC;wBAClB,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;4BAC9D,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE;gCACxC,OAAO,EAAE,CAAC;4BACd,CAAC,CAAC,CAAC;4BACH,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC5C,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACxE,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,UAAU;;QACb,gBAAgB;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAA,KAAK,CAAC,WAAW,0CAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,iBAAiB;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CACjB,IAAY,EACZ,IAAO,EACP,eAAyC,IAAI;QAE7C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,sBAAsB,CACzB,IAAY,EACZ,IAAO,EACP,YAA4B;QAE5B,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAgC,IAAY,EAAE,IAAO;QACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,0BAA0B,CAC7B,IAAY,EACZ,IAAO,EACP,YAA4B;QAE5B,MAAM,MAAM,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC/G,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACO,2BAA2B,CACjC,KAAyB;QAEzB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,iBAClC,KAAK,CAAC,IACV,wBAAwB,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,IAAI,GAAG,CACrE,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC;IAC7B,CAAC;;AA1TgB,+BAAqB,GAAG,IAAI,GAAG,EAAa,AAAvB,CAAwB;AAE9D;;GAEG;AACW,mBAAS,GAAG,WAAW,AAAd,CAAe"}
@@ -1,5 +1,4 @@
1
1
  import type { Effect } from "@babylonjs/core/Materials/effect";
2
- import type { ShaderProgram } from "../utils/shaderCodeUtils";
3
2
  import type { SmartFilter } from "../smartFilter";
4
3
  import { ConnectionPointType } from "../connection/connectionPointType.js";
5
4
  import { ShaderBlock } from "./shaderBlock.js";
@@ -28,7 +27,7 @@ export declare class CopyShaderBinding extends ShaderBinding {
28
27
  *
29
28
  * This might be helpful to duplicate a texture if necessary.
30
29
  *
31
- * It simply takes a texture as input and outputs it to another texture or the main canvas.
30
+ * It simply takes a texture as input and outputs it to another texture or to the main canvas.
32
31
  */
33
32
  export declare class CopyBlock extends ShaderBlock {
34
33
  /**
@@ -42,7 +41,7 @@ export declare class CopyBlock extends ShaderBlock {
42
41
  /**
43
42
  * The shader program (vertex and fragment code) to use to render the block
44
43
  */
45
- static ShaderCode: ShaderProgram;
44
+ static ShaderCode: import("..").ShaderProgram;
46
45
  /**
47
46
  * Create a new copy block.
48
47
  * @param smartFilter - The smart filter this block belongs to.
@@ -1 +1 @@
1
- {"version":3,"file":"copyBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/copyBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAuBjE;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IAEzE;;;;OAIG;gBACS,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;IAK1F;;;;OAIG;IACa,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG7C;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,WAAW;IACtC;;OAEG;IACH,OAAuB,SAAS,SAAe;IAE/C;;OAEG;IACH,SAAgB,KAAK,uFAA6D;IAElF;;OAEG;IACH,OAAuB,UAAU,gBAAiB;IAElD;;;;OAIG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAIlD;;;OAGG;IACI,gBAAgB,IAAI,aAAa;CAS3C"}
1
+ {"version":3,"file":"copyBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/copyBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IAEzE;;;;OAIG;gBACS,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;IAK1F;;;;OAIG;IACa,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG7C;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,WAAW;IACtC;;OAEG;IACH,OAAuB,SAAS,SAAe;IAE/C;;OAEG;IACH,SAAgB,KAAK,uFAA6D;IAElF;;OAEG;IACH,OAAuB,UAAU,6BAAiB;IAElD;;;;OAIG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAIlD;;;OAGG;IACI,gBAAgB,IAAI,aAAa;CAK3C"}
@@ -1,24 +1,7 @@
1
1
  import { ConnectionPointType } from "../connection/connectionPointType.js";
2
2
  import { ShaderBlock } from "./shaderBlock.js";
3
3
  import { ShaderBinding } from "../runtime/shaderRuntime.js";
4
- const shaderProgram = {
5
- fragment: {
6
- uniform: `
7
- uniform sampler2D _input_;
8
- `,
9
- mainFunctionName: "_copy_",
10
- functions: [
11
- {
12
- name: "_copy_",
13
- code: `
14
- vec4 _copy_(vec2 vUV) {
15
- return texture2D(_input_, vUV);
16
- }
17
- `,
18
- },
19
- ],
20
- },
21
- };
4
+ import { shaderProgram, uniforms } from "./copyBlock.shader.js";
22
5
  /**
23
6
  * The shader bindings for the Copy block.
24
7
  */
@@ -38,7 +21,7 @@ export class CopyShaderBinding extends ShaderBinding {
38
21
  * @internal
39
22
  */
40
23
  bind(effect) {
41
- effect.setTexture(this.getRemappedName("input"), this._inputTexture.value);
24
+ effect.setTexture(this.getRemappedName(uniforms.input), this._inputTexture.value);
42
25
  }
43
26
  }
44
27
  /**
@@ -46,7 +29,7 @@ export class CopyShaderBinding extends ShaderBinding {
46
29
  *
47
30
  * This might be helpful to duplicate a texture if necessary.
48
31
  *
49
- * It simply takes a texture as input and outputs it to another texture or the main canvas.
32
+ * It simply takes a texture as input and outputs it to another texture or to the main canvas.
50
33
  */
51
34
  export class CopyBlock extends ShaderBlock {
52
35
  /**
@@ -66,10 +49,7 @@ export class CopyBlock extends ShaderBlock {
66
49
  * @returns The class instance that binds the data to the effect
67
50
  */
68
51
  getShaderBinding() {
69
- const input = this.input.runtimeData;
70
- if (!input) {
71
- throw new Error(`The input texture is missing for the CopyBlock named ${this.name}`);
72
- }
52
+ const input = this._confirmRuntimeDataSupplied(this.input);
73
53
  return new CopyShaderBinding(this, input);
74
54
  }
75
55
  }
@@ -1 +1 @@
1
- {"version":3,"file":"copyBlock.js","sourceRoot":"","sources":["../../src/blocks/copyBlock.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,MAAM,aAAa,GAAkB;IACjC,QAAQ,EAAE;QACN,OAAO,EAAE;;SAER;QAED,gBAAgB,EAAE,QAAQ;QAE1B,SAAS,EAAE;YACP;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;;;;iBAIL;aACJ;SACJ;KACJ;CACJ,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAGhD;;;;OAIG;IACH,YAAY,WAAsB,EAAE,YAAsD;QACtF,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACa,IAAI,CAAC,MAAc;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC/E,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,OAAO,SAAU,SAAQ,WAAW;IAgBtC;;;;OAIG;IACH,YAAY,WAAwB,EAAE,IAAY;QAC9C,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAhB7B;;WAEG;QACa,UAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAclF,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,wDAAwD,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzF,CAAC;QAED,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;AApCD;;GAEG;AACoB,mBAAS,GAAG,WAAW,AAAd,CAAe;AAO/C;;GAEG;AACoB,oBAAU,GAAG,aAAa,AAAhB,CAAiB"}
1
+ {"version":3,"file":"copyBlock.js","sourceRoot":"","sources":["../../src/blocks/copyBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAGhD;;;;OAIG;IACH,YAAY,WAAsB,EAAE,YAAsD;QACtF,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACa,IAAI,CAAC,MAAc;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,OAAO,SAAU,SAAQ,WAAW;IAgBtC;;;;OAIG;IACH,YAAY,WAAwB,EAAE,IAAY;QAC9C,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAhB7B;;WAEG;QACa,UAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAclF,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3D,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;AAhCD;;GAEG;AACoB,mBAAS,GAAG,WAAW,AAAd,CAAe;AAO/C;;GAEG;AACoB,oBAAU,GAAG,aAAa,AAAhB,CAAiB"}
@@ -0,0 +1,13 @@
1
+ import type { ShaderProgram } from "../utils/shaderCodeUtils";
2
+ /**
3
+ * The shader program for the block.
4
+ */
5
+ export declare const shaderProgram: ShaderProgram;
6
+ /**
7
+ * The uniform names for this shader, to be used in the shader binding so
8
+ * that the names are always in sync.
9
+ */
10
+ export declare const uniforms: {
11
+ input: string;
12
+ };
13
+ //# sourceMappingURL=copyBlock.shader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyBlock.shader.d.ts","sourceRoot":"","sources":["../../src/blocks/copyBlock.shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAsB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * The shader program for the block.
3
+ */
4
+ export const shaderProgram = {
5
+ vertex: undefined,
6
+ fragment: {
7
+ uniform: `
8
+ uniform sampler2D _input_; // main
9
+ uniform bool _disabled_;`,
10
+ mainInputTexture: "_input_",
11
+ mainFunctionName: "_copy_",
12
+ functions: [
13
+ {
14
+ name: "_copy_",
15
+ code: `
16
+ vec4 _copy_(vec2 vUV) {
17
+ if (_disabled_) return texture2D(_input_, vUV);
18
+ // main
19
+ return texture2D(_input_, vUV);
20
+ }
21
+
22
+ `,
23
+ },
24
+ ],
25
+ },
26
+ };
27
+ /**
28
+ * The uniform names for this shader, to be used in the shader binding so
29
+ * that the names are always in sync.
30
+ */
31
+ export const uniforms = {
32
+ input: "input",
33
+ };
34
+ //# sourceMappingURL=copyBlock.shader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyBlock.shader.js","sourceRoot":"","sources":["../../src/blocks/copyBlock.shader.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IACxC,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE;QACN,OAAO,EAAE;;qCAEoB;QAC7B,gBAAgB,EAAE,SAAS;QAC3B,gBAAgB,EAAE,QAAQ;QAC1B,SAAS,EAAE;YACP;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;;;;;;;qBAOD;aACR;SACJ;KACJ;CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,KAAK,EAAE,OAAO;CACjB,CAAC"}
@@ -5,6 +5,7 @@ import type { ConnectionPointWithDefault } from "../connection/connectionPointWi
5
5
  import type { DisableableBlock } from "./disableableBlock";
6
6
  import { BaseBlock } from "../blocks/baseBlock.js";
7
7
  import { ConnectionPointType } from "../connection/connectionPointType.js";
8
+ import type { Nullable } from "@babylonjs/core/types";
8
9
  /**
9
10
  * Predicate to check if a block is a texture input block.
10
11
  * @param block - The block to check
@@ -17,6 +18,41 @@ export declare function isTextureInputBlock(block: BaseBlock): block is InputBlo
17
18
  * @returns true if the block is a disableable block, otherwise false
18
19
  */
19
20
  export declare function isDisableableBlock(block: BaseBlock): block is DisableableBlock;
21
+ /**
22
+ * This base class exists to provide a type that the serializer can use to represent
23
+ * any InputBlock without knowing the exact type it is.
24
+ */
25
+ export declare abstract class InputBlockBase extends BaseBlock {
26
+ /**
27
+ * The class name of the block.
28
+ */
29
+ static ClassName: string;
30
+ /**
31
+ * The type of the input.
32
+ */
33
+ abstract readonly type: ConnectionPointType;
34
+ }
35
+ /**
36
+ * Describes the editor data that can be stored with an InputBlock of a given type.
37
+ */
38
+ export type InputBlockEditorData<T extends ConnectionPointType> = T extends ConnectionPointType.Texture ? {
39
+ /**
40
+ * The URL of the texture, or default if null.
41
+ */
42
+ url: Nullable<string>;
43
+ /**
44
+ * The anisotropic filtering level of the texture, or default if null.
45
+ */
46
+ anisotropicFilteringLevel: Nullable<number>;
47
+ /**
48
+ * Whether the Y axis should be flipped, or default if null.
49
+ */
50
+ flipY: Nullable<boolean>;
51
+ /**
52
+ * The file extension to use, or default if null.
53
+ */
54
+ forcedExtension: Nullable<string>;
55
+ } : {};
20
56
  /**
21
57
  * This represents any inputs used in the graph.
22
58
  *
@@ -24,11 +60,7 @@ export declare function isDisableableBlock(block: BaseBlock): block is Disableab
24
60
  *
25
61
  * The value is dynamically set by the user.
26
62
  */
27
- export declare class InputBlock<U extends ConnectionPointType> extends BaseBlock {
28
- /**
29
- * The class name of the block.
30
- */
31
- static ClassName: string;
63
+ export declare class InputBlock<U extends ConnectionPointType> extends InputBlockBase {
32
64
  /**
33
65
  * The output connection point of the block.
34
66
  */
@@ -37,6 +69,10 @@ export declare class InputBlock<U extends ConnectionPointType> extends BaseBlock
37
69
  * The type of the input.
38
70
  */
39
71
  readonly type: U;
72
+ /**
73
+ * Data used by the Editor to store options required for instantiating the block in the Editor.
74
+ */
75
+ editorData: Nullable<InputBlockEditorData<U>>;
40
76
  /**
41
77
  * Gets the current value of the input.
42
78
  */
@@ -1 +1 @@
1
- {"version":3,"file":"inputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAa3E;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAEtG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,gBAAgB,CAE9E;AAED;;;;;;GAMG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,mBAAmB,CAAE,SAAQ,SAAS;IACpE;;OAEG;IACH,OAAuB,SAAS,SAAgB;IAEhD;;OAEG;IACH,SAAgB,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAEtD;;OAEG;IACH,SAAgB,IAAI,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,IAAW,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,CAExC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAE5C;IAED;;;;;;;OAOG;gBAEC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;CAmB7D;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;KACvB,CAAC,IAAI,MAAM,OAAO,mBAAmB,GAAG,UAAU,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CACvF,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"inputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAatD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,UAAU,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAEtG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,IAAI,gBAAgB,CAE9E;AAED;;;GAGG;AACH,8BAAsB,cAAe,SAAQ,SAAS;IAClD;;OAEG;IACH,OAAuB,SAAS,SAAgB;IAEhD;;OAEG;IACH,kBAAyB,IAAI,EAAE,mBAAmB,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,mBAAmB,IAAI,CAAC,SAAS,mBAAmB,CAAC,OAAO,GACjG;IACI;;OAEG;IACH,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEtB;;OAEG;IACH,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5C;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzB;;OAEG;IACH,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrC,GACD,EAAE,CAAC;AAET;;;;;;GAMG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,mBAAmB,CAAE,SAAQ,cAAc;IACzE;;OAEG;IACH,SAAgB,MAAM,EAAE,0BAA0B,CAAC,CAAC,CAAC,CAAC;IAEtD;;OAEG;IACH,SAAgB,IAAI,EAAE,CAAC,CAAC;IAExB;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAQ;IAE5D;;OAEG;IACH,IAAW,YAAY,IAAI,WAAW,CAAC,CAAC,CAAC,CAExC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAE5C;IAED;;;;;;;OAOG;gBAEC,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC;CAmB7D;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;KACvB,CAAC,IAAI,MAAM,OAAO,mBAAmB,GAAG,UAAU,CAAC,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;CACvF,CAAC,MAAM,OAAO,mBAAmB,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { InputBlock } from "./inputBlock.js";
2
+ import { ConnectionPointType } from "../connection/connectionPointType.js";
3
+ import type { SmartFilter } from "../smartFilter.js";
4
+ import type { ISerializedBlockV1 } from "../serialization/v1/serialization.types.js";
5
+ import type { ThinEngine } from "@babylonjs/core/Engines/thinEngine.js";
6
+ /**
7
+ * V1 Input Block Deserializer
8
+ * @param smartFilter - The SmartFilter to deserialize the block into
9
+ * @param serializedBlock - The serialized block data
10
+ * @param engine - The ThinEngine to use for loading textures
11
+ * @returns A deserialized InputBlock
12
+ */
13
+ export declare function inputBlockDeserializer(smartFilter: SmartFilter, serializedBlock: ISerializedBlockV1, engine: ThinEngine): InputBlock<ConnectionPointType.Texture> | InputBlock<ConnectionPointType.Boolean> | InputBlock<ConnectionPointType.Float> | InputBlock<ConnectionPointType.Color3> | InputBlock<ConnectionPointType.Color4> | InputBlock<ConnectionPointType.Vector2>;
14
+ //# sourceMappingURL=inputBlock.deserializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlock.deserializer.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uCAAuC,CAAC;AAGxE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,WAAW,EAAE,WAAW,EACxB,eAAe,EAAE,kBAAkB,EACnC,MAAM,EAAE,UAAU,yPAwCrB"}
@@ -0,0 +1,46 @@
1
+ import { InputBlock } from "./inputBlock.js";
2
+ import { ConnectionPointType } from "../connection/connectionPointType.js";
3
+ import { createImageTexture } from "../utils/textureLoaders.js";
4
+ /**
5
+ * V1 Input Block Deserializer
6
+ * @param smartFilter - The SmartFilter to deserialize the block into
7
+ * @param serializedBlock - The serialized block data
8
+ * @param engine - The ThinEngine to use for loading textures
9
+ * @returns A deserialized InputBlock
10
+ */
11
+ export function inputBlockDeserializer(smartFilter, serializedBlock, engine) {
12
+ const blockData = serializedBlock.data;
13
+ switch (blockData.inputType) {
14
+ case ConnectionPointType.Boolean:
15
+ return new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Boolean, blockData.value);
16
+ case ConnectionPointType.Float:
17
+ return new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Float, blockData.value);
18
+ case ConnectionPointType.Texture: {
19
+ // If information necessary to load an image was serialized, load the image
20
+ const texture = blockData.url
21
+ ? createImageTexture(engine, blockData.url, blockData.flipY)
22
+ : null;
23
+ if (texture && blockData.anisotropicFilteringLevel !== null) {
24
+ texture.anisotropicFilteringLevel = blockData.anisotropicFilteringLevel;
25
+ }
26
+ // Create the input block
27
+ const inputBlock = new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Texture, texture);
28
+ // If editor data was serialized, set it on the deserialized block
29
+ inputBlock.editorData = {
30
+ url: blockData.url,
31
+ anisotropicFilteringLevel: blockData.anisotropicFilteringLevel,
32
+ flipY: blockData.flipY,
33
+ forcedExtension: blockData.forcedExtension,
34
+ };
35
+ return inputBlock;
36
+ }
37
+ case ConnectionPointType.Color3:
38
+ return new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Color3, blockData.value);
39
+ case ConnectionPointType.Color4:
40
+ return new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Color4, blockData.value);
41
+ case ConnectionPointType.Vector2:
42
+ return new InputBlock(smartFilter, serializedBlock.name, ConnectionPointType.Vector2, blockData.value);
43
+ }
44
+ throw new Error("Could not deserialize input block, unknown input type");
45
+ }
46
+ //# sourceMappingURL=inputBlock.deserializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlock.deserializer.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAIhE;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAClC,WAAwB,EACxB,eAAmC,EACnC,MAAkB;IAElB,MAAM,SAAS,GAAG,eAAe,CAAC,IAAgC,CAAC;IAEnE,QAAQ,SAAS,CAAC,SAAS,EAAE,CAAC;QAC1B,KAAK,mBAAmB,CAAC,OAAO;YAC5B,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC3G,KAAK,mBAAmB,CAAC,KAAK;YAC1B,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QACzG,KAAK,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/B,2EAA2E;YAC3E,MAAM,OAAO,GAA0B,SAAS,CAAC,GAAG;gBAChD,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC;gBAC5D,CAAC,CAAC,IAAI,CAAC;YACX,IAAI,OAAO,IAAI,SAAS,CAAC,yBAAyB,KAAK,IAAI,EAAE,CAAC;gBAC1D,OAAO,CAAC,yBAAyB,GAAG,SAAS,CAAC,yBAAyB,CAAC;YAC5E,CAAC;YAED,yBAAyB;YACzB,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAE3G,kEAAkE;YAClE,UAAU,CAAC,UAAU,GAAG;gBACpB,GAAG,EAAE,SAAS,CAAC,GAAG;gBAClB,yBAAyB,EAAE,SAAS,CAAC,yBAAyB;gBAC9D,KAAK,EAAE,SAAS,CAAC,KAAK;gBACtB,eAAe,EAAE,SAAS,CAAC,eAAe;aAC7C,CAAC;YAEF,OAAO,UAAU,CAAC;QACtB,CAAC;QACD,KAAK,mBAAmB,CAAC,MAAM;YAC3B,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1G,KAAK,mBAAmB,CAAC,MAAM;YAC3B,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;QAC1G,KAAK,mBAAmB,CAAC,OAAO;YAC5B,OAAO,IAAI,UAAU,CAAC,WAAW,EAAE,eAAe,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/G,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;AAC7E,CAAC"}
@@ -7,7 +7,7 @@ import { ConnectionPointType } from "../connection/connectionPointType.js";
7
7
  * @returns true if the value is a strong ref, otherwise false
8
8
  */
9
9
  function isRuntimeData(value) {
10
- return value.value !== undefined;
10
+ return value && value.value !== undefined;
11
11
  }
12
12
  /**
13
13
  * Predicate to check if a block is a texture input block.
@@ -25,6 +25,16 @@ export function isTextureInputBlock(block) {
25
25
  export function isDisableableBlock(block) {
26
26
  return block.disabled !== undefined;
27
27
  }
28
+ /**
29
+ * This base class exists to provide a type that the serializer can use to represent
30
+ * any InputBlock without knowing the exact type it is.
31
+ */
32
+ export class InputBlockBase extends BaseBlock {
33
+ }
34
+ /**
35
+ * The class name of the block.
36
+ */
37
+ InputBlockBase.ClassName = "InputBlock";
28
38
  /**
29
39
  * This represents any inputs used in the graph.
30
40
  *
@@ -32,7 +42,7 @@ export function isDisableableBlock(block) {
32
42
  *
33
43
  * The value is dynamically set by the user.
34
44
  */
35
- export class InputBlock extends BaseBlock {
45
+ export class InputBlock extends InputBlockBase {
36
46
  /**
37
47
  * Gets the current value of the input.
38
48
  */
@@ -55,6 +65,10 @@ export class InputBlock extends BaseBlock {
55
65
  */
56
66
  constructor(smartFilter, name, type, initialValue) {
57
67
  super(smartFilter, name);
68
+ /**
69
+ * Data used by the Editor to store options required for instantiating the block in the Editor.
70
+ */
71
+ this.editorData = null;
58
72
  this.type = type;
59
73
  // Creates the output connection point
60
74
  this.output = this._registerOutputWithDefault("output", type, isRuntimeData(initialValue) ? initialValue : createStrongRef(initialValue));
@@ -67,8 +81,4 @@ export class InputBlock extends BaseBlock {
67
81
  }
68
82
  }
69
83
  }
70
- /**
71
- * The class name of the block.
72
- */
73
- InputBlock.ClassName = "InputBlock";
74
84
  //# sourceMappingURL=inputBlock.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inputBlock.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAE3E;;;;GAIG;AACH,SAAS,aAAa,CAClB,KAA+C;IAE/C,OAAQ,KAA0C,CAAC,KAAK,KAAK,SAAS,CAAC;AAC3E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IAChD,OAAQ,KAAiD,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,OAAQ,KAA0B,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,UAA0C,SAAQ,SAAS;IAgBpE;;OAEG;IACH,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAqB;QACzC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,YACI,WAAwB,EACxB,IAAY,EACZ,IAAO,EACP,YAAsD;QAEtD,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,0BAA0B,CACzC,QAAQ,EACR,IAAI,EACJ,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAC7E,CAAC;QAEF,4FAA4F;QAC5F,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;;AA3DD;;GAEG;AACoB,oBAAS,GAAG,YAAY,CAAC"}
1
+ {"version":3,"file":"inputBlock.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E;;;;GAIG;AACH,SAAS,aAAa,CAClB,KAA+C;IAE/C,OAAO,KAAK,IAAK,KAA0C,CAAC,KAAK,KAAK,SAAS,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAgB;IAChD,OAAQ,KAAiD,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,CAAC;AACnG,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAC/C,OAAQ,KAA0B,CAAC,QAAQ,KAAK,SAAS,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,OAAgB,cAAe,SAAQ,SAAS;;AAClD;;GAEG;AACoB,wBAAS,GAAG,YAAY,CAAC;AAmCpD;;;;;;GAMG;AACH,MAAM,OAAO,UAA0C,SAAQ,cAAc;IAgBzE;;OAEG;IACH,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAqB;QACzC,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC;IACpC,CAAC;IAED;;;;;;;OAOG;IACH,YACI,WAAwB,EACxB,IAAY,EACZ,IAAO,EACP,YAAsD;QAEtD,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAjC7B;;WAEG;QACI,eAAU,GAAsC,IAAI,CAAC;QA+BxD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,sCAAsC;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,0BAA0B,CACzC,QAAQ,EACR,IAAI,EACJ,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAC7E,CAAC;QAEF,4FAA4F;QAC5F,IAAI,aAAa,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACrC,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;CACJ"}
@@ -0,0 +1,74 @@
1
+ import type { Nullable } from "@babylonjs/core/types.js";
2
+ import type { ConnectionPointType } from "../connection/connectionPointType.js";
3
+ import type { IColor3Like, IColor4Like, IVector2Like } from "@babylonjs/core/Maths/math.like.js";
4
+ /**
5
+ * The data for an InputBlock for ConnectionPointType.Texture inputs
6
+ */
7
+ export type TextureInputBlockData = {
8
+ /** The type of the input block */
9
+ inputType: ConnectionPointType.Texture;
10
+ /** The URL, if available, of the texture */
11
+ url: Nullable<string>;
12
+ /**
13
+ * Defines the anisotropic level to use, or default if null
14
+ */
15
+ anisotropicFilteringLevel: Nullable<number>;
16
+ /**
17
+ * Indicates if the Y axis should be flipped, or default if null
18
+ */
19
+ flipY: Nullable<boolean>;
20
+ /**
21
+ * The file extension to use, or default if null.
22
+ */
23
+ forcedExtension: Nullable<string>;
24
+ };
25
+ /**
26
+ * The data for an InputBlock for ConnectionPointType.Boolean inputs
27
+ */
28
+ export type BooleanInputBlockData = {
29
+ /** The type of the input block */
30
+ inputType: ConnectionPointType.Boolean;
31
+ /** The value of the input block */
32
+ value: boolean;
33
+ };
34
+ /**
35
+ * The data for an InputBlock for ConnectionPointType.Float inputs
36
+ */
37
+ export type FloatInputBlockData = {
38
+ /** The type of the input block */
39
+ inputType: ConnectionPointType.Float;
40
+ /** The value of the input block */
41
+ value: number;
42
+ };
43
+ /**
44
+ * The data for an InputBlock for ConnectionPointType.Color3 inputs
45
+ */
46
+ export type Color3InputBlockData = {
47
+ /** The type of the input block */
48
+ inputType: ConnectionPointType.Color3;
49
+ /** The value of the input block */
50
+ value: IColor3Like;
51
+ };
52
+ /**
53
+ * The data for an InputBlock for ConnectionPointType.Color4 inputs
54
+ */
55
+ export type Color4InputBlockData = {
56
+ /** The type of the input block */
57
+ inputType: ConnectionPointType.Color4;
58
+ /** The value of the input block */
59
+ value: IColor4Like;
60
+ };
61
+ /**
62
+ * The data for an InputBlock for ConnectionPointType.Vector2 inputs
63
+ */
64
+ export type Vector2InputBlockData = {
65
+ /** The type of the input block */
66
+ inputType: ConnectionPointType.Vector2;
67
+ /** The value of the input block */
68
+ value: IVector2Like;
69
+ };
70
+ /**
71
+ * Type union of all possible InputBlock data types
72
+ */
73
+ export type SerializedInputBlockData = TextureInputBlockData | BooleanInputBlockData | FloatInputBlockData | Color3InputBlockData | Color4InputBlockData | Vector2InputBlockData;
74
+ //# sourceMappingURL=inputBlock.serialization.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlock.serialization.types.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.serialization.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEjG;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,kCAAkC;IAClC,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAEvC,4CAA4C;IAC5C,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEtB;;OAEG;IACH,yBAAyB,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5C;;OAEG;IACH,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAEzB;;OAEG;IACH,eAAe,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,kCAAkC;IAClC,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAEvC,mCAAmC;IACnC,KAAK,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAC9B,kCAAkC;IAClC,SAAS,EAAE,mBAAmB,CAAC,KAAK,CAAC;IAErC,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,kCAAkC;IAClC,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC;IAEtC,mCAAmC;IACnC,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B,kCAAkC;IAClC,SAAS,EAAE,mBAAmB,CAAC,MAAM,CAAC;IAEtC,mCAAmC;IACnC,KAAK,EAAE,WAAW,CAAC;CACtB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAChC,kCAAkC;IAClC,SAAS,EAAE,mBAAmB,CAAC,OAAO,CAAC;IAEvC,mCAAmC;IACnC,KAAK,EAAE,YAAY,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAC9B,qBAAqB,GACrB,qBAAqB,GACrB,mBAAmB,GACnB,oBAAoB,GACpB,oBAAoB,GACpB,qBAAqB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=inputBlock.serialization.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlock.serialization.types.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.serialization.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import type { IBlockSerializerV1 } from "../serialization/v1/serialization.types";
2
+ /**
3
+ * The V1 serializer for an InputBlock
4
+ */
5
+ export declare const inputBlockSerializer: IBlockSerializerV1;
6
+ //# sourceMappingURL=inputBlock.serializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inputBlock.serializer.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.serializer.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAsGlF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAclC,CAAC"}