@babylonjs/smart-filters 1.0.13 → 8.19.0

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 (259) hide show
  1. package/dist/blockFoundation/aggregateBlock.d.ts +3 -3
  2. package/dist/blockFoundation/aggregateBlock.d.ts.map +1 -1
  3. package/dist/blockFoundation/aggregateBlock.js +1 -2
  4. package/dist/blockFoundation/aggregateBlock.js.map +1 -1
  5. package/dist/blockFoundation/baseBlock.d.ts +2 -2
  6. package/dist/blockFoundation/baseBlock.d.ts.map +1 -1
  7. package/dist/blockFoundation/baseBlock.js +5 -6
  8. package/dist/blockFoundation/baseBlock.js.map +1 -1
  9. package/dist/blockFoundation/customAggregateBlock.d.ts.map +1 -1
  10. package/dist/blockFoundation/customAggregateBlock.js +2 -2
  11. package/dist/blockFoundation/customAggregateBlock.js.map +1 -1
  12. package/dist/blockFoundation/customShaderBlock.d.ts +9 -0
  13. package/dist/blockFoundation/customShaderBlock.d.ts.map +1 -1
  14. package/dist/blockFoundation/customShaderBlock.js +47 -7
  15. package/dist/blockFoundation/customShaderBlock.js.map +1 -1
  16. package/dist/blockFoundation/disableableShaderBlock.d.ts.map +1 -1
  17. package/dist/blockFoundation/disableableShaderBlock.js +4 -4
  18. package/dist/blockFoundation/disableableShaderBlock.js.map +1 -1
  19. package/dist/blockFoundation/index.js +0 -2
  20. package/dist/blockFoundation/index.js.map +1 -1
  21. package/dist/blockFoundation/inputBlock.d.ts +8 -8
  22. package/dist/blockFoundation/inputBlock.d.ts.map +1 -1
  23. package/dist/blockFoundation/inputBlock.deserializer.d.ts +1 -1
  24. package/dist/blockFoundation/inputBlock.deserializer.d.ts.map +1 -1
  25. package/dist/blockFoundation/inputBlock.deserializer.js +1 -1
  26. package/dist/blockFoundation/inputBlock.deserializer.js.map +1 -1
  27. package/dist/blockFoundation/inputBlock.js +7 -7
  28. package/dist/blockFoundation/inputBlock.js.map +1 -1
  29. package/dist/blockFoundation/inputBlock.serialization.types.d.ts.map +1 -1
  30. package/dist/blockFoundation/inputBlock.serializer.d.ts +1 -1
  31. package/dist/blockFoundation/inputBlock.serializer.js +26 -28
  32. package/dist/blockFoundation/inputBlock.serializer.js.map +1 -1
  33. package/dist/blockFoundation/outputBlock.d.ts +4 -9
  34. package/dist/blockFoundation/outputBlock.d.ts.map +1 -1
  35. package/dist/blockFoundation/outputBlock.js +13 -14
  36. package/dist/blockFoundation/outputBlock.js.map +1 -1
  37. package/dist/blockFoundation/shaderBlock.d.ts +4 -4
  38. package/dist/blockFoundation/shaderBlock.d.ts.map +1 -1
  39. package/dist/blockFoundation/shaderBlock.js +13 -19
  40. package/dist/blockFoundation/shaderBlock.js.map +1 -1
  41. package/dist/blockFoundation/textureOptions.d.ts +1 -1
  42. package/dist/blockFoundation/textureOptions.js +1 -1
  43. package/dist/command/command.d.ts +1 -1
  44. package/dist/command/command.js +1 -1
  45. package/dist/command/commandBuffer.d.ts +1 -1
  46. package/dist/command/commandBuffer.d.ts.map +1 -1
  47. package/dist/command/commandBuffer.js +2 -2
  48. package/dist/command/commandBufferDebugger.d.ts +2 -2
  49. package/dist/command/commandBufferDebugger.d.ts.map +1 -1
  50. package/dist/command/commandBufferDebugger.js +1 -1
  51. package/dist/command/commandBufferDebugger.js.map +1 -1
  52. package/dist/command/index.d.ts +3 -1
  53. package/dist/command/index.d.ts.map +1 -1
  54. package/dist/command/index.js +5 -1
  55. package/dist/command/index.js.map +1 -1
  56. package/dist/connection/connectionPoint.d.ts +3 -3
  57. package/dist/connection/connectionPoint.d.ts.map +1 -1
  58. package/dist/connection/connectionPoint.js +2 -2
  59. package/dist/connection/connectionPoint.js.map +1 -1
  60. package/dist/connection/connectionPointCompatibilityState.d.ts +1 -1
  61. package/dist/connection/connectionPointCompatibilityState.js +1 -1
  62. package/dist/connection/connectionPointType.d.ts +3 -3
  63. package/dist/connection/connectionPointType.d.ts.map +1 -1
  64. package/dist/connection/connectionPointWithDefault.d.ts +3 -3
  65. package/dist/connection/connectionPointWithDefault.d.ts.map +1 -1
  66. package/dist/connection/connectionPointWithDefault.js.map +1 -1
  67. package/dist/connection/index.d.ts +2 -1
  68. package/dist/connection/index.d.ts.map +1 -1
  69. package/dist/connection/index.js +3 -3
  70. package/dist/connection/index.js.map +1 -1
  71. package/dist/editorUtils/editableInPropertyPage.d.ts +2 -2
  72. package/dist/editorUtils/editableInPropertyPage.d.ts.map +1 -1
  73. package/dist/editorUtils/editableInPropertyPage.js +2 -2
  74. package/dist/editorUtils/editableInPropertyPage.js.map +1 -1
  75. package/dist/editorUtils/index.d.ts +1 -0
  76. package/dist/editorUtils/index.d.ts.map +1 -1
  77. package/dist/editorUtils/index.js +2 -0
  78. package/dist/editorUtils/index.js.map +1 -1
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -1
  81. package/dist/index.js.map +1 -1
  82. package/dist/optimization/dependencyGraph.js.map +1 -1
  83. package/dist/optimization/optimizedShaderBlock.d.ts +4 -4
  84. package/dist/optimization/optimizedShaderBlock.d.ts.map +1 -1
  85. package/dist/optimization/optimizedShaderBlock.js.map +1 -1
  86. package/dist/optimization/smartFilterOptimizer.d.ts +2 -2
  87. package/dist/optimization/smartFilterOptimizer.d.ts.map +1 -1
  88. package/dist/optimization/smartFilterOptimizer.js +34 -57
  89. package/dist/optimization/smartFilterOptimizer.js.map +1 -1
  90. package/dist/runtime/index.d.ts +2 -1
  91. package/dist/runtime/index.d.ts.map +1 -1
  92. package/dist/runtime/index.js +3 -3
  93. package/dist/runtime/index.js.map +1 -1
  94. package/dist/runtime/renderTargetGenerator.d.ts +1 -1
  95. package/dist/runtime/renderTargetGenerator.d.ts.map +1 -1
  96. package/dist/runtime/renderTargetGenerator.js +5 -7
  97. package/dist/runtime/renderTargetGenerator.js.map +1 -1
  98. package/dist/runtime/shaderRuntime.d.ts +7 -7
  99. package/dist/runtime/shaderRuntime.d.ts.map +1 -1
  100. package/dist/runtime/shaderRuntime.js +7 -8
  101. package/dist/runtime/shaderRuntime.js.map +1 -1
  102. package/dist/runtime/smartFilterRuntime.d.ts +3 -3
  103. package/dist/runtime/smartFilterRuntime.d.ts.map +1 -1
  104. package/dist/runtime/smartFilterRuntime.js.map +1 -1
  105. package/dist/runtime/strongRef.d.ts +1 -1
  106. package/dist/runtime/strongRef.js +1 -1
  107. package/dist/serialization/importCustomBlockDefinition.d.ts +1 -1
  108. package/dist/serialization/importCustomBlockDefinition.js +8 -9
  109. package/dist/serialization/importCustomBlockDefinition.js.map +1 -1
  110. package/dist/serialization/index.d.ts +1 -0
  111. package/dist/serialization/index.d.ts.map +1 -1
  112. package/dist/serialization/index.js +3 -0
  113. package/dist/serialization/index.js.map +1 -1
  114. package/dist/serialization/serializedBlockDefinition.d.ts +2 -2
  115. package/dist/serialization/serializedBlockDefinition.d.ts.map +1 -1
  116. package/dist/serialization/serializedShaderBlockDefinition.d.ts +1 -1
  117. package/dist/serialization/serializedShaderBlockDefinition.d.ts.map +1 -1
  118. package/dist/serialization/serializedSmartFilter.d.ts +1 -1
  119. package/dist/serialization/serializedSmartFilter.d.ts.map +1 -1
  120. package/dist/serialization/smartFilterDeserializer.d.ts +6 -6
  121. package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -1
  122. package/dist/serialization/smartFilterDeserializer.js +9 -12
  123. package/dist/serialization/smartFilterDeserializer.js.map +1 -1
  124. package/dist/serialization/smartFilterSerializer.d.ts +2 -2
  125. package/dist/serialization/smartFilterSerializer.d.ts.map +1 -1
  126. package/dist/serialization/smartFilterSerializer.js +10 -13
  127. package/dist/serialization/smartFilterSerializer.js.map +1 -1
  128. package/dist/serialization/v1/defaultBlockSerializer.d.ts +2 -2
  129. package/dist/serialization/v1/defaultBlockSerializer.d.ts.map +1 -1
  130. package/dist/serialization/v1/defaultBlockSerializer.js +1 -1
  131. package/dist/serialization/v1/index.d.ts +1 -0
  132. package/dist/serialization/v1/index.d.ts.map +1 -1
  133. package/dist/serialization/v1/index.js +2 -0
  134. package/dist/serialization/v1/index.js.map +1 -1
  135. package/dist/serialization/v1/shaderBlockSerialization.types.d.ts +3 -3
  136. package/dist/serialization/v1/shaderBlockSerialization.types.d.ts.map +1 -1
  137. package/dist/serialization/v1/smartFilterSerialization.types.d.ts +2 -2
  138. package/dist/serialization/v1/smartFilterSerialization.types.d.ts.map +1 -1
  139. package/dist/smartFilter.d.ts +8 -8
  140. package/dist/smartFilter.d.ts.map +1 -1
  141. package/dist/smartFilter.js +6 -7
  142. package/dist/smartFilter.js.map +1 -1
  143. package/dist/utils/buildTools/buildShaders.d.ts +3 -2
  144. package/dist/utils/buildTools/buildShaders.d.ts.map +1 -1
  145. package/dist/utils/buildTools/buildShaders.js +7 -6
  146. package/dist/utils/buildTools/buildShaders.js.map +1 -1
  147. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts +4 -2
  148. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts.map +1 -1
  149. package/dist/utils/buildTools/convertGlslIntoBlock.js +136 -141
  150. package/dist/utils/buildTools/convertGlslIntoBlock.js.map +1 -1
  151. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts +4 -4
  152. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts.map +1 -1
  153. package/dist/utils/buildTools/convertGlslIntoShaderProgram.js +55 -48
  154. package/dist/utils/buildTools/convertGlslIntoShaderProgram.js.map +1 -1
  155. package/dist/utils/buildTools/convertShaders.d.ts +8 -5
  156. package/dist/utils/buildTools/convertShaders.d.ts.map +1 -1
  157. package/dist/utils/buildTools/convertShaders.js +38 -14
  158. package/dist/utils/buildTools/convertShaders.js.map +1 -1
  159. package/dist/utils/buildTools/shaderConverter.d.ts +4 -4
  160. package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
  161. package/dist/utils/buildTools/shaderConverter.js +17 -21
  162. package/dist/utils/buildTools/shaderConverter.js.map +1 -1
  163. package/dist/utils/buildTools/watchShaders.d.ts +3 -2
  164. package/dist/utils/buildTools/watchShaders.d.ts.map +1 -1
  165. package/dist/utils/buildTools/watchShaders.js +10 -8
  166. package/dist/utils/buildTools/watchShaders.js.map +1 -1
  167. package/dist/utils/index.d.ts +1 -0
  168. package/dist/utils/index.d.ts.map +1 -1
  169. package/dist/utils/index.js +2 -1
  170. package/dist/utils/index.js.map +1 -1
  171. package/dist/utils/renderTargetUtils.d.ts +3 -3
  172. package/dist/utils/renderTargetUtils.d.ts.map +1 -1
  173. package/dist/utils/renderTargetUtils.js +4 -4
  174. package/dist/utils/renderTargetUtils.js.map +1 -1
  175. package/dist/utils/shaderCodeUtils.d.ts +8 -8
  176. package/dist/utils/shaderCodeUtils.d.ts.map +1 -1
  177. package/dist/utils/shaderCodeUtils.js +16 -28
  178. package/dist/utils/shaderCodeUtils.js.map +1 -1
  179. package/dist/utils/textureLoaders.d.ts +2 -2
  180. package/dist/utils/textureLoaders.d.ts.map +1 -1
  181. package/dist/utils/textureLoaders.js +2 -3
  182. package/dist/utils/textureLoaders.js.map +1 -1
  183. package/dist/utils/textureUtils.d.ts +5 -5
  184. package/dist/utils/textureUtils.d.ts.map +1 -1
  185. package/dist/utils/textureUtils.js +1 -1
  186. package/dist/utils/textureUtils.js.map +1 -1
  187. package/dist/version.d.ts +2 -2
  188. package/dist/version.js +2 -2
  189. package/license.md +21 -21
  190. package/package.json +13 -8
  191. package/src/blockFoundation/aggregateBlock.ts +148 -151
  192. package/src/blockFoundation/baseBlock.ts +339 -364
  193. package/src/blockFoundation/customAggregateBlock.ts +88 -104
  194. package/src/blockFoundation/customShaderBlock.ts +362 -326
  195. package/src/blockFoundation/disableableShaderBlock.ts +91 -100
  196. package/src/blockFoundation/index.ts +9 -9
  197. package/src/blockFoundation/inputBlock.deserializer.ts +72 -97
  198. package/src/blockFoundation/inputBlock.serialization.types.ts +126 -132
  199. package/src/blockFoundation/inputBlock.serializer.ts +150 -150
  200. package/src/blockFoundation/inputBlock.ts +181 -192
  201. package/src/blockFoundation/outputBlock.ts +144 -151
  202. package/src/blockFoundation/shaderBlock.ts +156 -163
  203. package/src/blockFoundation/textureOptions.ts +57 -57
  204. package/src/command/command.ts +59 -59
  205. package/src/command/commandBuffer.ts +71 -71
  206. package/src/command/commandBufferDebugger.ts +14 -14
  207. package/src/command/index.ts +7 -3
  208. package/src/connection/connectionPoint.ts +205 -214
  209. package/src/connection/connectionPointCompatibilityState.ts +31 -31
  210. package/src/connection/connectionPointType.ts +45 -45
  211. package/src/connection/connectionPointWithDefault.ts +27 -35
  212. package/src/connection/index.ts +8 -9
  213. package/src/editorUtils/editableInPropertyPage.ts +106 -106
  214. package/src/editorUtils/index.ts +3 -1
  215. package/src/index.ts +16 -15
  216. package/src/optimization/dependencyGraph.ts +96 -96
  217. package/src/optimization/index.ts +1 -1
  218. package/src/optimization/optimizedShaderBlock.ts +131 -134
  219. package/src/optimization/smartFilterOptimizer.ts +757 -825
  220. package/src/runtime/index.ts +8 -6
  221. package/src/runtime/renderTargetGenerator.ts +222 -248
  222. package/src/runtime/shaderRuntime.ts +174 -173
  223. package/src/runtime/smartFilterRuntime.ts +112 -112
  224. package/src/runtime/strongRef.ts +18 -18
  225. package/src/serialization/importCustomBlockDefinition.ts +86 -86
  226. package/src/serialization/index.ts +10 -7
  227. package/src/serialization/serializedBlockDefinition.ts +12 -12
  228. package/src/serialization/serializedShaderBlockDefinition.ts +7 -7
  229. package/src/serialization/serializedSmartFilter.ts +6 -6
  230. package/src/serialization/smartFilterDeserializer.ts +190 -220
  231. package/src/serialization/smartFilterSerializer.ts +110 -121
  232. package/src/serialization/v1/defaultBlockSerializer.ts +21 -21
  233. package/src/serialization/v1/index.ts +4 -2
  234. package/src/serialization/v1/shaderBlockSerialization.types.ts +85 -85
  235. package/src/serialization/v1/smartFilterSerialization.types.ts +129 -133
  236. package/src/smartFilter.ts +255 -260
  237. package/src/utils/buildTools/buildShaders.ts +14 -13
  238. package/src/utils/buildTools/convertGlslIntoBlock.ts +370 -385
  239. package/src/utils/buildTools/convertGlslIntoShaderProgram.ts +173 -172
  240. package/src/utils/buildTools/convertShaders.ts +65 -43
  241. package/src/utils/buildTools/recordVersionNumber.js +24 -0
  242. package/src/utils/buildTools/shaderConverter.ts +466 -478
  243. package/src/utils/buildTools/watchShaders.ts +44 -42
  244. package/src/utils/index.ts +4 -2
  245. package/src/utils/renderTargetUtils.ts +30 -35
  246. package/src/utils/shaderCodeUtils.ts +192 -207
  247. package/src/utils/textureLoaders.ts +31 -43
  248. package/src/utils/textureUtils.ts +28 -32
  249. package/src/version.ts +2 -2
  250. package/dist/utils/buildTools/determineVersion.d.ts +0 -36
  251. package/dist/utils/buildTools/determineVersion.d.ts.map +0 -1
  252. package/dist/utils/buildTools/determineVersion.js +0 -109
  253. package/dist/utils/buildTools/determineVersion.js.map +0 -1
  254. package/dist/utils/buildTools/versionUp.d.ts +0 -2
  255. package/dist/utils/buildTools/versionUp.d.ts.map +0 -1
  256. package/dist/utils/buildTools/versionUp.js +0 -53
  257. package/dist/utils/buildTools/versionUp.js.map +0 -1
  258. package/src/utils/buildTools/determineVersion.ts +0 -128
  259. package/src/utils/buildTools/versionUp.ts +0 -61
@@ -1,133 +1,129 @@
1
- import type { Nullable } from "@babylonjs/core/types.js";
2
- import type { BaseBlock } from "../../blockFoundation/baseBlock.js";
3
- import type { SmartFilter } from "../../smartFilter.js";
4
- import type { ThinEngine } from "@babylonjs/core/Engines/thinEngine";
5
- import type { IEditorData } from "@babylonjs/shared-ui-components/nodeGraphSystem/interfaces/nodeLocationInfo.js";
6
- import type { SmartFilterDeserializer } from "../smartFilterDeserializer.js";
7
- import type { OutputTextureOptions } from "../../blockFoundation/textureOptions.js";
8
-
9
- /**
10
- * ----------------------------------------------------------------------------
11
- * Serialized Data Types
12
- * ----------------------------------------------------------------------------
13
- */
14
-
15
- /**
16
- * V1 Serialized Smart Filter
17
- */
18
- export type SerializedSmartFilterV1 = {
19
- /** Which type of serialized data this is. */
20
- format: "smartFilter";
21
-
22
- /** The format version of the serialized data (not the version of the SmartFilter itself).*/
23
- formatVersion: 1;
24
-
25
- /** The SmartFilter name */
26
- name: string;
27
-
28
- /** The namespace of the SmartFilter */
29
- namespace: Nullable<string>;
30
-
31
- /** The SmartFilter comments */
32
- comments: Nullable<string>;
33
-
34
- /** The editor data for the SmartFilter */
35
- editorData: Nullable<IEditorData>;
36
-
37
- /** The serialized blocks */
38
- blocks: ISerializedBlockV1[];
39
-
40
- /** The serialized connections */
41
- connections: ISerializedConnectionV1[];
42
- };
43
-
44
- /**
45
- * V1 format of a block in a serialized Smart Filter.
46
- * Not to be confused with a SerializedBlockDefinitionV1 which serializes the definition of a CustomShaderBlock.
47
- */
48
- export interface ISerializedBlockV1 {
49
- /** The name of the block */
50
- name: string;
51
-
52
- /** The namespace of the block */
53
- namespace: Nullable<string>;
54
-
55
- /** The unique ID of the block - correlates with the ID in the editorData for block position, etc. */
56
- uniqueId: number;
57
-
58
- /** The blockType of the block - used to determine how to instantiate the block during deserialization */
59
- blockType: string;
60
-
61
- /** The comments for the block */
62
- comments: Nullable<string>;
63
-
64
- /** The OutputTextureOptions for serialized ShaderBlocks */
65
- outputTextureOptions?: OutputTextureOptions;
66
-
67
- /** Block specific serialized data */
68
- data: any;
69
- }
70
-
71
- /**
72
- * V1 Serialized Connection
73
- */
74
- export interface ISerializedConnectionV1 {
75
- /** The uniqueId of the block that the connection is to */
76
- outputBlock: number;
77
-
78
- /** The name of the connectionPoint on the outputBlock */
79
- outputConnectionPoint: string;
80
-
81
- /** The uniqueId of the block that the connection is from */
82
- inputBlock: number;
83
-
84
- /** The name of the connectionPoint on the inputBlock */
85
- inputConnectionPoint: string;
86
- }
87
-
88
- /**
89
- * ----------------------------------------------------------------------------
90
- * Serializer Types
91
- * ----------------------------------------------------------------------------
92
- */
93
-
94
- /**
95
- * A function that serializes a block to a V1 serialized block object
96
- */
97
- export type SerializeBlockV1 = (block: BaseBlock) => ISerializedBlockV1;
98
-
99
- /**
100
- * A V1 serializer for blocks in a SmartFilter
101
- */
102
- export interface IBlockSerializerV1 {
103
- /** The blockType of the block that this serializer can serialize */
104
- blockType: string;
105
-
106
- /** The function that serializes the block in the Smart Filter */
107
- serialize: SerializeBlockV1;
108
- }
109
-
110
- /**
111
- * ----------------------------------------------------------------------------
112
- * Deserializer Types
113
- * ----------------------------------------------------------------------------
114
- */
115
-
116
- /**
117
- * A function that deserializes a V1 block in a SmartFilter
118
- */
119
- export type DeserializeBlockV1 = (
120
- smartFilter: SmartFilter,
121
- serializedBlock: ISerializedBlockV1,
122
- engine: ThinEngine,
123
- smartFilterDeserializer: SmartFilterDeserializer
124
- ) => Promise<BaseBlock>;
125
-
126
- /**
127
- * A function that optionally deserializes a block from a V1 serialized block object, returning null if it cannot
128
- */
129
- export type OptionalBlockDeserializerV1 = (
130
- smartFilter: SmartFilter,
131
- serializedBlock: ISerializedBlockV1,
132
- engine: ThinEngine
133
- ) => Promise<Nullable<BaseBlock>>;
1
+ import type { Nullable } from "core/types.js";
2
+ import type { BaseBlock } from "../../blockFoundation/baseBlock.js";
3
+ import type { SmartFilter } from "../../smartFilter.js";
4
+ import type { ThinEngine } from "core/Engines/thinEngine.js";
5
+ import type { IEditorData } from "shared-ui-components/nodeGraphSystem/interfaces/nodeLocationInfo.js";
6
+ import type { SmartFilterDeserializer } from "../smartFilterDeserializer.js";
7
+ import type { OutputTextureOptions } from "../../blockFoundation/textureOptions.js";
8
+
9
+ /**
10
+ * ----------------------------------------------------------------------------
11
+ * Serialized Data Types
12
+ * ----------------------------------------------------------------------------
13
+ */
14
+
15
+ /**
16
+ * V1 Serialized Smart Filter
17
+ */
18
+ export type SerializedSmartFilterV1 = {
19
+ /** Which type of serialized data this is. */
20
+ format: "smartFilter";
21
+
22
+ /** The format version of the serialized data (not the version of the SmartFilter itself).*/
23
+ formatVersion: 1;
24
+
25
+ /** The SmartFilter name */
26
+ name: string;
27
+
28
+ /** The namespace of the SmartFilter */
29
+ namespace: Nullable<string>;
30
+
31
+ /** The SmartFilter comments */
32
+ comments: Nullable<string>;
33
+
34
+ /** The editor data for the SmartFilter */
35
+ editorData: Nullable<IEditorData>;
36
+
37
+ /** The serialized blocks */
38
+ blocks: ISerializedBlockV1[];
39
+
40
+ /** The serialized connections */
41
+ connections: ISerializedConnectionV1[];
42
+ };
43
+
44
+ /**
45
+ * V1 format of a block in a serialized Smart Filter.
46
+ * Not to be confused with a SerializedBlockDefinitionV1 which serializes the definition of a CustomShaderBlock.
47
+ */
48
+ export interface ISerializedBlockV1 {
49
+ /** The name of the block */
50
+ name: string;
51
+
52
+ /** The namespace of the block */
53
+ namespace: Nullable<string>;
54
+
55
+ /** The unique ID of the block - correlates with the ID in the editorData for block position, etc. */
56
+ uniqueId: number;
57
+
58
+ /** The blockType of the block - used to determine how to instantiate the block during deserialization */
59
+ blockType: string;
60
+
61
+ /** The comments for the block */
62
+ comments: Nullable<string>;
63
+
64
+ /** The OutputTextureOptions for serialized ShaderBlocks */
65
+ outputTextureOptions?: OutputTextureOptions;
66
+
67
+ /** Block specific serialized data */
68
+ data: any;
69
+ }
70
+
71
+ /**
72
+ * V1 Serialized Connection
73
+ */
74
+ export interface ISerializedConnectionV1 {
75
+ /** The uniqueId of the block that the connection is to */
76
+ outputBlock: number;
77
+
78
+ /** The name of the connectionPoint on the outputBlock */
79
+ outputConnectionPoint: string;
80
+
81
+ /** The uniqueId of the block that the connection is from */
82
+ inputBlock: number;
83
+
84
+ /** The name of the connectionPoint on the inputBlock */
85
+ inputConnectionPoint: string;
86
+ }
87
+
88
+ /**
89
+ * ----------------------------------------------------------------------------
90
+ * Serializer Types
91
+ * ----------------------------------------------------------------------------
92
+ */
93
+
94
+ /**
95
+ * A function that serializes a block to a V1 serialized block object
96
+ */
97
+ export type SerializeBlockV1 = (block: BaseBlock) => ISerializedBlockV1;
98
+
99
+ /**
100
+ * A V1 serializer for blocks in a SmartFilter
101
+ */
102
+ export interface IBlockSerializerV1 {
103
+ /** The blockType of the block that this serializer can serialize */
104
+ blockType: string;
105
+
106
+ /** The function that serializes the block in the Smart Filter */
107
+ serialize: SerializeBlockV1;
108
+ }
109
+
110
+ /**
111
+ * ----------------------------------------------------------------------------
112
+ * Deserializer Types
113
+ * ----------------------------------------------------------------------------
114
+ */
115
+
116
+ /**
117
+ * A function that deserializes a V1 block in a SmartFilter
118
+ */
119
+ export type DeserializeBlockV1 = (
120
+ smartFilter: SmartFilter,
121
+ serializedBlock: ISerializedBlockV1,
122
+ engine: ThinEngine,
123
+ smartFilterDeserializer: SmartFilterDeserializer
124
+ ) => Promise<BaseBlock>;
125
+
126
+ /**
127
+ * A function that optionally deserializes a block from a V1 serialized block object, returning null if it cannot
128
+ */
129
+ export type OptionalBlockDeserializerV1 = (smartFilter: SmartFilter, serializedBlock: ISerializedBlockV1, engine: ThinEngine) => Promise<Nullable<BaseBlock>>;