News
Scenome 21.47 — 11/28/2021
Release details are described below.
Table 1.1. Description of Changes.
Change Log |
---|
Added new data interface UnloadScript to <ScriptSource>. This allows you to unload a script that has been dynamically loaded into an application As a result, made minor adjustments in TYPE_NODE_DELETE_UTIL.SSL, TYPE_NODE_CLONE_UTIL.SSL, and TYPE_NODE_RENAME_UTIL.SSL. The addition of UnloadScript means that there is no need to manually delete the script manager source object (which in fact should not be deleted) to prevent 'script already loaded' messages. |
Minor adjustments in FilePath::TraverseFolders mean that the <FilePath> ListFiles data interface should generate slightly cleaner results, with file paths only added once in all use cases. |
Removed all uses of <Texture> node data interfaces ImageDataMin and ImageDataMin from the Scenome Scripting Language codebase. Please note that these data interfacs will be deprecated in 2022. Please use the <MinMaxValueStore> object data interface to store the minimum and maximum values for the <Texture> node's underlying <Image> object data. <MinMaxValueStore> has a <Float64Array> that allows you to store minimum and maximum values for each slice/layer. For example: a 2D texture needs to store a minimum and maximum value, but a 2D array texture needs to store a minimum and maximum value for each layer in the array. A cubemap needs to store 6 minimum and maximum values. Therefore, the <MinMaxValueStore> object is really the only suitable way to provide a uniform method of storing a variable number of minimum and maximum values. |
Added Scenome Scripting Language test code to force a <Texture> object to render so that any <Image> objects in its <ImageList> are available for modification. For background: as an optimization, a <Texture> node's underlying <Image> objects are not generally loaded unless the <Texture> node is rendered. Sometimes this is inconvenient. You can find this code in TYPE_TEXTURE_SCRIPTS.SSL, in macro TextureExtractChannel(). This should make it easier to work with <Texture> node objects that aren't directly (or immediately) rendered when they are created. |
macro OpenProjectFolder() was updated to use the new generic function GetPath( Node p_oNode, StrList p_slPaths ). This function can be added to the utility library for any <Node> type that stores a file path, and you can add one or more file paths to the <StrList> parameter. For nodes with multiple file paths, we only open the folder of the first file path. We may upgrade this feature in the future. |
Fixed a bug in TYPE_IMAGE_FILL_BY_VALUE_FP16_UTIL.SSL and all similar. Previously, the code in these libraries set the iterator end position to raw_view.Last.Position = p_oDst.GetChannelCount() - 1;. This is not correct for 1-channel images, because the iterator could then be set to have a start and end position of zero, which would mean that the iterator would effectively have no range. This caused fill operations to fail in some cases. |
Updated TYPE_TEXTURE_ALGORITHMS_UTIL.SSL::CreateTexturesFromDisk( ... ) to call SetTextureDataMinMax( ... ) so that the <Texture> object's <MinMaxValueStore> object is updated with the correct minimum and maximum values. Previously only the ImageDataMin and ImageDataMax values were updated. |
Updated TYPE_TEXTURE_CREATE_UTIL.SSL::ExecuteWizard( ... ) to call SetTextureDataMinMax( ... ) so that the <Texture> object's <MinMaxValueStore> object is updated with the correct minimum and maximum values. Previously only the ImageDataMin and ImageDataMax values were updated. |
Updated TYPE_TEXTURE_SCRIPTS.SSL::TextureReplaceFromDisk() to call SetTextureDataMinMax( ... ) so that the <Texture> object's <MinMaxValueStore> object is updated with the correct minimum and maximum values. Previously only the ImageDataMin and ImageDataMax values were updated. |
Updated TYPE_TEXTURE_SCRIPTS.SSL::TextureReadback() to call clear the <MinMaxValueStore> object. values were updated. |
Updated TYPE_TEXTURE_SCRIPTS.SSL::TextureExtractChannel() to force the <Texture> object to reload so that you immediately see the results of channel extraction. |