├── .gitignore ├── LICENSE ├── README.md └── assets ├── average.png ├── clamp.png ├── convert.png ├── filter.png ├── max.png ├── min.png ├── nodes.png ├── normalization.png ├── predicate_filter.png ├── predicate_filter_delegate.png ├── predicate_filter_function.png ├── predicate_sort.png ├── predicate_sort_delegate.png ├── predicate_sort_function.png ├── random.png ├── range.png ├── reverse.png ├── sort.png ├── thumbnail.png └── vector.png /.gitignore: -------------------------------------------------------------------------------- 1 | # Visual Studio 2015 user specific files 2 | .vs/ 3 | 4 | # Compiled Object files 5 | *.slo 6 | *.lo 7 | *.o 8 | *.obj 9 | 10 | # Precompiled Headers 11 | *.gch 12 | *.pch 13 | 14 | # Compiled Dynamic libraries 15 | *.so 16 | *.dylib 17 | *.dll 18 | 19 | # Fortran module files 20 | *.mod 21 | 22 | # Compiled Static libraries 23 | *.lai 24 | *.la 25 | *.a 26 | *.lib 27 | 28 | # Executables 29 | *.exe 30 | *.out 31 | *.app 32 | *.ipa 33 | 34 | # These project files can be generated by the engine 35 | *.xcodeproj 36 | *.xcworkspace 37 | *.sln 38 | *.suo 39 | *.opensdf 40 | *.sdf 41 | *.VC.db 42 | *.VC.opendb 43 | 44 | # Precompiled Assets 45 | SourceArt/**/*.png 46 | SourceArt/**/*.tga 47 | 48 | # Binary Files 49 | Binaries/* 50 | Plugins/*/Binaries/* 51 | 52 | # Builds 53 | Build/* 54 | 55 | # Whitelist PakBlacklist-.txt files 56 | !Build/*/ 57 | Build/*/** 58 | !Build/*/PakBlacklist*.txt 59 | 60 | # Don't ignore icon files in Build 61 | !Build/**/*.ico 62 | 63 | # Built data for maps 64 | *_BuiltData.uasset 65 | 66 | # Configuration files generated by the Editor 67 | Saved/* 68 | 69 | # Compiled source files for the engine to use 70 | Intermediate/* 71 | Plugins/*/Intermediate/* 72 | 73 | # Cache files for the editor to use 74 | DerivedDataCache/* 75 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 Loris R. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Array Helper 2 | 3 |
4 | 5 | # About 6 | 7 | ![thumbnail](./assets/thumbnail.png) 8 | 9 | - UE plugin to handle arrays operations (sort, filter, match, range, clamp, random, average, min, max, normalize, math) 10 | - Use custom predicate function to sort or filter arrays (Int, Float, Byte, Integer64, String, Name, Vector, Object, Actor, Generic) 11 | - It exposes blueprint functions to handle arrays by value or by reference 12 | - Provides some generic input nodes to operate on any array 13 | 14 |
15 | 16 | # Setup 17 | 18 | ![Nodes](./assets/nodes.png) 19 | 20 | 1. [Get the plugin on the marketplace](https://www.unrealengine.com/marketplace/en-US/product/array-helper-bp-library) and install the plugin for the engine version you wish to use 21 | 2. Create or open an unreal engine project with a supported version 22 | 3. In the editor, go to Edit/Plugins, search for the plugin, check the box to enable it and restart the editor 23 | 4. When a new plugin version is available, go to your Epic Games Launcher, under Unreal Engine/Library, below the engine version, you will find your installed plugins, find the plugin and click on update, then wait for it to finish and restart your editor 24 | 25 |
26 | 27 | # Support 28 | 29 | ### Bugs/Issues 30 | 31 | If you encounter issues with this plugin, you **should** report it, to do so, in the editor, go to Edit/Plugins, search for this plugin, click on the plugin support button, this will open your browser and navigate to the plugin issue form where you need to fill in all the relevant details about your issue, this will help me investigate and reproduce it on my own in order to fix it. Be precise and give as many details as you can. Once solved, a new plugin version will be submitted to the marketplace, update the plugin and you are good to go. **Due to epic marketplace limitations, I can only patch/update this plugin for the last 3 engine version, older engine versions will not be supported anymore.** 32 | 33 | ### Feature requests 34 | 35 | If you want a new feature relevant to this plugin use case, you can submit a request in the [plugin marketplace question page](https://www.unrealengine.com/marketplace/en-US/product/array-helper-bp-library/questions). I **may** add this new feature in a future plugin version. 36 | 37 |
38 | 39 | # Documentation 40 | 41 | _Screenshots may differ from the latest plugin version, some features may have evolved or have been removed if deprecated._ 42 | 43 | _In UE 5.1, the plugin files were renamed from "SortPlugin" to "ArrayHelper" to match the real name of the plugin, you can remove the plugin and reinstall it if you want a clean install, check your uproject file to change the plugin name there too, the plugin nodes names have not changed, this renaming was necessary to match with the plugin name._ 44 | 45 | _If you wish to update the current array, use functions with "ref" for best performance. If you wish to keep the current array and get another array as output, use standard function without "ref" (a copy of the array will be made)._ 46 | 47 | ### Average 48 | 49 | ![Average](./assets/average.png) 50 | 51 | _Computes the average of an array_ 52 | 53 | | Node | Inputs | Outputs | Note | 54 | | ---- | ------ | ------- | ---- | 55 | | AverageInteger | Array(Integer) | Average(Float) | | 56 | | AverageFloat | Array(Float) | Average(Float) | | 57 | | AverageDouble | Array(Double) | Average(Float) | | 58 | | AverageByte | Array(Byte) | Average(Float) | | 59 | | AverageInteger64 | Array(Integer64) | Average(Float) | | 60 | 61 |
62 | 63 | ### Minimum 64 | 65 | ![Minimum](./assets/min.png) 66 | 67 | _Returns the index of the minimum value in the array or -1._ 68 | 69 | | Node | Inputs | Outputs | Note | 70 | | ---- | ------ | ------- | ---- | 71 | | MinimumIntegerIndex | Array(Integer) | Index(Integer) | | 72 | | MinimumFloatIndex | Array(Float) | Index(Integer) | | 73 | | MinimumDoubleIndex | Array(Double) | Index(Integer) | | 74 | | MinimumByteIndex | Array(Byte) | Index(Integer) | | 75 | | MinimumInteger64Index | Array(Integer64) | Index(Integer) | | 76 | 77 |
78 | 79 | ### Maximum 80 | 81 | ![Maximum](./assets/max.png) 82 | 83 | _Returns the index of the maximum value in the array or -1._ 84 | 85 | | Node | Inputs | Outputs | Note | 86 | | ---- | ------ | ------- | ---- | 87 | | MaximumIntegerIndex | Array(Integer) | Index(Integer) | | 88 | | MaximumFloatIndex | Array(Float) | Index(Integer) | | 89 | | MaximumDoubleIndex | Array(Double) | Index(Integer) | | 90 | | MaximumByteIndex | Array(Byte) | Index(Integer) | | 91 | | MaximumInteger64Index | Array(Integer64) | Index(Integer) | | 92 | 93 |
94 | 95 | ### Normalization 96 | 97 | ![Normalization](./assets/normalization.png) 98 | 99 | _Normalize the value of the array between min and max._ 100 | 101 | | Node | Inputs | Outputs | Note | 102 | | ---- | ------ | ------- | ---- | 103 | | MinMaxIntegerNormalization | Array(Integer), Min(Integer), Max(Integer) | Array(Integer) | | 104 | | MinMaxFloatNormalization | Array(Float), Min(Float), Max(Float) | Array(Float) | | 105 | | MinMaxDoubleNormalization | Array(Double), Min(Double), Max(Double) | Array(Double) | | 106 | | MinMaxByteNormalization | Array(Byte), Min(Byte), Max(Byte) | Array(Byte) | | 107 | | MinMaxInteger64Normalization | Array(Integer64), Min(Integer64), Max(Integer64) | Array(Integer64) | | 108 | 109 |
110 | 111 | ### Reverse 112 | 113 | ![Reverse](./assets/reverse.png) 114 | 115 | _Reverse a generic array by copy and return the reversed array._ 116 | 117 | | Node | Inputs | Outputs | Note | 118 | | ---- | -------| ------- | ---- | 119 | | ReverseArray | Array(*) | Array(*) | | 120 | 121 |
122 | 123 | ### Convert 124 | 125 | ![Convert](./assets/convert.png) 126 | 127 | | Node | Inputs | Outputs | Note | 128 | | ---- | ------ | ------- | ---- | 129 | | ToSet | Array(*) | Set(*) | Converts a generic array to a new set and removes duplicates | 130 | | MakeTransformArray | Locations(Array(Vector)), Rotations(Array(Rotator)), Scales(Array(Vector)) | Result(Bool), Transforms(Array(Transform)) | Creates a transform array out of locations, rotations, scales arrays | 131 | | BreakTransformArray | Transforms(Array(Transform)) | Locations(Array(Vector)), Rotations(Array(Rotator)), Scales(Array(Vector)) | Creates locations, rotations, scales arrays out of a transform array | 132 | | SplitString | String(String), Separator(String), SearchCase(Enum), RemoveEmptyString(Bool) | Array(String) | Splits a string using a specific separator and return an array of strings | 133 | | ArrayToString | Array(*), Delimiter(String), Start(String), End(String), ShowIndexes(Bool) | String(String) | Converts a generic array into a string | 134 | 135 |
136 | 137 | ### Clamp 138 | 139 | ![Clamp](./assets/clamp.png) 140 | 141 | _Creates or updates an array clamped using min and max value._ 142 | 143 | | Node | Inputs | Outputs | Note | 144 | | ---- | ------ | ------- | ---- | 145 | | ClampInteger | Array(Integer), Min, Max | Array(Integer) | | 146 | | ClampFloat | Array(Float), Min, Max | Array(Float) | | 147 | | ClampDouble | Array(Double), Min, Max | Array(Double) | | 148 | | ClampByte | Array(Byte), Min, Max | Array(Byte) | | 149 | | ClampInteger64 | Array(Integer64), Min, Max | Array(Integer64) | | 150 | | ClampVectorSize | Array(Vector), MinSize(Float), MaxSize(Float), Only2D(Bool) | Array(Vector) | | 151 | | ClampVector2DSize | Array(Vector2D), MinSize(Float), MaxSize(Float) | Array(Vector2D) | | 152 | | ClampIntegerByRef | Array(Integer), Min, Max | void | | 153 | | ClampFloatByRef | Array(Float), Min, Max | void | | 154 | | ClampDoubleByRef | Array(Double), Min, Max | void | | 155 | | ClampByteByRef | Array(Byte), Min, Max | void | | 156 | | ClampInteger64ByRef | Array(Integer64), Min, Max | void | | 157 | | ClampVectorSizeRef | Array(Vector), MinSize, MaxSize, Only2D | void | | 158 | | ClampVector2DSizeRef | Array(Vector2D), MinSize, MaxSize | void | | 159 | 160 |
161 | 162 | ### Range 163 | 164 | ![Range](./assets/range.png) 165 | 166 | | Node | Inputs | Outputs | Note | 167 | | ---- | ------ | ------- | ---- | 168 | | ExtractArray | Array(*), StartIndex, EndIndex | Array(*) | Creates a subarray out of a generic array using start and end index | 169 | 170 |
171 | 172 | ### Random 173 | 174 | ![Random](./assets/random.png) 175 | 176 | | Node | Inputs | Outputs | Note | 177 | | ---- | ------ | ------- | ---- | 178 | | RandomInteger | Size, Min, Max | Array(Integer) | Returns a random array filled with value between min and max | 179 | | RandomFloat | Size, Min, Max | Array(Float) | Returns a random array filled with value between min and max | 180 | | RandomDouble | Size, Min, Max | Array(Double) | Returns a random array filled with value between min and max | 181 | | RandomVector | Size, Min, Max | Array(Vector) | Returns a random array filled with value between min and max | 182 | | RandomVector2D | Size, Min, Max | Array(Vector2D) | Returns a random array filled with value between min and max | 183 | | RandomByte | Size, Min, Max | Array(Byte) | Returns a random array filled with value between min and max | 184 | | RandomBoolean | Size | Array(Boolean) | Returns a random array filled with value | 185 | | RandomInteger64 | Size, Min, Max | Array(Integer64) | Returns a random array filled with value between min and max | 186 | | PickRandomItem | Array(*), Weights(Int) | Item(*), Index(Int) | Picks a random item in a generic array based on weights and returns it with its index | 187 | 188 |
189 | 190 | ### Sort 191 | 192 | ![Sort](./assets/sort.png) 193 | 194 | | Node | Inputs | Outputs | Note | 195 | | ---- | ------ | ------- | ---- | 196 | | SortInteger | Array(Integer), IsAscending | Array(Integer) | Returns a copy of the array sorted by descending or ascending order | 197 | | SortFloat | Array(Float), IsAscending | Array(Float) | Returns a copy of the array sorted by descending or ascending order | 198 | | SortDouble | Array(Double), IsAscending | Array(Double) | Returns a copy of the array sorted by descending or ascending order | 199 | | SortByte | Array(Byte), IsAscending | Array(Byte) | Returns a copy of the array sorted by descending or ascending order | 200 | | SortInteger64 | Array(Integer64), IsAscending | Array(Integer64) | Returns a copy of the array sorted by descending or ascending order | 201 | | SortString | Array(String), IsAscending | Array(String) | Returns a copy of the array sorted by descending or ascending order | 202 | | SortName | Array(Name), IsAscending | Array(Name) | Returns a copy of the array sorted by descending or ascending order | 203 | | SortActor | Array(Actor), Origin(Actor), isAscending | Array(Actor) | Returns a copy of the array sorted by descending or ascending order based on distance to origin | 204 | | SortVector | Array(Vector), Origin(Vector), IsAscending | Array(Vector) | Returns a copy of the array sorted by descending or ascending order based on Origin | 205 | | SortVector2D | Array(Vector2D), Origin(Vector2D), IsAscending | Array(Vector2D) | Returns a copy of the array sorted by descending or ascending order based on Origin | 206 | | SortVertices | Array(Vector2D), CounterClockWise(Bool) | Array(Vectir2D) | Returns a copy of the vertices array sorted by (counter) clock wise order | 207 | | SortIntegerByRef | Array(Integer), IsAscending | void | Sorts the input array by descending or ascending order | 208 | | SortFloatByRef | Array(Float), IsAscending | void | Sorts the input array by descending or ascending order | 209 | | SortDoubleByRef | Array(Double), IsAscending | void | Sorts the input array by descending or ascending order | 210 | | SortByteByRef | Array(Byte), IsAscending | void | Sorts the input array by descending or ascending order | 211 | | SortInteger64ByRef | Array(Integer64), IsAscending | void | Sorts the input array by descending or ascending order | 212 | | SortStringByRef | Array(String), IsAscending | void | Sorts the input array by descending or ascending order | 213 | | SortNameByRef | Array(Name), IsAscending | void | Sorts the input array by descending or ascending order | 214 | | SortActorByRef | Array(Actor), Origin(Actor), IsAscending | void | Sorts the input array by descending or ascending order based on distance to origin | 215 | | SortVectorByRef | Array(Vector), Origin, IsAscending | void | Sorts the input array by descending or ascending order based on Origin | 216 | | SortVector2DByRef | Array(Vector2D), Origin, IsAscending | void | Sorts the input array by descending or ascending order based on Origin | 217 | | SortVerticesByRef | Array(Vector2D), CounterClockWise(Bool) | void | Sorts the input array by (counter) clock wise order | 218 | 219 |
220 | 221 | ### Sort by predicate 222 | 223 | ![Predicate Sort](./assets/predicate_sort.png) 224 | 225 | _Note v2 and above: In order to sort by predicate you must create a functions by dragging the PredicateFunction pin and select create event, then create or select a matching function in the list._ 226 | 227 | _Note v1.1 and below : In order to sort by predicate you must implement the ArrayComparator Interface and pass the object implementing this interface as input of the function (Context), the appropriate compare method will be called to perform the sort._ 228 | 229 | ![Example Sort](./assets/predicate_sort_delegate.png) 230 | ![Example Sort](./assets/predicate_sort_function.png) 231 | 232 | | Node | Inputs | Outputs | Note | 233 | | ---- | ------ | ------- | ---- | 234 | | PredicateSortInteger | Array(Integer), PredicateFunction, InvertResult | Array(Integer) | Returns a new array sorted using a custom predicate | 235 | | PredicateSortFloat | Array(Float), PredicateFunction, InvertResult | Array(Float) | Returns a new array sorted using a custom predicate | 236 | | PredicateSortDouble | Array(Double), PredicateFunction, InvertResult | Array(Double) | Returns a new array sorted using a custom predicate | 237 | | PredicateSortByte | Array(Byte), PredicateFunction, InvertResult | Array(Byte) | Returns a new array sorted using a custom predicate | 238 | | PredicateSortInteger64 | Array(Integer64), PredicateFunction, InvertResult | Array(Integer64) | Returns a new array sorted using a custom predicate | 239 | | PredicateSortString | Array(String), PredicateFunction, InvertResult | Array(String) | Returns a new array sorted using a custom predicate | 240 | | PredicateSortName | Array(Name), PredicateFunction, InvertResult | Array(Name) | Returns a new array sorted using a custom predicate | 241 | | PredicateSortVector | Array(Vector),PredicateFunction, InvertResult | Array(Vector) | Returns a new array sorted using a custom predicate | 242 | | PredicateSortVector2D | Array(Vector2D),PredicateFunction, InvertResult | Array(Vector2D) | Returns a new array sorted using a custom predicate | 243 | | PredicateSortActor | Array(Actor), PredicateFunction, InvertResult | Array(Actor) | Returns a new array sorted using a custom predicate | 244 | | PredicateSortObject | Array(Object), PredicateFunction, InvertResult | Array(Object) | Returns a new array sorted using a custom predicate | 245 | | PredicateSortIntegerByRef | Array(Integer), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 246 | | PredicateSortFloatByRef | Array(Float), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 247 | | PredicateSortDoubleByRef | Array(Double), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 248 | | PredicateSortByteByRef | Array(Byte), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 249 | | PredicateSortInteger64ByRef | Array(Integer64), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 250 | | PredicateSortStringByRef | Array(String), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 251 | | PredicateSortNameByRef | Array(Name), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 252 | | PredicateSortVectorByRef | Array(Vector), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 253 | | PredicateSortVector2DByRef | Array(Vector2D), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 254 | | PredicateSortActorByRef | Array(Actor), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 255 | | PredicateSortObjectByRef | Array(Object), PredicateFunction, InvertResult | void | Sorts the input array using a custom predicate | 256 | 257 |
258 | 259 | ### Distance 260 | 261 | ![Distance](./assets/vector.png) 262 | 263 | | Node | Inputs | Outputs | Note | 264 | | ---- | ------ | ------- | ---- | 265 | | ClosestLocation | Array(Vector), Origin(Vector) | Closest(Vector), Distance, Index | Return the closest vector to Origin, the distance, the index in array | 266 | | FarthestLocation | Array(Vector), Origin(Vector) | Farthest(Vector), Distance, Index | Return the farthest vector to Origin, the distance, the index in array | 267 | | ClosestActor | Array(Actor), Origin(Actor) | Closest(Actor), Distance, Index | Return the closest actor to Origin, the distance, the index in array | 268 | | FarthestActor | Array(Actor), Origin(Actor) | Farthest(Actor), Distance, Index | Return the farthest actor to Origin, the distance, the index in array | 269 | | ClosestTransform | Array(Transform), Origin(Vector) | Closest(Transform), Distance, Index | Return the closest transform to Origin, the distance, the index in array | 270 | | FarthestTransform | Array(Transform), Origin(Vector) | Farthest(Transform), Distance, Index | Return the farthest transform to Origin, the distance, the index in array | 271 | 272 |
273 | 274 | ### Filters 275 | 276 | ![Filter](./assets/filter.png) 277 | 278 | | Node | Inputs | Outputs | Note | 279 | | ---- | ------ | ------- | ---- | 280 | | FilterMatches | Array(String), Pattern | Found, Array(String) | Returns an array containing strings that match the pattern (regex) | 281 | | FilterMatch | Array(String), Pattern | Found, String, Index | Returns the first string matching the pattern (regex) with its index | 282 | 283 |
284 | 285 | ### Filters by predicate 286 | 287 | ![Predicate Filter](./assets/predicate_filter.png) 288 | 289 | _Note v2 and above: In order to filter by predicate you must create a functions by dragging the PredicateFunction pin and select create event, then create or select a matching function in the list._ 290 | 291 | _Note v1.1 and below : In order to filter by predicate you must implement the ArrayFilter Interface and pass the object implementing this interface as input of the function (Context), the appropriate filter method will be called to perform the filtering._ 292 | 293 | ![Example Filter](./assets/predicate_filter_delegate.png) 294 | ![Example Filter](./assets/predicate_filter_function.png) 295 | 296 | | Node | Inputs | Outputs | Note | 297 | | ---- | ------ | ------- | ---- | 298 | | PredicateFilterInteger | Array(Integer), PredicateFunction, InvertResult | Array(Integer) | Returns a new array filtered using a custom predicate | 299 | | PredicateFilterFloat | Array(Float), PredicateFunction, InvertResult | Array(Float) | Returns a new array filtered using a custom predicate | 300 | | PredicateFilterDouble | Array(Double), PredicateFunction, InvertResult | Array(Double) | Returns a new array filtered using a custom predicate | 301 | | PredicateFilterByte | Array(Byte), PredicateFunction, InvertResult | Array(Byte) | Returns a new array filtered using a custom predicate | 302 | | PredicateFilterInteger64 | Array(Integer64), PredicateFunction, InvertResult | Array(Integer64) | Returns a new array filtered using a custom predicate | 303 | | PredicateFilterString | Array(String), PredicateFunction, InvertResult | Array(String) | Returns a new array filtered using a custom predicate | 304 | | PredicateFilterName | Array(Name), PredicateFunction, InvertResult | Array(Name) | Returns a new array filtered using a custom predicate | 305 | | PredicateFilterVector | Array(Vector), PredicateFunction | Array(Vector) | Returns a new array filtered using a custom predicate, InvertResult | 306 | | PredicateFilterVector2D | Array(Vector2D), PredicateFunction | Array(Vector2D) | Returns a new array filtered using a custom predicate, InvertResult | 307 | | PredicateFilterActor | Array(Actor), PredicateFunction | Array(Actor) | Returns a new array filtered using a custom predicate, InvertResult | 308 | | PredicateFilterObject | Array(Object), PredicateFunction | Array(Object) | Returns a new array filtered using a custom predicate, InvertResult | 309 | 310 |
311 | 312 | ### Math 313 | 314 | _Perform math operations on a generic numeric array._ 315 | 316 | | Node | Inputs | Outputs | Note | 317 | | ---- | ------ | ------- | ---- | 318 | | + | Array(Numeric), Numeric | Result(Bool) | Performs a add operation on all numeric elements in the generic numeric array | 319 | | - | Array(Numeric), Numeric | Result(Bool) | Performs a subtract operation on all numeric elements in the generic numeric array | 320 | | * | Array(Numeric), Numeric | Result(Bool) | Performs a multiply operation on all numeric elements in the generic numeric array | 321 | | / | Array(Numeric), Numeric | Result(Bool) | Performs a division operation on all numeric elements in the generic numeric array | 322 | -------------------------------------------------------------------------------- /assets/average.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/average.png -------------------------------------------------------------------------------- /assets/clamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/clamp.png -------------------------------------------------------------------------------- /assets/convert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/convert.png -------------------------------------------------------------------------------- /assets/filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/filter.png -------------------------------------------------------------------------------- /assets/max.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/max.png -------------------------------------------------------------------------------- /assets/min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/min.png -------------------------------------------------------------------------------- /assets/nodes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/nodes.png -------------------------------------------------------------------------------- /assets/normalization.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/normalization.png -------------------------------------------------------------------------------- /assets/predicate_filter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/predicate_filter.png -------------------------------------------------------------------------------- /assets/predicate_filter_delegate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/predicate_filter_delegate.png -------------------------------------------------------------------------------- /assets/predicate_filter_function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/predicate_filter_function.png -------------------------------------------------------------------------------- /assets/predicate_sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/predicate_sort.png -------------------------------------------------------------------------------- /assets/predicate_sort_delegate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/predicate_sort_delegate.png -------------------------------------------------------------------------------- /assets/predicate_sort_function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/predicate_sort_function.png -------------------------------------------------------------------------------- /assets/random.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/random.png -------------------------------------------------------------------------------- /assets/range.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/range.png -------------------------------------------------------------------------------- /assets/reverse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/reverse.png -------------------------------------------------------------------------------- /assets/sort.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/sort.png -------------------------------------------------------------------------------- /assets/thumbnail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/thumbnail.png -------------------------------------------------------------------------------- /assets/vector.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RLoris/ArrayHelperDoc/ada3a37ce51ac4cac9d4249bd5b0330af06bb6f2/assets/vector.png --------------------------------------------------------------------------------