com.wallstop-studios.unity-helpers 2.0.0 → 2.0.1

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 (133) hide show
  1. package/.github/workflows/format-on-demand.yml +2 -2
  2. package/.github/workflows/markdown-json.yml +1 -1
  3. package/.github/workflows/npm-publish.yml +1 -1
  4. package/.github/workflows/prettier-autofix.yml +4 -4
  5. package/.github/workflows/yaml-format-lint.yml +1 -1
  6. package/Docs/EFFECTS_SYSTEM.md +1316 -0
  7. package/{EFFECTS_SYSTEM_TUTORIAL.md → Docs/EFFECTS_SYSTEM_TUTORIAL.md} +1 -1
  8. package/{GETTING_STARTED.md → Docs/GETTING_STARTED.md} +10 -8
  9. package/{GLOSSARY.md → Docs/GLOSSARY.md} +4 -4
  10. package/Docs/HELPER_UTILITIES.md +885 -0
  11. package/Docs/HELPER_UTILITIES.md.meta +7 -0
  12. package/{INDEX.md → Docs/INDEX.md} +107 -62
  13. package/Docs/MATH_AND_EXTENSIONS.md +1039 -0
  14. package/{RANDOM_PERFORMANCE.md → Docs/RANDOM_PERFORMANCE.md} +15 -15
  15. package/{RELATIONAL_COMPONENTS.md → Docs/RELATIONAL_COMPONENTS.md} +21 -3
  16. package/{SPATIAL_TREES_2D_GUIDE.md → Docs/SPATIAL_TREES_2D_GUIDE.md} +2 -2
  17. package/{SPATIAL_TREES_3D_GUIDE.md → Docs/SPATIAL_TREES_3D_GUIDE.md} +1 -1
  18. package/{SPATIAL_TREE_2D_PERFORMANCE.md → Docs/SPATIAL_TREE_2D_PERFORMANCE.md} +64 -64
  19. package/{SPATIAL_TREE_3D_PERFORMANCE.md → Docs/SPATIAL_TREE_3D_PERFORMANCE.md} +64 -64
  20. package/Docs/UTILITY_COMPONENTS.md +906 -0
  21. package/Docs/UTILITY_COMPONENTS.md.meta +7 -0
  22. package/Docs/VISUAL_COMPONENTS.md +337 -0
  23. package/Docs/VISUAL_COMPONENTS.md.meta +7 -0
  24. package/Editor/Sprites/AnimationCopier.cs +3 -3
  25. package/README.md +69 -62
  26. package/Runtime/AssemblyInfo.cs +2 -0
  27. package/Runtime/Core/DataStructure/KDTree3D.cs +1 -1
  28. package/Runtime/Core/DataStructure/OctTree3D.cs +1 -1
  29. package/Runtime/Core/Extension/AsyncOperationExtensions.cs +122 -0
  30. package/Runtime/Core/Serialization/ProtobufUnitySurrogates.cs +24 -29
  31. package/Runtime/Integrations/Reflex/AssemblyInfo.cs +7 -0
  32. package/Runtime/Integrations/Reflex/AssemblyInfo.cs.meta +11 -0
  33. package/Runtime/Integrations/Reflex/ContainerRelationalExtensions.cs +198 -0
  34. package/Runtime/Integrations/Reflex/ContainerRelationalExtensions.cs.meta +11 -0
  35. package/Runtime/Integrations/Reflex/RelationalComponentsInstaller.cs +86 -0
  36. package/Runtime/Integrations/Reflex/RelationalComponentsInstaller.cs.meta +11 -0
  37. package/Runtime/Integrations/Reflex/RelationalReflexSceneBootstrapper.cs +316 -0
  38. package/Runtime/Integrations/Reflex/RelationalReflexSceneBootstrapper.cs.meta +11 -0
  39. package/Runtime/Integrations/Reflex/RelationalSceneAssignmentOptions.cs +86 -0
  40. package/Runtime/Integrations/Reflex/RelationalSceneAssignmentOptions.cs.meta +11 -0
  41. package/Runtime/Integrations/Reflex/WallstopStudios.UnityHelpers.Integration.Reflex.asmdef +20 -0
  42. package/Runtime/Integrations/Reflex/WallstopStudios.UnityHelpers.Integration.Reflex.asmdef.meta +7 -0
  43. package/Runtime/Integrations/Reflex.meta +8 -0
  44. package/Runtime/Utils/ScriptableObjectSingleton.cs +1 -1
  45. package/Samples~/DI - Reflex/README.md +527 -0
  46. package/Samples~/DI - Reflex/README.md.meta +7 -0
  47. package/Samples~/DI - Reflex/Scripts/ReflexPaletteService.cs +36 -0
  48. package/Samples~/DI - Reflex/Scripts/ReflexPaletteService.cs.meta +11 -0
  49. package/Samples~/DI - Reflex/Scripts/ReflexRelationalConsumer.cs +79 -0
  50. package/Samples~/DI - Reflex/Scripts/ReflexRelationalConsumer.cs.meta +11 -0
  51. package/Samples~/DI - Reflex/Scripts/ReflexSampleInstaller.cs +30 -0
  52. package/Samples~/DI - Reflex/Scripts/ReflexSampleInstaller.cs.meta +11 -0
  53. package/Samples~/DI - Reflex/Scripts/ReflexSpawner.cs +79 -0
  54. package/Samples~/DI - Reflex/Scripts/ReflexSpawner.cs.meta +11 -0
  55. package/Samples~/DI - Reflex/Scripts/Samples.UnityHelpers.DI.Reflex.asmdef +26 -0
  56. package/Samples~/DI - Reflex/Scripts/Samples.UnityHelpers.DI.Reflex.asmdef.meta +9 -0
  57. package/Samples~/DI - Reflex/Scripts.meta +8 -0
  58. package/Samples~/DI - Reflex.meta +8 -0
  59. package/Samples~/DI - VContainer/README.md +6 -5
  60. package/Samples~/DI - Zenject/README.md +6 -5
  61. package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +29 -31
  62. package/Tests/Editor/Integrations/Reflex/ReflexIntegrationCompilationTests.cs +41 -0
  63. package/Tests/Editor/Integrations/Reflex/ReflexIntegrationCompilationTests.cs.meta +11 -0
  64. package/Tests/Editor/Integrations/Reflex/WallstopStudios.UnityHelpers.Tests.Editor.Reflex.asmdef +27 -0
  65. package/Tests/Editor/Integrations/Reflex/WallstopStudios.UnityHelpers.Tests.Editor.Reflex.asmdef.meta +7 -0
  66. package/Tests/Editor/Integrations/Reflex.meta +8 -0
  67. package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +15 -16
  68. package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs +7 -13
  69. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs +7 -11
  70. package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +19 -21
  71. package/Tests/Editor/PersistentDirectorySettingsTests.cs +0 -1
  72. package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs +0 -1
  73. package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs +2 -2
  74. package/Tests/Editor/Tools/ImageBlurToolTests.cs +1 -1
  75. package/Tests/Editor/Utils/CommonTestBase.cs +17 -0
  76. package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +1 -1
  77. package/Tests/Runtime/Extensions/AsyncOperationExtensionsTests.cs +179 -0
  78. package/Tests/Runtime/Extensions/RandomExtensionTests.cs +55 -0
  79. package/Tests/Runtime/Integrations/Reflex/RelationalComponentsReflexTests.cs +445 -0
  80. package/Tests/Runtime/Integrations/Reflex/RelationalComponentsReflexTests.cs.meta +11 -0
  81. package/Tests/Runtime/Integrations/Reflex/WallstopStudios.UnityHelpers.Tests.Runtime.Reflex.asmdef +28 -0
  82. package/Tests/Runtime/Integrations/Reflex/WallstopStudios.UnityHelpers.Tests.Runtime.Reflex.asmdef.meta +7 -0
  83. package/Tests/Runtime/Integrations/Reflex.meta +8 -0
  84. package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +24 -29
  85. package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs +8 -3
  86. package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +10 -20
  87. package/Tests/Runtime/Performance/RandomPerformanceTests.cs +1 -1
  88. package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +1 -1
  89. package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +1 -1
  90. package/Tests/Runtime/Serialization/JsonRoundtripComprehensiveTests.cs +4 -9
  91. package/Tests/Runtime/Serialization/ProtoRoundtripComprehensiveTests.cs +13 -13
  92. package/Tests/Runtime/TestUtils/CommonTestBase.cs +11 -0
  93. package/Tests/Runtime/TestUtils/ReflexTestSupport.cs +111 -0
  94. package/Tests/Runtime/TestUtils/ReflexTestSupport.cs.meta +12 -0
  95. package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +4 -4
  96. package/Tests/TestUtils.meta +8 -0
  97. package/package.json +6 -1
  98. package/EFFECTS_SYSTEM.md +0 -242
  99. package/MATH_AND_EXTENSIONS.md +0 -316
  100. /package/{CHANGELOG.md → Docs/CHANGELOG.md} +0 -0
  101. /package/{CHANGELOG.md.meta → Docs/CHANGELOG.md.meta} +0 -0
  102. /package/{CONTRIBUTING.md → Docs/CONTRIBUTING.md} +0 -0
  103. /package/{CONTRIBUTING.md.meta → Docs/CONTRIBUTING.md.meta} +0 -0
  104. /package/{DATA_STRUCTURES.md → Docs/DATA_STRUCTURES.md} +0 -0
  105. /package/{DATA_STRUCTURES.md.meta → Docs/DATA_STRUCTURES.md.meta} +0 -0
  106. /package/{EDITOR_TOOLS_GUIDE.md → Docs/EDITOR_TOOLS_GUIDE.md} +0 -0
  107. /package/{EDITOR_TOOLS_GUIDE.md.meta → Docs/EDITOR_TOOLS_GUIDE.md.meta} +0 -0
  108. /package/{EFFECTS_SYSTEM.md.meta → Docs/EFFECTS_SYSTEM.md.meta} +0 -0
  109. /package/{EFFECTS_SYSTEM_TUTORIAL.md.meta → Docs/EFFECTS_SYSTEM_TUTORIAL.md.meta} +0 -0
  110. /package/{GETTING_STARTED.md.meta → Docs/GETTING_STARTED.md.meta} +0 -0
  111. /package/{GLOSSARY.md.meta → Docs/GLOSSARY.md.meta} +0 -0
  112. /package/{HULLS.md → Docs/HULLS.md} +0 -0
  113. /package/{HULLS.md.meta → Docs/HULLS.md.meta} +0 -0
  114. /package/{INDEX.md.meta → Docs/INDEX.md.meta} +0 -0
  115. /package/{LICENSE.md → Docs/LICENSE.md} +0 -0
  116. /package/{LICENSE.md.meta → Docs/LICENSE.md.meta} +0 -0
  117. /package/{MATH_AND_EXTENSIONS.md.meta → Docs/MATH_AND_EXTENSIONS.md.meta} +0 -0
  118. /package/{RANDOM_PERFORMANCE.md.meta → Docs/RANDOM_PERFORMANCE.md.meta} +0 -0
  119. /package/{REFLECTION_HELPERS.md → Docs/REFLECTION_HELPERS.md} +0 -0
  120. /package/{REFLECTION_HELPERS.md.meta → Docs/REFLECTION_HELPERS.md.meta} +0 -0
  121. /package/{RELATIONAL_COMPONENTS.md.meta → Docs/RELATIONAL_COMPONENTS.md.meta} +0 -0
  122. /package/{SERIALIZATION.md → Docs/SERIALIZATION.md} +0 -0
  123. /package/{SERIALIZATION.md.meta → Docs/SERIALIZATION.md.meta} +0 -0
  124. /package/{SINGLETONS.md → Docs/SINGLETONS.md} +0 -0
  125. /package/{SINGLETONS.md.meta → Docs/SINGLETONS.md.meta} +0 -0
  126. /package/{SPATIAL_TREES_2D_GUIDE.md.meta → Docs/SPATIAL_TREES_2D_GUIDE.md.meta} +0 -0
  127. /package/{SPATIAL_TREES_3D_GUIDE.md.meta → Docs/SPATIAL_TREES_3D_GUIDE.md.meta} +0 -0
  128. /package/{SPATIAL_TREE_2D_PERFORMANCE.md.meta → Docs/SPATIAL_TREE_2D_PERFORMANCE.md.meta} +0 -0
  129. /package/{SPATIAL_TREE_3D_PERFORMANCE.md.meta → Docs/SPATIAL_TREE_3D_PERFORMANCE.md.meta} +0 -0
  130. /package/{SPATIAL_TREE_SEMANTICS.md → Docs/SPATIAL_TREE_SEMANTICS.md} +0 -0
  131. /package/{SPATIAL_TREE_SEMANTICS.md.meta → Docs/SPATIAL_TREE_SEMANTICS.md.meta} +0 -0
  132. /package/{THIRD_PARTY_NOTICES.md → Docs/THIRD_PARTY_NOTICES.md} +0 -0
  133. /package/{THIRD_PARTY_NOTICES.md.meta → Docs/THIRD_PARTY_NOTICES.md.meta} +0 -0
@@ -33,34 +33,34 @@ This document contains performance benchmarks for the 3D spatial tree implementa
33
33
 
34
34
  | Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
35
35
  | ----------------- | ------------------- | --------------------- | ---------- | ---------- |
36
- | 1,000,000 entries | 2 (0.462s) | 2 (0.334s) | 4 (0.238s) | 2 (0.415s) |
36
+ | 1,000,000 entries | 2 (0.402s) | 3 (0.313s) | 2 (0.430s) | 2 (0.373s) |
37
37
 
38
38
  ##### Elements In Range
39
39
 
40
40
  | Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
41
41
  | --------------------------- | ------------------- | --------------------- | --------- | ------- |
42
- | Full (~span/2) (r=49.50) | 17 | 20 | 32 | 15 |
43
- | Half (~span/4) (r=24.75) | 127 | 157 | 244 | 159 |
44
- | Quarter (~span/8) (r=12.38) | 934 | 1,205 | 1,662 | 1,521 |
45
- | Tiny (~span/1000) (r=1) | 23,474 | 23,256 | 136,339 | 76,528 |
42
+ | Full (~span/2) (r=49.50) | 17 | 20 | 31 | 15 |
43
+ | Half (~span/4) (r=24.75) | 127 | 153 | 215 | 150 |
44
+ | Quarter (~span/8) (r=12.38) | 934 | 1,227 | 1,669 | 1,514 |
45
+ | Tiny (~span/1000) (r=1) | 23,479 | 23,665 | 138,186 | 76,631 |
46
46
 
47
47
  ##### Get Elements In Bounds
48
48
 
49
49
  | Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
50
50
  | -------------------------------- | ------------------- | --------------------- | --------- | ------- |
51
- | Full (size≈99.00x99.00x99.00) | 32 | 38 | 183 | 20 |
52
- | Half (size≈49.50x49.50x49.50) | 38 | 44 | 1,296 | 269 |
53
- | Quarter (size≈24.75x24.75x24.75) | 39 | 45 | 4,051 | 2,514 |
54
- | Unit (size=1) | 40 | 47 | 176,851 | 71,895 |
51
+ | Full (size≈99.00x99.00x99.00) | 33 | 35 | 176 | 20 |
52
+ | Half (size≈49.50x49.50x49.50) | 38 | 41 | 1,247 | 262 |
53
+ | Quarter (size≈24.75x24.75x24.75) | 38 | 43 | 3,959 | 2,520 |
54
+ | Unit (size=1) | 39 | 43 | 183,582 | 76,235 |
55
55
 
56
56
  ##### Approximate Nearest Neighbors
57
57
 
58
58
  | Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
59
59
  | ----------------------------- | ------------------- | --------------------- | --------- | ------- |
60
- | 500 neighbors | 5,917 | 10,145 | 2,299 | 305 |
61
- | 100 neighbors | 65,265 | 72,176 | 10,753 | 3,343 |
62
- | 10 neighbors | 406,365 | 415,717 | 15,601 | 7,643 |
63
- | 1 neighbor | 550,998 | 479,367 | 19,376 | 8,299 |
60
+ | 500 neighbors | 5,895 | 10,193 | 2,302 | 305 |
61
+ | 100 neighbors | 65,079 | 70,085 | 10,904 | 3,349 |
62
+ | 10 neighbors | 403,144 | 416,692 | 16,000 | 7,663 |
63
+ | 1 neighbor | 544,211 | 412,407 | 19,831 | 8,321 |
64
64
 
65
65
  #### **100,000 entries**
66
66
 
@@ -68,34 +68,34 @@ This document contains performance benchmarks for the 3D spatial tree implementa
68
68
 
69
69
  | Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
70
70
  | --------------- | ------------------- | --------------------- | ----------- | ----------- |
71
- | 100,000 entries | 35 (0.029s) | 48 (0.021s) | 66 (0.015s) | 41 (0.024s) |
71
+ | 100,000 entries | 34 (0.029s) | 47 (0.021s) | 64 (0.015s) | 43 (0.023s) |
72
72
 
73
73
  ##### Elements In Range
74
74
 
75
75
  | Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
76
76
  | --------------------------- | ------------------- | --------------------- | --------- | ------- |
77
- | Full (~span/2) (r=49.50) | 328 | 476 | 767 | 198 |
78
- | Half (~span/4) (r=24.75) | 1,000 | 1,424 | 2,024 | 856 |
79
- | Quarter (~span/8) (r=12.38) | 2,519 | 3,929 | 5,943 | 3,444 |
80
- | Tiny (~span/1000) (r=1) | 26,289 | 29,307 | 174,966 | 101,213 |
77
+ | Full (~span/2) (r=49.50) | 336 | 485 | 770 | 199 |
78
+ | Half (~span/4) (r=24.75) | 1,019 | 1,445 | 2,040 | 853 |
79
+ | Quarter (~span/8) (r=12.38) | 2,567 | 3,993 | 5,989 | 3,443 |
80
+ | Tiny (~span/1000) (r=1) | 26,745 | 29,804 | 176,265 | 101,035 |
81
81
 
82
82
  ##### Get Elements In Bounds
83
83
 
84
84
  | Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
85
85
  | ------------------------------- | ------------------- | --------------------- | --------- | ------- |
86
- | Full (size≈99.00x99.00x9) | 636 | 764 | 2,638 | 349 |
87
- | Half (size≈49.50x49.50x4.5) | 741 | 903 | 9,365 | 3,477 |
88
- | Quarter (size≈24.75x24.75x2.25) | 755 | 933 | 48,138 | 24,155 |
89
- | Unit (size=1) | 759 | 940 | 246,230 | 101,413 |
86
+ | Full (size≈99.00x99.00x9) | 572 | 718 | 2,636 | 324 |
87
+ | Half (size≈49.50x49.50x4.5) | 662 | 837 | 9,370 | 3,498 |
88
+ | Quarter (size≈24.75x24.75x2.25) | 674 | 861 | 47,400 | 24,236 |
89
+ | Unit (size=1) | 676 | 872 | 246,015 | 101,313 |
90
90
 
91
91
  ##### Approximate Nearest Neighbors
92
92
 
93
93
  | Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
94
94
  | ----------------------------- | ------------------- | --------------------- | --------- | ------- |
95
- | 500 neighbors | 6,677 | 12,019 | 1,631 | 271 |
96
- | 100 neighbors | 38,824 | 44,184 | 9,263 | 2,236 |
97
- | 10 neighbors | 449,797 | 330,300 | 19,167 | 7,478 |
98
- | 1 neighbor | 426,499 | 310,941 | 30,037 | 11,896 |
95
+ | 500 neighbors | 6,708 | 11,996 | 1,629 | 271 |
96
+ | 100 neighbors | 38,469 | 42,192 | 9,227 | 2,237 |
97
+ | 10 neighbors | 420,942 | 218,972 | 19,122 | 7,481 |
98
+ | 1 neighbor | 459,844 | 327,816 | 29,943 | 11,842 |
99
99
 
100
100
  #### **10,000 entries**
101
101
 
@@ -103,34 +103,34 @@ This document contains performance benchmarks for the 3D spatial tree implementa
103
103
 
104
104
  | Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
105
105
  | -------------- | ------------------- | --------------------- | ------------ | ------------ |
106
- | 10,000 entries | 466 (0.002s) | 473 (0.002s) | 615 (0.002s) | 450 (0.002s) |
106
+ | 10,000 entries | 378 (0.003s) | 467 (0.002s) | 585 (0.002s) | 442 (0.002s) |
107
107
 
108
108
  ##### Elements In Range
109
109
 
110
110
  | Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
111
111
  | --------------------------- | ------------------- | --------------------- | --------- | ------- |
112
- | Full (~span/2) (r=49.50) | 4,683 | 4,522 | 8,927 | 2,011 |
113
- | Half (~span/4) (r=24.75) | 5,822 | 6,362 | 8,898 | 3,899 |
114
- | Quarter (~span/8) (r=12.38) | 5,798 | 6,791 | 11,108 | 7,083 |
115
- | Tiny (~span/1000) (r=1) | 40,628 | 38,481 | 218,875 | 158,338 |
112
+ | Full (~span/2) (r=49.50) | 4,775 | 4,609 | 8,940 | 2,207 |
113
+ | Half (~span/4) (r=24.75) | 5,940 | 6,484 | 8,824 | 4,285 |
114
+ | Quarter (~span/8) (r=12.38) | 5,911 | 6,909 | 11,123 | 7,540 |
115
+ | Tiny (~span/1000) (r=1) | 41,201 | 39,120 | 218,463 | 160,263 |
116
116
 
117
117
  ##### Get Elements In Bounds
118
118
 
119
119
  | Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
120
120
  | ------------------------------ | ------------------- | --------------------- | --------- | ------- |
121
- | Full (size≈99.00x9x9) | 6,478 | 6,481 | 26,295 | 3,562 |
122
- | Half (size≈49.50x4.5x4.5) | 7,367 | 7,417 | 46,056 | 37,401 |
123
- | Quarter (size≈24.75x2.25x2.25) | 7,531 | 7,578 | 169,110 | 120,511 |
124
- | Unit (size=1) | 7,612 | 7,626 | 325,145 | 161,706 |
121
+ | Full (size≈99.00x9x9) | 5,944 | 5,974 | 26,136 | 3,587 |
122
+ | Half (size≈49.50x4.5x4.5) | 6,709 | 6,761 | 46,124 | 37,467 |
123
+ | Quarter (size≈24.75x2.25x2.25) | 6,843 | 6,878 | 167,117 | 120,365 |
124
+ | Unit (size=1) | 6,935 | 6,923 | 313,373 | 161,932 |
125
125
 
126
126
  ##### Approximate Nearest Neighbors
127
127
 
128
128
  | Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
129
129
  | ----------------------------- | ------------------- | --------------------- | --------- | ------- |
130
- | 500 neighbors | 9,732 | 10,597 | 637 | 185 |
131
- | 100 neighbors | 51,320 | 69,698 | 5,914 | 2,235 |
132
- | 10 neighbors | 435,223 | 421,196 | 27,006 | 12,804 |
133
- | 1 neighbor | 664,302 | 592,441 | 45,255 | 21,503 |
130
+ | 500 neighbors | 9,797 | 10,570 | 636 | 185 |
131
+ | 100 neighbors | 48,860 | 69,836 | 5,909 | 2,233 |
132
+ | 10 neighbors | 463,086 | 416,036 | 26,962 | 12,808 |
133
+ | 1 neighbor | 622,715 | 624,381 | 45,121 | 21,542 |
134
134
 
135
135
  #### **1,000 entries**
136
136
 
@@ -138,34 +138,34 @@ This document contains performance benchmarks for the 3D spatial tree implementa
138
138
 
139
139
  | Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
140
140
  | ------------- | ------------------- | --------------------- | -------------- | -------------- |
141
- | 1,000 entries | 3,617 (0.000s) | 5,141 (0.000s) | 3,954 (0.000s) | 4,130 (0.000s) |
141
+ | 1,000 entries | 3,828 (0.000s) | 1,431 (0.001s) | 4,177 (0.000s) | 4,058 (0.000s) |
142
142
 
143
143
  ##### Elements In Range
144
144
 
145
145
  | Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
146
146
  | -------------------------- | ------------------- | --------------------- | --------- | ------- |
147
- | Full (~span/2) (r=4.5) | 11,802 | 13,903 | 24,582 | 21,692 |
148
- | Half (~span/4) (r=2.25) | 51,580 | 61,355 | 123,544 | 144,993 |
149
- | Quarter (~span/8) (r=1.13) | 61,600 | 63,517 | 337,985 | 224,573 |
150
- | Tiny (~span/1000) (r=1) | 61,597 | 63,370 | 337,192 | 215,561 |
147
+ | Full (~span/2) (r=4.5) | 12,017 | 13,682 | 24,546 | 21,261 |
148
+ | Half (~span/4) (r=2.25) | 52,394 | 62,385 | 124,579 | 149,723 |
149
+ | Quarter (~span/8) (r=1.13) | 62,668 | 64,358 | 339,716 | 228,054 |
150
+ | Tiny (~span/1000) (r=1) | 62,670 | 64,483 | 340,166 | 228,438 |
151
151
 
152
152
  ##### Get Elements In Bounds
153
153
 
154
154
  | Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
155
155
  | ----------------------------- | ------------------- | --------------------- | --------- | ------- |
156
- | Full (size≈9x9x9) | 59,706 | 64,466 | 323,948 | 35,609 |
157
- | Half (size≈4.5x4.5x4.5) | 65,193 | 71,417 | 199,275 | 177,711 |
158
- | Quarter (size≈2.25x2.25x2.25) | 65,932 | 73,139 | 502,862 | 234,032 |
159
- | Unit (size=1) | 65,955 | 74,000 | 502,591 | 234,547 |
156
+ | Full (size≈9x9x9) | 54,554 | 59,700 | 321,423 | 35,729 |
157
+ | Half (size≈4.5x4.5x4.5) | 59,218 | 65,748 | 199,393 | 177,785 |
158
+ | Quarter (size≈2.25x2.25x2.25) | 59,744 | 67,219 | 501,086 | 234,106 |
159
+ | Unit (size=1) | 59,712 | 68,104 | 475,751 | 234,738 |
160
160
 
161
161
  ##### Approximate Nearest Neighbors
162
162
 
163
163
  | Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
164
164
  | ----------------------------- | ------------------- | --------------------- | --------- | ------- |
165
- | 500 neighbors | 15,674 | 14,692 | 3,264 | 621 |
166
- | 100 neighbors | 70,092 | 63,853 | 15,646 | 4,137 |
167
- | 10 neighbors | 436,821 | 416,753 | 74,823 | 32,560 |
168
- | 1 neighbor | 709,835 | 663,405 | 84,669 | 43,468 |
165
+ | 500 neighbors | 15,553 | 14,623 | 3,259 | 621 |
166
+ | 100 neighbors | 70,256 | 65,840 | 15,632 | 4,130 |
167
+ | 10 neighbors | 439,459 | 413,712 | 74,432 | 32,538 |
168
+ | 1 neighbor | 691,682 | 657,381 | 84,606 | 43,414 |
169
169
 
170
170
  #### **100 entries**
171
171
 
@@ -173,33 +173,33 @@ This document contains performance benchmarks for the 3D spatial tree implementa
173
173
 
174
174
  | Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
175
175
  | ------------ | ------------------- | --------------------- | --------------- | --------------- |
176
- | 100 entries | 35,714 (0.000s) | 32,051 (0.000s) | 27,397 (0.000s) | 21,413 (0.000s) |
176
+ | 100 entries | 39,370 (0.000s) | 33,003 (0.000s) | 26,246 (0.000s) | 20,746 (0.000s) |
177
177
 
178
178
  ##### Elements In Range
179
179
 
180
180
  | Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
181
181
  | -------------------------- | ------------------- | --------------------- | --------- | ------- |
182
- | Full (~span/2) (r=4.5) | 123,749 | 124,911 | 295,441 | 173,986 |
183
- | Half (~span/4) (r=2.25) | 144,742 | 146,831 | 317,894 | 305,105 |
184
- | Quarter (~span/8) (r=1.13) | 144,970 | 148,219 | 392,233 | 422,688 |
185
- | Tiny (~span/1000) (r=1) | 144,979 | 148,160 | 394,402 | 397,230 |
182
+ | Full (~span/2) (r=4.5) | 126,263 | 127,269 | 296,006 | 195,890 |
183
+ | Half (~span/4) (r=2.25) | 147,197 | 149,386 | 318,618 | 311,821 |
184
+ | Quarter (~span/8) (r=1.13) | 147,516 | 150,720 | 393,623 | 420,109 |
185
+ | Tiny (~span/1000) (r=1) | 147,471 | 150,688 | 395,500 | 405,202 |
186
186
 
187
187
  ##### Get Elements In Bounds
188
188
 
189
189
  | Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
190
190
  | ----------------------- | ------------------- | --------------------- | --------- | ------- |
191
- | Full (size≈9x4x1) | 542,170 | 541,750 | 1,808,352 | 327,419 |
192
- | Half (size≈4.5x2x1) | 567,151 | 574,657 | 499,944 | 457,996 |
193
- | Quarter (size≈2.25x1x1) | 581,138 | 575,322 | 777,105 | 728,444 |
194
- | Unit (size=1) | 580,654 | 547,510 | 776,427 | 729,736 |
191
+ | Full (size≈9x4x1) | 501,997 | 505,246 | 1,807,410 | 329,640 |
192
+ | Half (size≈4.5x2x1) | 498,779 | 534,318 | 494,122 | 456,745 |
193
+ | Quarter (size≈2.25x1x1) | 537,627 | 536,488 | 776,653 | 726,561 |
194
+ | Unit (size=1) | 539,253 | 536,541 | 776,990 | 721,307 |
195
195
 
196
196
  ##### Approximate Nearest Neighbors
197
197
 
198
198
  | Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
199
199
  | ----------------------------- | ------------------- | --------------------- | --------- | ------- |
200
- | 100 neighbors (max) | 92,016 | 88,604 | 69,691 | 65,613 |
201
- | 10 neighbors | 622,325 | 548,943 | 105,436 | 99,977 |
202
- | 1 neighbor | 876,886 | 640,575 | 172,804 | 210,070 |
200
+ | 100 neighbors (max) | 92,014 | 88,119 | 69,346 | 62,009 |
201
+ | 10 neighbors | 617,049 | 514,543 | 105,140 | 100,817 |
202
+ | 1 neighbor | 872,834 | 636,275 | 172,544 | 221,636 |
203
203
 
204
204
  <!-- tabs:end -->
205
205
  <!-- SPATIAL_TREE_3D_BENCHMARKS_END -->