@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.
- package/dist/blockFoundation/aggregateBlock.d.ts +3 -3
- package/dist/blockFoundation/aggregateBlock.d.ts.map +1 -1
- package/dist/blockFoundation/aggregateBlock.js +1 -2
- package/dist/blockFoundation/aggregateBlock.js.map +1 -1
- package/dist/blockFoundation/baseBlock.d.ts +2 -2
- package/dist/blockFoundation/baseBlock.d.ts.map +1 -1
- package/dist/blockFoundation/baseBlock.js +5 -6
- package/dist/blockFoundation/baseBlock.js.map +1 -1
- package/dist/blockFoundation/customAggregateBlock.d.ts.map +1 -1
- package/dist/blockFoundation/customAggregateBlock.js +2 -2
- package/dist/blockFoundation/customAggregateBlock.js.map +1 -1
- package/dist/blockFoundation/customShaderBlock.d.ts +9 -0
- package/dist/blockFoundation/customShaderBlock.d.ts.map +1 -1
- package/dist/blockFoundation/customShaderBlock.js +47 -7
- package/dist/blockFoundation/customShaderBlock.js.map +1 -1
- package/dist/blockFoundation/disableableShaderBlock.d.ts.map +1 -1
- package/dist/blockFoundation/disableableShaderBlock.js +4 -4
- package/dist/blockFoundation/disableableShaderBlock.js.map +1 -1
- package/dist/blockFoundation/index.js +0 -2
- package/dist/blockFoundation/index.js.map +1 -1
- package/dist/blockFoundation/inputBlock.d.ts +8 -8
- package/dist/blockFoundation/inputBlock.d.ts.map +1 -1
- package/dist/blockFoundation/inputBlock.deserializer.d.ts +1 -1
- package/dist/blockFoundation/inputBlock.deserializer.d.ts.map +1 -1
- package/dist/blockFoundation/inputBlock.deserializer.js +1 -1
- package/dist/blockFoundation/inputBlock.deserializer.js.map +1 -1
- package/dist/blockFoundation/inputBlock.js +7 -7
- package/dist/blockFoundation/inputBlock.js.map +1 -1
- package/dist/blockFoundation/inputBlock.serialization.types.d.ts.map +1 -1
- package/dist/blockFoundation/inputBlock.serializer.d.ts +1 -1
- package/dist/blockFoundation/inputBlock.serializer.js +26 -28
- package/dist/blockFoundation/inputBlock.serializer.js.map +1 -1
- package/dist/blockFoundation/outputBlock.d.ts +4 -9
- package/dist/blockFoundation/outputBlock.d.ts.map +1 -1
- package/dist/blockFoundation/outputBlock.js +13 -14
- package/dist/blockFoundation/outputBlock.js.map +1 -1
- package/dist/blockFoundation/shaderBlock.d.ts +4 -4
- package/dist/blockFoundation/shaderBlock.d.ts.map +1 -1
- package/dist/blockFoundation/shaderBlock.js +13 -19
- package/dist/blockFoundation/shaderBlock.js.map +1 -1
- package/dist/blockFoundation/textureOptions.d.ts +1 -1
- package/dist/blockFoundation/textureOptions.js +1 -1
- package/dist/command/command.d.ts +1 -1
- package/dist/command/command.js +1 -1
- package/dist/command/commandBuffer.d.ts +1 -1
- package/dist/command/commandBuffer.d.ts.map +1 -1
- package/dist/command/commandBuffer.js +2 -2
- package/dist/command/commandBufferDebugger.d.ts +2 -2
- package/dist/command/commandBufferDebugger.d.ts.map +1 -1
- package/dist/command/commandBufferDebugger.js +1 -1
- package/dist/command/commandBufferDebugger.js.map +1 -1
- package/dist/command/index.d.ts +3 -1
- package/dist/command/index.d.ts.map +1 -1
- package/dist/command/index.js +5 -1
- package/dist/command/index.js.map +1 -1
- package/dist/connection/connectionPoint.d.ts +3 -3
- package/dist/connection/connectionPoint.d.ts.map +1 -1
- package/dist/connection/connectionPoint.js +2 -2
- package/dist/connection/connectionPoint.js.map +1 -1
- package/dist/connection/connectionPointCompatibilityState.d.ts +1 -1
- package/dist/connection/connectionPointCompatibilityState.js +1 -1
- package/dist/connection/connectionPointType.d.ts +3 -3
- package/dist/connection/connectionPointType.d.ts.map +1 -1
- package/dist/connection/connectionPointWithDefault.d.ts +3 -3
- package/dist/connection/connectionPointWithDefault.d.ts.map +1 -1
- package/dist/connection/connectionPointWithDefault.js.map +1 -1
- package/dist/connection/index.d.ts +2 -1
- package/dist/connection/index.d.ts.map +1 -1
- package/dist/connection/index.js +3 -3
- package/dist/connection/index.js.map +1 -1
- package/dist/editorUtils/editableInPropertyPage.d.ts +2 -2
- package/dist/editorUtils/editableInPropertyPage.d.ts.map +1 -1
- package/dist/editorUtils/editableInPropertyPage.js +2 -2
- package/dist/editorUtils/editableInPropertyPage.js.map +1 -1
- package/dist/editorUtils/index.d.ts +1 -0
- package/dist/editorUtils/index.d.ts.map +1 -1
- package/dist/editorUtils/index.js +2 -0
- package/dist/editorUtils/index.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/optimization/dependencyGraph.js.map +1 -1
- package/dist/optimization/optimizedShaderBlock.d.ts +4 -4
- package/dist/optimization/optimizedShaderBlock.d.ts.map +1 -1
- package/dist/optimization/optimizedShaderBlock.js.map +1 -1
- package/dist/optimization/smartFilterOptimizer.d.ts +2 -2
- package/dist/optimization/smartFilterOptimizer.d.ts.map +1 -1
- package/dist/optimization/smartFilterOptimizer.js +34 -57
- package/dist/optimization/smartFilterOptimizer.js.map +1 -1
- package/dist/runtime/index.d.ts +2 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -3
- package/dist/runtime/index.js.map +1 -1
- package/dist/runtime/renderTargetGenerator.d.ts +1 -1
- package/dist/runtime/renderTargetGenerator.d.ts.map +1 -1
- package/dist/runtime/renderTargetGenerator.js +5 -7
- package/dist/runtime/renderTargetGenerator.js.map +1 -1
- package/dist/runtime/shaderRuntime.d.ts +7 -7
- package/dist/runtime/shaderRuntime.d.ts.map +1 -1
- package/dist/runtime/shaderRuntime.js +7 -8
- package/dist/runtime/shaderRuntime.js.map +1 -1
- package/dist/runtime/smartFilterRuntime.d.ts +3 -3
- package/dist/runtime/smartFilterRuntime.d.ts.map +1 -1
- package/dist/runtime/smartFilterRuntime.js.map +1 -1
- package/dist/runtime/strongRef.d.ts +1 -1
- package/dist/runtime/strongRef.js +1 -1
- package/dist/serialization/importCustomBlockDefinition.d.ts +1 -1
- package/dist/serialization/importCustomBlockDefinition.js +8 -9
- package/dist/serialization/importCustomBlockDefinition.js.map +1 -1
- package/dist/serialization/index.d.ts +1 -0
- package/dist/serialization/index.d.ts.map +1 -1
- package/dist/serialization/index.js +3 -0
- package/dist/serialization/index.js.map +1 -1
- package/dist/serialization/serializedBlockDefinition.d.ts +2 -2
- package/dist/serialization/serializedBlockDefinition.d.ts.map +1 -1
- package/dist/serialization/serializedShaderBlockDefinition.d.ts +1 -1
- package/dist/serialization/serializedShaderBlockDefinition.d.ts.map +1 -1
- package/dist/serialization/serializedSmartFilter.d.ts +1 -1
- package/dist/serialization/serializedSmartFilter.d.ts.map +1 -1
- package/dist/serialization/smartFilterDeserializer.d.ts +6 -6
- package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -1
- package/dist/serialization/smartFilterDeserializer.js +9 -12
- package/dist/serialization/smartFilterDeserializer.js.map +1 -1
- package/dist/serialization/smartFilterSerializer.d.ts +2 -2
- package/dist/serialization/smartFilterSerializer.d.ts.map +1 -1
- package/dist/serialization/smartFilterSerializer.js +10 -13
- package/dist/serialization/smartFilterSerializer.js.map +1 -1
- package/dist/serialization/v1/defaultBlockSerializer.d.ts +2 -2
- package/dist/serialization/v1/defaultBlockSerializer.d.ts.map +1 -1
- package/dist/serialization/v1/defaultBlockSerializer.js +1 -1
- package/dist/serialization/v1/index.d.ts +1 -0
- package/dist/serialization/v1/index.d.ts.map +1 -1
- package/dist/serialization/v1/index.js +2 -0
- package/dist/serialization/v1/index.js.map +1 -1
- package/dist/serialization/v1/shaderBlockSerialization.types.d.ts +3 -3
- package/dist/serialization/v1/shaderBlockSerialization.types.d.ts.map +1 -1
- package/dist/serialization/v1/smartFilterSerialization.types.d.ts +2 -2
- package/dist/serialization/v1/smartFilterSerialization.types.d.ts.map +1 -1
- package/dist/smartFilter.d.ts +8 -8
- package/dist/smartFilter.d.ts.map +1 -1
- package/dist/smartFilter.js +6 -7
- package/dist/smartFilter.js.map +1 -1
- package/dist/utils/buildTools/buildShaders.d.ts +3 -2
- package/dist/utils/buildTools/buildShaders.d.ts.map +1 -1
- package/dist/utils/buildTools/buildShaders.js +7 -6
- package/dist/utils/buildTools/buildShaders.js.map +1 -1
- package/dist/utils/buildTools/convertGlslIntoBlock.d.ts +4 -2
- package/dist/utils/buildTools/convertGlslIntoBlock.d.ts.map +1 -1
- package/dist/utils/buildTools/convertGlslIntoBlock.js +136 -141
- package/dist/utils/buildTools/convertGlslIntoBlock.js.map +1 -1
- package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts +4 -4
- package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts.map +1 -1
- package/dist/utils/buildTools/convertGlslIntoShaderProgram.js +55 -48
- package/dist/utils/buildTools/convertGlslIntoShaderProgram.js.map +1 -1
- package/dist/utils/buildTools/convertShaders.d.ts +8 -5
- package/dist/utils/buildTools/convertShaders.d.ts.map +1 -1
- package/dist/utils/buildTools/convertShaders.js +38 -14
- package/dist/utils/buildTools/convertShaders.js.map +1 -1
- package/dist/utils/buildTools/shaderConverter.d.ts +4 -4
- package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
- package/dist/utils/buildTools/shaderConverter.js +17 -21
- package/dist/utils/buildTools/shaderConverter.js.map +1 -1
- package/dist/utils/buildTools/watchShaders.d.ts +3 -2
- package/dist/utils/buildTools/watchShaders.d.ts.map +1 -1
- package/dist/utils/buildTools/watchShaders.js +10 -8
- package/dist/utils/buildTools/watchShaders.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/renderTargetUtils.d.ts +3 -3
- package/dist/utils/renderTargetUtils.d.ts.map +1 -1
- package/dist/utils/renderTargetUtils.js +4 -4
- package/dist/utils/renderTargetUtils.js.map +1 -1
- package/dist/utils/shaderCodeUtils.d.ts +8 -8
- package/dist/utils/shaderCodeUtils.d.ts.map +1 -1
- package/dist/utils/shaderCodeUtils.js +16 -28
- package/dist/utils/shaderCodeUtils.js.map +1 -1
- package/dist/utils/textureLoaders.d.ts +2 -2
- package/dist/utils/textureLoaders.d.ts.map +1 -1
- package/dist/utils/textureLoaders.js +2 -3
- package/dist/utils/textureLoaders.js.map +1 -1
- package/dist/utils/textureUtils.d.ts +5 -5
- package/dist/utils/textureUtils.d.ts.map +1 -1
- package/dist/utils/textureUtils.js +1 -1
- package/dist/utils/textureUtils.js.map +1 -1
- package/dist/version.d.ts +2 -2
- package/dist/version.js +2 -2
- package/license.md +21 -21
- package/package.json +13 -8
- package/src/blockFoundation/aggregateBlock.ts +148 -151
- package/src/blockFoundation/baseBlock.ts +339 -364
- package/src/blockFoundation/customAggregateBlock.ts +88 -104
- package/src/blockFoundation/customShaderBlock.ts +362 -326
- package/src/blockFoundation/disableableShaderBlock.ts +91 -100
- package/src/blockFoundation/index.ts +9 -9
- package/src/blockFoundation/inputBlock.deserializer.ts +72 -97
- package/src/blockFoundation/inputBlock.serialization.types.ts +126 -132
- package/src/blockFoundation/inputBlock.serializer.ts +150 -150
- package/src/blockFoundation/inputBlock.ts +181 -192
- package/src/blockFoundation/outputBlock.ts +144 -151
- package/src/blockFoundation/shaderBlock.ts +156 -163
- package/src/blockFoundation/textureOptions.ts +57 -57
- package/src/command/command.ts +59 -59
- package/src/command/commandBuffer.ts +71 -71
- package/src/command/commandBufferDebugger.ts +14 -14
- package/src/command/index.ts +7 -3
- package/src/connection/connectionPoint.ts +205 -214
- package/src/connection/connectionPointCompatibilityState.ts +31 -31
- package/src/connection/connectionPointType.ts +45 -45
- package/src/connection/connectionPointWithDefault.ts +27 -35
- package/src/connection/index.ts +8 -9
- package/src/editorUtils/editableInPropertyPage.ts +106 -106
- package/src/editorUtils/index.ts +3 -1
- package/src/index.ts +16 -15
- package/src/optimization/dependencyGraph.ts +96 -96
- package/src/optimization/index.ts +1 -1
- package/src/optimization/optimizedShaderBlock.ts +131 -134
- package/src/optimization/smartFilterOptimizer.ts +757 -825
- package/src/runtime/index.ts +8 -6
- package/src/runtime/renderTargetGenerator.ts +222 -248
- package/src/runtime/shaderRuntime.ts +174 -173
- package/src/runtime/smartFilterRuntime.ts +112 -112
- package/src/runtime/strongRef.ts +18 -18
- package/src/serialization/importCustomBlockDefinition.ts +86 -86
- package/src/serialization/index.ts +10 -7
- package/src/serialization/serializedBlockDefinition.ts +12 -12
- package/src/serialization/serializedShaderBlockDefinition.ts +7 -7
- package/src/serialization/serializedSmartFilter.ts +6 -6
- package/src/serialization/smartFilterDeserializer.ts +190 -220
- package/src/serialization/smartFilterSerializer.ts +110 -121
- package/src/serialization/v1/defaultBlockSerializer.ts +21 -21
- package/src/serialization/v1/index.ts +4 -2
- package/src/serialization/v1/shaderBlockSerialization.types.ts +85 -85
- package/src/serialization/v1/smartFilterSerialization.types.ts +129 -133
- package/src/smartFilter.ts +255 -260
- package/src/utils/buildTools/buildShaders.ts +14 -13
- package/src/utils/buildTools/convertGlslIntoBlock.ts +370 -385
- package/src/utils/buildTools/convertGlslIntoShaderProgram.ts +173 -172
- package/src/utils/buildTools/convertShaders.ts +65 -43
- package/src/utils/buildTools/recordVersionNumber.js +24 -0
- package/src/utils/buildTools/shaderConverter.ts +466 -478
- package/src/utils/buildTools/watchShaders.ts +44 -42
- package/src/utils/index.ts +4 -2
- package/src/utils/renderTargetUtils.ts +30 -35
- package/src/utils/shaderCodeUtils.ts +192 -207
- package/src/utils/textureLoaders.ts +31 -43
- package/src/utils/textureUtils.ts +28 -32
- package/src/version.ts +2 -2
- package/dist/utils/buildTools/determineVersion.d.ts +0 -36
- package/dist/utils/buildTools/determineVersion.d.ts.map +0 -1
- package/dist/utils/buildTools/determineVersion.js +0 -109
- package/dist/utils/buildTools/determineVersion.js.map +0 -1
- package/dist/utils/buildTools/versionUp.d.ts +0 -2
- package/dist/utils/buildTools/versionUp.d.ts.map +0 -1
- package/dist/utils/buildTools/versionUp.js +0 -53
- package/dist/utils/buildTools/versionUp.js.map +0 -1
- package/src/utils/buildTools/determineVersion.ts +0 -128
- package/src/utils/buildTools/versionUp.ts +0 -61
|
@@ -1,150 +1,150 @@
|
|
|
1
|
-
import { InputBlockBase, type InputBlock } from "./inputBlock.js";
|
|
2
|
-
import type { BaseBlock } from "./baseBlock.js";
|
|
3
|
-
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
|
-
import type {
|
|
5
|
-
BooleanInputBlockData,
|
|
6
|
-
Color3InputBlockData,
|
|
7
|
-
Color4InputBlockData,
|
|
8
|
-
FloatInputBlockData,
|
|
9
|
-
SerializedInputBlockData,
|
|
10
|
-
TextureInputBlockData,
|
|
11
|
-
Vector2InputBlockData,
|
|
12
|
-
} from "./inputBlock.serialization.types.js";
|
|
13
|
-
import type { IBlockSerializerV1 } from "../serialization/v1/smartFilterSerialization.types.js";
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Determines which generic type of InputBlock we are trying to serialize and calls the appropriate function
|
|
17
|
-
* to serialize the specifics for that type of InputBlock
|
|
18
|
-
* @param inputBlock - The InputBlock to serialize
|
|
19
|
-
* @returns Serialized data for the InputBlock
|
|
20
|
-
*/
|
|
21
|
-
function
|
|
22
|
-
switch (inputBlock.type) {
|
|
23
|
-
case ConnectionPointType.Texture:
|
|
24
|
-
return
|
|
25
|
-
case ConnectionPointType.Boolean:
|
|
26
|
-
return
|
|
27
|
-
case ConnectionPointType.Float:
|
|
28
|
-
return
|
|
29
|
-
case ConnectionPointType.Color3:
|
|
30
|
-
return
|
|
31
|
-
case ConnectionPointType.Color4:
|
|
32
|
-
return
|
|
33
|
-
case ConnectionPointType.Vector2:
|
|
34
|
-
return
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Generates the serialized data for a Texture InputBlock
|
|
40
|
-
* @param inputBlock - The Texture InputBlock to serialize
|
|
41
|
-
* @returns The serialized data for the InputBlock
|
|
42
|
-
*/
|
|
43
|
-
function
|
|
44
|
-
const internalTexture = inputBlock.runtimeValue.value?.getInternalTexture();
|
|
45
|
-
const forcedExtension = internalTexture?._extension ?? null;
|
|
46
|
-
|
|
47
|
-
let url = internalTexture?.url ?? null;
|
|
48
|
-
if (url === "" || !url) {
|
|
49
|
-
url = inputBlock.editorData?.url ?? null;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
return {
|
|
53
|
-
inputType: ConnectionPointType.Texture,
|
|
54
|
-
url,
|
|
55
|
-
urlTypeHint: inputBlock.editorData?.urlTypeHint ?? null,
|
|
56
|
-
flipY: internalTexture?.invertY ?? null,
|
|
57
|
-
anisotropicFilteringLevel: internalTexture?.anisotropicFilteringLevel ?? null,
|
|
58
|
-
forcedExtension: forcedExtension !== "" ? forcedExtension : null,
|
|
59
|
-
appMetadata: inputBlock.appMetadata,
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Generates the serialized data for a Boolean InputBlock
|
|
65
|
-
* @param inputBlock - The Boolean InputBlock to serialize
|
|
66
|
-
* @returns The serialized data for the InputBlock
|
|
67
|
-
*/
|
|
68
|
-
function
|
|
69
|
-
return {
|
|
70
|
-
inputType: ConnectionPointType.Boolean,
|
|
71
|
-
value: inputBlock.runtimeValue.value,
|
|
72
|
-
appMetadata: inputBlock.appMetadata,
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Generates the serialized data for a Float InputBlock
|
|
78
|
-
* @param inputBlock - The Float InputBlock to serialize
|
|
79
|
-
* @returns The serialized data for the InputBlock
|
|
80
|
-
*/
|
|
81
|
-
function
|
|
82
|
-
return {
|
|
83
|
-
inputType: ConnectionPointType.Float,
|
|
84
|
-
value: inputBlock.runtimeValue.value,
|
|
85
|
-
animationType: inputBlock.editorData?.animationType ?? null,
|
|
86
|
-
valueDeltaPerMs: inputBlock.editorData?.valueDeltaPerMs ?? null,
|
|
87
|
-
min: inputBlock.editorData?.min ?? null,
|
|
88
|
-
max: inputBlock.editorData?.max ?? null,
|
|
89
|
-
appMetadata: inputBlock.appMetadata,
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Generates the serialized data for a Color3 InputBlock
|
|
95
|
-
* @param inputBlock - The Color3 InputBlock to serialize
|
|
96
|
-
* @returns The serialized data for the InputBlock
|
|
97
|
-
*/
|
|
98
|
-
function
|
|
99
|
-
return {
|
|
100
|
-
inputType: ConnectionPointType.Color3,
|
|
101
|
-
value: inputBlock.runtimeValue.value,
|
|
102
|
-
appMetadata: inputBlock.appMetadata,
|
|
103
|
-
};
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Generates the serialized data for a Color4 InputBlock
|
|
108
|
-
* @param inputBlock - The Color4 InputBlock to serialize
|
|
109
|
-
* @returns The serialized data for the InputBlock
|
|
110
|
-
*/
|
|
111
|
-
function
|
|
112
|
-
return {
|
|
113
|
-
inputType: ConnectionPointType.Color4,
|
|
114
|
-
value: inputBlock.runtimeValue.value,
|
|
115
|
-
appMetadata: inputBlock.appMetadata,
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Generates the serialized data for a Vector2 InputBlock
|
|
121
|
-
* @param inputBlock - The Vector2 InputBlock to serialize
|
|
122
|
-
* @returns The serialized data for the InputBlock
|
|
123
|
-
*/
|
|
124
|
-
function
|
|
125
|
-
return {
|
|
126
|
-
inputType: ConnectionPointType.Vector2,
|
|
127
|
-
value: inputBlock.runtimeValue.value,
|
|
128
|
-
appMetadata: inputBlock.appMetadata,
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/**
|
|
133
|
-
* The V1 serializer for an InputBlock
|
|
134
|
-
*/
|
|
135
|
-
export const
|
|
136
|
-
blockType: InputBlockBase.ClassName,
|
|
137
|
-
serialize: (block: BaseBlock) => {
|
|
138
|
-
if (block.blockType !== InputBlockBase.ClassName) {
|
|
139
|
-
throw new Error("Was asked to serialize an unrecognized block type");
|
|
140
|
-
}
|
|
141
|
-
return {
|
|
142
|
-
name: block.name,
|
|
143
|
-
uniqueId: block.uniqueId,
|
|
144
|
-
blockType: InputBlockBase.ClassName,
|
|
145
|
-
namespace: null,
|
|
146
|
-
comments: block.comments,
|
|
147
|
-
data:
|
|
148
|
-
};
|
|
149
|
-
},
|
|
150
|
-
};
|
|
1
|
+
import { InputBlockBase, type InputBlock } from "./inputBlock.js";
|
|
2
|
+
import type { BaseBlock } from "./baseBlock.js";
|
|
3
|
+
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
|
+
import type {
|
|
5
|
+
BooleanInputBlockData,
|
|
6
|
+
Color3InputBlockData,
|
|
7
|
+
Color4InputBlockData,
|
|
8
|
+
FloatInputBlockData,
|
|
9
|
+
SerializedInputBlockData,
|
|
10
|
+
TextureInputBlockData,
|
|
11
|
+
Vector2InputBlockData,
|
|
12
|
+
} from "./inputBlock.serialization.types.js";
|
|
13
|
+
import type { IBlockSerializerV1 } from "../serialization/v1/smartFilterSerialization.types.js";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Determines which generic type of InputBlock we are trying to serialize and calls the appropriate function
|
|
17
|
+
* to serialize the specifics for that type of InputBlock
|
|
18
|
+
* @param inputBlock - The InputBlock to serialize
|
|
19
|
+
* @returns Serialized data for the InputBlock
|
|
20
|
+
*/
|
|
21
|
+
function SerializeInputBlockData(inputBlock: InputBlockBase): SerializedInputBlockData {
|
|
22
|
+
switch (inputBlock.type) {
|
|
23
|
+
case ConnectionPointType.Texture:
|
|
24
|
+
return SerializeTextureInputBlock(inputBlock as InputBlock<ConnectionPointType.Texture>);
|
|
25
|
+
case ConnectionPointType.Boolean:
|
|
26
|
+
return SerializeBooleanInputBlock(inputBlock as InputBlock<ConnectionPointType.Boolean>);
|
|
27
|
+
case ConnectionPointType.Float:
|
|
28
|
+
return SerializeFloatInputBlock(inputBlock as InputBlock<ConnectionPointType.Float>);
|
|
29
|
+
case ConnectionPointType.Color3:
|
|
30
|
+
return SerializeColor3InputBlock(inputBlock as InputBlock<ConnectionPointType.Color3>);
|
|
31
|
+
case ConnectionPointType.Color4:
|
|
32
|
+
return SerializeColor4InputBlock(inputBlock as InputBlock<ConnectionPointType.Color4>);
|
|
33
|
+
case ConnectionPointType.Vector2:
|
|
34
|
+
return SerializeVector2InputBlock(inputBlock as InputBlock<ConnectionPointType.Vector2>);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Generates the serialized data for a Texture InputBlock
|
|
40
|
+
* @param inputBlock - The Texture InputBlock to serialize
|
|
41
|
+
* @returns The serialized data for the InputBlock
|
|
42
|
+
*/
|
|
43
|
+
function SerializeTextureInputBlock(inputBlock: InputBlock<ConnectionPointType.Texture>): TextureInputBlockData {
|
|
44
|
+
const internalTexture = inputBlock.runtimeValue.value?.getInternalTexture();
|
|
45
|
+
const forcedExtension = internalTexture?._extension ?? null;
|
|
46
|
+
|
|
47
|
+
let url = internalTexture?.url ?? null;
|
|
48
|
+
if (url === "" || !url) {
|
|
49
|
+
url = inputBlock.editorData?.url ?? null;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return {
|
|
53
|
+
inputType: ConnectionPointType.Texture,
|
|
54
|
+
url,
|
|
55
|
+
urlTypeHint: inputBlock.editorData?.urlTypeHint ?? null,
|
|
56
|
+
flipY: internalTexture?.invertY ?? null,
|
|
57
|
+
anisotropicFilteringLevel: internalTexture?.anisotropicFilteringLevel ?? null,
|
|
58
|
+
forcedExtension: forcedExtension !== "" ? forcedExtension : null,
|
|
59
|
+
appMetadata: inputBlock.appMetadata,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Generates the serialized data for a Boolean InputBlock
|
|
65
|
+
* @param inputBlock - The Boolean InputBlock to serialize
|
|
66
|
+
* @returns The serialized data for the InputBlock
|
|
67
|
+
*/
|
|
68
|
+
function SerializeBooleanInputBlock(inputBlock: InputBlock<ConnectionPointType.Boolean>): BooleanInputBlockData {
|
|
69
|
+
return {
|
|
70
|
+
inputType: ConnectionPointType.Boolean,
|
|
71
|
+
value: inputBlock.runtimeValue.value,
|
|
72
|
+
appMetadata: inputBlock.appMetadata,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Generates the serialized data for a Float InputBlock
|
|
78
|
+
* @param inputBlock - The Float InputBlock to serialize
|
|
79
|
+
* @returns The serialized data for the InputBlock
|
|
80
|
+
*/
|
|
81
|
+
function SerializeFloatInputBlock(inputBlock: InputBlock<ConnectionPointType.Float>): FloatInputBlockData {
|
|
82
|
+
return {
|
|
83
|
+
inputType: ConnectionPointType.Float,
|
|
84
|
+
value: inputBlock.runtimeValue.value,
|
|
85
|
+
animationType: inputBlock.editorData?.animationType ?? null,
|
|
86
|
+
valueDeltaPerMs: inputBlock.editorData?.valueDeltaPerMs ?? null,
|
|
87
|
+
min: inputBlock.editorData?.min ?? null,
|
|
88
|
+
max: inputBlock.editorData?.max ?? null,
|
|
89
|
+
appMetadata: inputBlock.appMetadata,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Generates the serialized data for a Color3 InputBlock
|
|
95
|
+
* @param inputBlock - The Color3 InputBlock to serialize
|
|
96
|
+
* @returns The serialized data for the InputBlock
|
|
97
|
+
*/
|
|
98
|
+
function SerializeColor3InputBlock(inputBlock: InputBlock<ConnectionPointType.Color3>): Color3InputBlockData {
|
|
99
|
+
return {
|
|
100
|
+
inputType: ConnectionPointType.Color3,
|
|
101
|
+
value: inputBlock.runtimeValue.value,
|
|
102
|
+
appMetadata: inputBlock.appMetadata,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Generates the serialized data for a Color4 InputBlock
|
|
108
|
+
* @param inputBlock - The Color4 InputBlock to serialize
|
|
109
|
+
* @returns The serialized data for the InputBlock
|
|
110
|
+
*/
|
|
111
|
+
function SerializeColor4InputBlock(inputBlock: InputBlock<ConnectionPointType.Color4>): Color4InputBlockData {
|
|
112
|
+
return {
|
|
113
|
+
inputType: ConnectionPointType.Color4,
|
|
114
|
+
value: inputBlock.runtimeValue.value,
|
|
115
|
+
appMetadata: inputBlock.appMetadata,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Generates the serialized data for a Vector2 InputBlock
|
|
121
|
+
* @param inputBlock - The Vector2 InputBlock to serialize
|
|
122
|
+
* @returns The serialized data for the InputBlock
|
|
123
|
+
*/
|
|
124
|
+
function SerializeVector2InputBlock(inputBlock: InputBlock<ConnectionPointType.Vector2>): Vector2InputBlockData {
|
|
125
|
+
return {
|
|
126
|
+
inputType: ConnectionPointType.Vector2,
|
|
127
|
+
value: inputBlock.runtimeValue.value,
|
|
128
|
+
appMetadata: inputBlock.appMetadata,
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* The V1 serializer for an InputBlock
|
|
134
|
+
*/
|
|
135
|
+
export const InputBlockSerializer: IBlockSerializerV1 = {
|
|
136
|
+
blockType: InputBlockBase.ClassName,
|
|
137
|
+
serialize: (block: BaseBlock) => {
|
|
138
|
+
if (block.blockType !== InputBlockBase.ClassName) {
|
|
139
|
+
throw new Error("Was asked to serialize an unrecognized block type");
|
|
140
|
+
}
|
|
141
|
+
return {
|
|
142
|
+
name: block.name,
|
|
143
|
+
uniqueId: block.uniqueId,
|
|
144
|
+
blockType: InputBlockBase.ClassName,
|
|
145
|
+
namespace: null,
|
|
146
|
+
comments: block.comments,
|
|
147
|
+
data: SerializeInputBlockData(block as unknown as InputBlockBase),
|
|
148
|
+
};
|
|
149
|
+
},
|
|
150
|
+
};
|