com.wallstop-studios.unity-helpers 2.0.0-rc81.9 → 2.0.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/.editorconfig +1 -1
- package/.gitattributes +1 -1
- package/.githooks/pre-commit +31 -5
- package/.githooks/pre-push +50 -0
- package/.github/dependabot.yml +24 -2
- package/.github/scripts/check-markdown-links.ps1 +77 -0
- package/.github/scripts/check_markdown_links.py +89 -0
- package/.github/scripts/check_markdown_url_encoding.py +74 -0
- package/.github/scripts/validate_markdown_links.py +194 -0
- package/.github/workflows/csharpier-autofix.yml +152 -0
- package/.github/workflows/format-on-demand.yml +305 -0
- package/.github/workflows/lint-doc-links.yml +8 -5
- package/.github/workflows/markdown-json.yml +6 -2
- package/.github/workflows/prettier-autofix.yml +195 -0
- package/.github/workflows/update-dotnet-tools.yml +80 -0
- package/.github/workflows/yaml-format-lint.yml +41 -0
- package/.lychee.toml +4 -4
- package/.markdownlint.jsonc +21 -0
- package/.pre-commit-config.yaml +11 -3
- package/.yamllint.yaml +31 -0
- package/AGENTS.md +5 -1
- package/CHANGELOG.md +11 -0
- package/CONTRIBUTING.md +49 -0
- package/CONTRIBUTING.md.meta +7 -0
- package/EDITOR_TOOLS_GUIDE.md +4 -0
- package/Editor/AnimationEventEditor.cs +337 -160
- package/Editor/Core/Helper/AnimationEventHelpers.cs +178 -152
- package/Editor/CustomEditors/PersistentDirectoryGUI.cs +20 -11
- package/Editor/CustomEditors/TexturePlatformOverrideEntryDrawer.cs +11 -2
- package/Editor/FitTextureSizeWindow.cs +43 -19
- package/Editor/PersistentDirectorySettings.cs +64 -12
- package/Editor/PrefabChecker.cs +72 -5
- package/Editor/Sprites/AnimationCopier.cs +132 -56
- package/Editor/Sprites/AnimationCreator.cs +63 -22
- package/Editor/Sprites/AnimationViewerWindow.cs +42 -6
- package/Editor/Sprites/TexturePlatformNameHelper.cs +50 -39
- package/Editor/Sprites/TextureResizerWizard.cs +23 -1
- package/Editor/Sprites/TextureSettingsApplierWindow.cs +148 -85
- package/Editor/Tools/ImageBlurTool.cs +81 -10
- package/Editor/Utils/EditorUi.cs +1 -1
- package/Editor/Utils/ScriptableObjectSingletonCreator.cs +1 -1
- package/GETTING_STARTED.md +40 -56
- package/RANDOM_PERFORMANCE.md +12 -12
- package/README.md +395 -2407
- package/RELATIONAL_COMPONENTS.md +92 -83
- package/Runtime/AssemblyInfo.cs +2 -0
- package/Runtime/Core/Attributes/NotNullAttribute.cs +1 -3
- package/Runtime/Core/Attributes/RelationalComponentAssigner.cs +50 -5
- package/Runtime/Core/DataStructure/CyclicBuffer.cs +0 -1
- package/Runtime/Core/Extension/RandomExtensions.cs +68 -0
- package/Runtime/Core/Extension/WallstopStudiosLogger.cs +16 -0
- package/Runtime/Core/Helper/Partials/ObjectHelpers.cs +4 -1
- package/Runtime/Core/Helper/ReflectionHelpers.cs +21 -10
- package/Runtime/Core/Helper/SpriteHelpers.cs +3 -1
- package/Runtime/Core/Helper/UnityMainThreadDispatcher.cs +45 -1
- package/Runtime/Core/Serialization/JsonConverters/GameObjectConverter.cs +13 -5
- package/Runtime/Core/Serialization/JsonConverters/ResolutionConverter.cs +1 -1
- package/Runtime/Core/Serialization/JsonConverters/TypeConverter.cs +1 -1
- package/Runtime/Core/Serialization/Serializer.cs +101 -0
- package/Runtime/Integrations/VContainer/AssemblyInfo.cs +9 -0
- package/Runtime/Integrations/VContainer/AssemblyInfo.cs.meta +3 -0
- package/Runtime/Integrations/VContainer/ObjectResolverRelationalExtensions.cs +96 -0
- package/Runtime/Integrations/VContainer/RelationalComponentEntryPoint.cs +90 -10
- package/Runtime/Integrations/VContainer/RelationalComponentsBuilderExtensions.cs +13 -1
- package/Runtime/Integrations/VContainer/RelationalObjectPools.cs +114 -0
- package/Runtime/Integrations/VContainer/RelationalObjectPools.cs.meta +11 -0
- package/Runtime/Integrations/VContainer/RelationalSceneAssignmentOptions.cs +16 -4
- package/Runtime/Integrations/VContainer/RelationalSceneLoadListener.cs +241 -0
- package/Runtime/Integrations/VContainer/RelationalSceneLoadListener.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/AssemblyInfo.cs +9 -0
- package/Runtime/Integrations/Zenject/AssemblyInfo.cs.meta +3 -0
- package/Runtime/Integrations/Zenject/DiContainerRelationalExtensions.cs +69 -2
- package/Runtime/Integrations/Zenject/RelationalComponentSceneInitializer.cs +89 -12
- package/Runtime/Integrations/Zenject/RelationalComponentsInstaller.cs +23 -1
- package/Runtime/Integrations/Zenject/RelationalMemoryPools.cs +44 -0
- package/Runtime/Integrations/Zenject/RelationalMemoryPools.cs.meta +11 -0
- package/Runtime/Integrations/Zenject/RelationalSceneAssignmentOptions.cs +16 -10
- package/Runtime/Integrations/Zenject/RelationalSceneLoadListener.cs +243 -0
- package/Runtime/Integrations/Zenject/RelationalSceneLoadListener.cs.meta +11 -0
- package/Runtime/Tags/AttributeMetadataCache.cs +1 -4
- package/Runtime/Utils/Buffers.cs +4 -4
- package/Runtime/Utils/ScriptableObjectSingleton.cs +0 -1
- package/Runtime/Utils/SetTextureImportData.cs +3 -1
- package/Runtime/Utils/TextureScale.cs +10 -2
- package/Runtime/Visuals/UGUI/EnhancedImage.cs +6 -0
- package/Runtime/Visuals/UIToolkit/LayeredImage.cs +4 -1
- package/SERIALIZATION.md +15 -0
- package/SPATIAL_TREE_2D_PERFORMANCE.md +85 -82
- package/SPATIAL_TREE_3D_PERFORMANCE.md +94 -91
- package/Samples~/DI - VContainer/README.md +232 -51
- package/Samples~/DI - VContainer/Scripts/GameLifetimeScope.cs +22 -4
- package/Samples~/DI - VContainer/Scripts/RelationalConsumer.cs +5 -2
- package/Samples~/DI - VContainer/Scripts/Spawner.cs +113 -4
- package/Samples~/DI - Zenject/README.md +217 -53
- package/Samples~/DI - Zenject/Scripts/RelationalConsumer.cs +3 -0
- package/Samples~/DI - Zenject/Scripts/RelationalConsumerPool.cs +37 -0
- package/Samples~/DI - Zenject/Scripts/RelationalConsumerPool.cs.meta +12 -0
- package/Samples~/DI - Zenject/Scripts/SpawnerZenject.cs +74 -3
- package/Samples~/Random - PRNG/README.md +2 -1
- package/Samples~/Relational Components - Basic/README.md +3 -1
- package/Samples~/Serialization - JSON/README.md +2 -1
- package/Samples~/Spatial Structures - 2D and 3D/README.md +2 -1
- package/Samples~/UGUI - EnhancedImage/README.md +2 -1
- package/Samples~/UI Toolkit - MultiFile Selector (Editor)/README.md +2 -1
- package/THIRD_PARTY_NOTICES.md +1 -1
- package/Tests/Editor/Attributes/AnimationEventHelpersTests.cs +16 -0
- package/Tests/Editor/Core/Attributes/RelationalComponentAssignerTests.cs +3 -3
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalEntryPointTests.cs +6 -2
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs +170 -0
- package/Tests/Editor/Integrations/VContainer/VContainerRelationalHelpersTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/VContainer/WallstopStudios.UnityHelpers.Tests.Editor.VContainer.asmdef +2 -1
- package/Tests/Editor/Integrations/Zenject/WallstopStudios.UnityHelpers.Tests.Editor.Zenject.asmdef +3 -2
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs +131 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalHelpersTests.cs.meta +11 -0
- package/Tests/Editor/Integrations/Zenject/ZenjectRelationalInitializerTests.cs +6 -2
- package/Tests/Editor/PersistentDirectorySettingsTests.cs +59 -0
- package/Tests/Editor/PersistentDirectorySettingsTests.cs.meta +11 -0
- package/Tests/Editor/PrefabCheckerReportTests.cs +32 -0
- package/Tests/Editor/PrefabCheckerReportTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs +64 -0
- package/Tests/Editor/Sprites/AnimationCopierFilterTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/AnimationCopierWindowTests.cs +1 -1
- package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs +38 -0
- package/Tests/Editor/Sprites/AnimationViewerWindowTests.cs.meta +11 -0
- package/Tests/Editor/Sprites/ScriptableSpriteAtlasEditorTests.cs +1 -1
- package/Tests/Editor/Sprites/SpriteCropperAdditionalTests.cs +12 -12
- package/Tests/Editor/Sprites/SpriteCropperTests.cs +9 -9
- package/Tests/Editor/Sprites/SpritePivotAdjusterTests.cs +3 -3
- package/Tests/Editor/Sprites/TexturePlatformNameHelperTests.cs +18 -0
- package/Tests/Editor/Sprites/TextureResizerWizardTests.cs +5 -5
- package/Tests/Editor/Sprites/TextureSettingsApplierAPITests.cs +3 -3
- package/Tests/Editor/Sprites/TextureSettingsApplierWizardAdditionalTests.cs +4 -4
- package/Tests/Editor/Sprites/TextureSettingsApplierWizardTests.cs +4 -4
- package/Tests/Editor/Tools/ImageBlurToolTests.cs +22 -110
- package/Tests/Editor/Utils/CommonTestBase.cs +43 -1
- package/Tests/Editor/Utils/ScriptableObjectSingletonCreatorTests.cs +5 -5
- package/Tests/Editor/Windows/FitTextureSizeWindowTests.cs +66 -74
- package/Tests/Runtime/Attributes/RelationalComponentInitializerTests.cs +4 -15
- package/Tests/Runtime/DataStructures/SpatialTree3DBoundsConsistencyTests.cs +29 -29
- package/Tests/Runtime/Integrations/VContainer/RelationalComponentsVContainerTests.cs +259 -218
- package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs +86 -0
- package/Tests/Runtime/Integrations/VContainer/RelationalObjectPoolsVContainerTests.cs.meta +11 -0
- package/Tests/Runtime/Integrations/Zenject/RelationalComponentsZenjectTests.cs +255 -227
- package/Tests/Runtime/Performance/SpatialTree2DPerformanceTests.cs +5 -0
- package/Tests/Runtime/Performance/SpatialTree3DPerformanceTests.cs +3 -0
- package/Tests/Runtime/Serialization/JsonConverterAdditionalTests.cs +30 -0
- package/Tests/Runtime/Serialization/JsonConverterAdditionalTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/JsonConverterTests.cs +8 -12
- package/Tests/Runtime/Serialization/JsonSerializationTest.cs +16 -5
- package/Tests/Runtime/Serialization/SerializerAdditionalTests.cs +12 -0
- package/Tests/Runtime/Serialization/SerializerFileIoTests.cs +105 -0
- package/Tests/Runtime/Serialization/SerializerFileIoTests.cs.meta +11 -0
- package/Tests/Runtime/Serialization/UnityEngineObjectJsonTests.cs +247 -0
- package/Tests/Runtime/Serialization/UnityEngineObjectJsonTests.cs.meta +11 -0
- package/Tests/Runtime/TestUtils/CommonTestBase.cs +88 -0
- package/Tests/Runtime/Utils/CoroutineHandlerTests.cs +1 -1
- package/Tests/Runtime/Utils/LZMAComprehensiveTests.cs +1 -1
- package/Tests/Runtime/Utils/LZMATests.cs +1 -1
- package/Tests/Runtime/Utils/MatchColliderToSpriteTests.cs +1 -1
- package/Tests/Runtime/Visuals/EnhancedImageTests.cs +25 -56
- package/Tests/Runtime/Visuals/VisualsTestHelpers.cs +1 -8
- package/package-lock.json.meta +7 -0
- package/package.json +8 -4
- package/scripts/check-eol.ps1 +4 -5
- package/scripts/lint-tests.ps1 +156 -0
- package/scripts/lint-tests.ps1.meta +7 -0
- package/scripts/normalize-eol.ps1 +6 -9
- package/.github/workflows/csharpier.yml +0 -135
|
@@ -21,77 +21,80 @@ This document contains performance benchmarks for the 2D spatial tree implementa
|
|
|
21
21
|
## Performance Benchmarks
|
|
22
22
|
|
|
23
23
|
<!-- SPATIAL_TREE_BENCHMARKS_START -->
|
|
24
|
+
|
|
25
|
+
### Datasets
|
|
26
|
+
|
|
24
27
|
<!-- tabs:start -->
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
#### **1,000,000 entries**
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
##### Construction
|
|
29
32
|
|
|
30
33
|
| Construction | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
31
34
|
| ----------------- | ------------------- | --------------------- | ---------- | ---------- |
|
|
32
|
-
| 1,000,000 entries | 4 (0.
|
|
35
|
+
| 1,000,000 entries | 4 (0.242s) | 6 (0.153s) | 4 (0.221s) | 2 (0.383s) |
|
|
33
36
|
|
|
34
|
-
|
|
37
|
+
##### Elements In Range
|
|
35
38
|
|
|
36
39
|
| Elements In Range | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
37
40
|
| --------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
38
41
|
| Full (~span/2) (r=499.5) | 59 | 58 | 56 | 7 |
|
|
39
|
-
| Half (~span/4) (r=249.8) |
|
|
40
|
-
| Quarter (~span/8) (r=124.9) | 946 |
|
|
41
|
-
| Tiny (~span/1000) (r=1) |
|
|
42
|
+
| Half (~span/4) (r=249.8) | 237 | 238 | 208 | 28 |
|
|
43
|
+
| Quarter (~span/8) (r=124.9) | 946 | 946 | 815 | 119 |
|
|
44
|
+
| Tiny (~span/1000) (r=1) | 103,296 | 105,692 | 143,494 | 97,759 |
|
|
42
45
|
|
|
43
|
-
|
|
46
|
+
##### Get Elements In Bounds
|
|
44
47
|
|
|
45
48
|
| Get Elements In Bounds | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
46
49
|
| -------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
47
|
-
| Full (size=999.0x999.0) |
|
|
48
|
-
| Half (size=499.5x499.5) | 1,
|
|
49
|
-
| Quarter (size=249.8x249.8) | 7,
|
|
50
|
-
| Unit (size=1) |
|
|
50
|
+
| Full (size=999.0x999.0) | 317 | 353 | 336 | 17 |
|
|
51
|
+
| Half (size=499.5x499.5) | 1,857 | 1,849 | 1,219 | 72 |
|
|
52
|
+
| Quarter (size=249.8x249.8) | 7,448 | 7,335 | 3,828 | 377 |
|
|
53
|
+
| Unit (size=1) | 148,705 | 152,996 | 197,558 | 112,830 |
|
|
51
54
|
|
|
52
|
-
|
|
55
|
+
##### Approximate Nearest Neighbors
|
|
53
56
|
|
|
54
57
|
| Approximate Nearest Neighbors | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
55
58
|
| ----------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
56
|
-
| 500 neighbors | 8,
|
|
57
|
-
| 100 neighbors |
|
|
58
|
-
| 10 neighbors |
|
|
59
|
-
| 1 neighbor |
|
|
59
|
+
| 500 neighbors | 8,468 | 16,899 | 12,711 | 70,133 |
|
|
60
|
+
| 100 neighbors | 73,055 | 75,462 | 79,088 | 177,523 |
|
|
61
|
+
| 10 neighbors | 402,113 | 359,757 | 236,395 | 283,695 |
|
|
62
|
+
| 1 neighbor | 517,286 | 507,752 | 293,106 | 297,633 |
|
|
60
63
|
|
|
61
|
-
|
|
64
|
+
#### **100,000 entries**
|
|
62
65
|
|
|
63
|
-
|
|
66
|
+
##### Construction
|
|
64
67
|
|
|
65
68
|
| Construction | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
66
69
|
| --------------- | ------------------- | --------------------- | ----------- | ----------- |
|
|
67
|
-
| 100,000 entries |
|
|
70
|
+
| 100,000 entries | 51 (0.020s) | 84 (0.012s) | 50 (0.020s) | 49 (0.020s) |
|
|
68
71
|
|
|
69
|
-
|
|
72
|
+
##### Elements In Range
|
|
70
73
|
|
|
71
74
|
| Elements In Range | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
72
75
|
| --------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
73
76
|
| Full (~span/2) (r=199.5) | 601 | 601 | 601 | 74 |
|
|
74
|
-
| Half (~span/4) (r=99.75) | 1,
|
|
75
|
-
| Quarter (~span/8) (r=49.88) | 4,
|
|
76
|
-
| Tiny (~span/1000) (r=1) | 127,
|
|
77
|
+
| Half (~span/4) (r=99.75) | 1,356 | 1,360 | 1,247 | 185 |
|
|
78
|
+
| Quarter (~span/8) (r=49.88) | 4,672 | 5,180 | 4,307 | 722 |
|
|
79
|
+
| Tiny (~span/1000) (r=1) | 127,754 | 128,131 | 179,416 | 145,140 |
|
|
77
80
|
|
|
78
|
-
|
|
81
|
+
##### Get Elements In Bounds
|
|
79
82
|
|
|
80
83
|
| Get Elements In Bounds | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
81
84
|
| -------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
82
|
-
| Full (size=399.0x249.0) | 4,
|
|
83
|
-
| Half (size=199.5x124.5) | 9,
|
|
84
|
-
| Quarter (size=99.75x62.25) | 25,
|
|
85
|
-
| Unit (size=1) |
|
|
85
|
+
| Full (size=399.0x249.0) | 4,645 | 4,645 | 4,706 | 234 |
|
|
86
|
+
| Half (size=199.5x124.5) | 9,623 | 12,109 | 7,961 | 965 |
|
|
87
|
+
| Quarter (size=99.75x62.25) | 25,400 | 34,298 | 19,544 | 3,784 |
|
|
88
|
+
| Unit (size=1) | 184,037 | 185,160 | 245,914 | 155,355 |
|
|
86
89
|
|
|
87
|
-
|
|
90
|
+
##### Approximate Nearest Neighbors
|
|
88
91
|
|
|
89
92
|
| Approximate Nearest Neighbors | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
90
93
|
| ----------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
91
|
-
| 500 neighbors | 9,
|
|
92
|
-
| 100 neighbors | 49,
|
|
93
|
-
| 10 neighbors |
|
|
94
|
-
| 1 neighbor |
|
|
94
|
+
| 500 neighbors | 9,952 | 9,920 | 11,686 | 70,056 |
|
|
95
|
+
| 100 neighbors | 49,710 | 92,455 | 55,495 | 229,190 |
|
|
96
|
+
| 10 neighbors | 471,032 | 388,654 | 281,101 | 333,022 |
|
|
97
|
+
| 1 neighbor | 480,991 | 549,542 | 338,876 | 373,297 |
|
|
95
98
|
|
|
96
99
|
#### **10,000 entries**
|
|
97
100
|
|
|
@@ -99,103 +102,103 @@ This document contains performance benchmarks for the 2D spatial tree implementa
|
|
|
99
102
|
|
|
100
103
|
| Construction | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
101
104
|
| -------------- | ------------------- | --------------------- | ------------ | ------------ |
|
|
102
|
-
| 10,000 entries |
|
|
105
|
+
| 10,000 entries | 551 (0.002s) | 800 (0.001s) | 546 (0.002s) | 525 (0.002s) |
|
|
103
106
|
|
|
104
107
|
##### Elements In Range
|
|
105
108
|
|
|
106
109
|
| Elements In Range | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
107
110
|
| --------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
108
|
-
| Full (~span/2) (r=49.50) | 5,
|
|
109
|
-
| Half (~span/4) (r=24.75) | 22,
|
|
110
|
-
| Quarter (~span/8) (r=12.38) | 44,
|
|
111
|
-
| Tiny (~span/1000) (r=1) |
|
|
111
|
+
| Full (~span/2) (r=49.50) | 5,942 | 5,945 | 5,941 | 733 |
|
|
112
|
+
| Half (~span/4) (r=24.75) | 22,304 | 22,191 | 13,873 | 2,920 |
|
|
113
|
+
| Quarter (~span/8) (r=12.38) | 44,208 | 51,431 | 38,116 | 12,194 |
|
|
114
|
+
| Tiny (~span/1000) (r=1) | 167,413 | 161,761 | 234,097 | 167,770 |
|
|
112
115
|
|
|
113
116
|
##### Get Elements In Bounds
|
|
114
117
|
|
|
115
118
|
| Get Elements In Bounds | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
116
119
|
| -------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
117
|
-
| Full (size=99.00x99.00) |
|
|
118
|
-
| Half (size=49.50x49.50) | 167,
|
|
119
|
-
| Quarter (size=24.75x24.75) | 75,
|
|
120
|
-
| Unit (size=1) |
|
|
120
|
+
| Full (size=99.00x99.00) | 47,031 | 45,293 | 46,157 | 2,404 |
|
|
121
|
+
| Half (size=49.50x49.50) | 167,032 | 165,451 | 36,111 | 9,307 |
|
|
122
|
+
| Quarter (size=24.75x24.75) | 75,684 | 103,502 | 75,649 | 35,561 |
|
|
123
|
+
| Unit (size=1) | 240,255 | 227,585 | 320,229 | 181,472 |
|
|
121
124
|
|
|
122
125
|
##### Approximate Nearest Neighbors
|
|
123
126
|
|
|
124
127
|
| Approximate Nearest Neighbors | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
125
128
|
| ----------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
126
|
-
| 500 neighbors | 13,
|
|
127
|
-
| 100 neighbors | 62,
|
|
128
|
-
| 10 neighbors |
|
|
129
|
-
| 1 neighbor |
|
|
129
|
+
| 500 neighbors | 13,185 | 13,070 | 14,419 | 65,450 |
|
|
130
|
+
| 100 neighbors | 62,217 | 57,218 | 96,702 | 230,930 |
|
|
131
|
+
| 10 neighbors | 390,709 | 424,507 | 299,714 | 399,779 |
|
|
132
|
+
| 1 neighbor | 641,458 | 605,931 | 398,228 | 460,806 |
|
|
130
133
|
|
|
131
|
-
|
|
134
|
+
#### **1,000 entries**
|
|
132
135
|
|
|
133
|
-
|
|
136
|
+
##### Construction
|
|
134
137
|
|
|
135
138
|
| Construction | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
136
139
|
| ------------- | ------------------- | --------------------- | -------------- | -------------- |
|
|
137
|
-
| 1,000 entries | 5,
|
|
140
|
+
| 1,000 entries | 5,293 (0.000s) | 7,651 (0.000s) | 4,833 (0.000s) | 4,714 (0.000s) |
|
|
138
141
|
|
|
139
|
-
|
|
142
|
+
##### Elements In Range
|
|
140
143
|
|
|
141
144
|
| Elements In Range | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
142
145
|
| -------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
143
|
-
| Full (~span/2) (r=24.50) | 58,
|
|
144
|
-
| Half (~span/4) (r=12.25) | 60,
|
|
145
|
-
| Quarter (~span/8) (r=6.13) | 95,
|
|
146
|
-
| Tiny (~span/1000) (r=1) |
|
|
146
|
+
| Full (~span/2) (r=24.50) | 58,149 | 57,896 | 57,459 | 7,394 |
|
|
147
|
+
| Half (~span/4) (r=12.25) | 60,405 | 76,413 | 57,031 | 14,679 |
|
|
148
|
+
| Quarter (~span/8) (r=6.13) | 95,613 | 108,483 | 95,695 | 37,751 |
|
|
149
|
+
| Tiny (~span/1000) (r=1) | 239,168 | 237,044 | 338,176 | 244,401 |
|
|
147
150
|
|
|
148
|
-
|
|
151
|
+
##### Get Elements In Bounds
|
|
149
152
|
|
|
150
153
|
| Get Elements In Bounds | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
151
154
|
| ------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
152
|
-
| Full (size=49.00x19.00) |
|
|
153
|
-
| Half (size=24.50x9.5) |
|
|
154
|
-
| Quarter (size=12.25x4.75) |
|
|
155
|
-
| Unit (size=1) |
|
|
155
|
+
| Full (size=49.00x19.00) | 499,646 | 499,135 | 540,101 | 23,360 |
|
|
156
|
+
| Half (size=24.50x9.5) | 166,957 | 292,171 | 126,505 | 74,879 |
|
|
157
|
+
| Quarter (size=12.25x4.75) | 271,449 | 289,235 | 194,116 | 175,956 |
|
|
158
|
+
| Unit (size=1) | 341,843 | 338,190 | 460,298 | 281,087 |
|
|
156
159
|
|
|
157
|
-
|
|
160
|
+
##### Approximate Nearest Neighbors
|
|
158
161
|
|
|
159
162
|
| Approximate Nearest Neighbors | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
160
163
|
| ----------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
161
|
-
| 500 neighbors | 46,
|
|
162
|
-
| 100 neighbors |
|
|
163
|
-
| 10 neighbors |
|
|
164
|
-
| 1 neighbor |
|
|
164
|
+
| 500 neighbors | 46,443 | 46,967 | 40,228 | 70,534 |
|
|
165
|
+
| 100 neighbors | 79,342 | 78,217 | 92,396 | 272,589 |
|
|
166
|
+
| 10 neighbors | 497,653 | 573,470 | 405,080 | 532,922 |
|
|
167
|
+
| 1 neighbor | 728,027 | 586,007 | 434,731 | 543,105 |
|
|
165
168
|
|
|
166
|
-
|
|
169
|
+
#### **100 entries**
|
|
167
170
|
|
|
168
|
-
|
|
171
|
+
##### Construction
|
|
169
172
|
|
|
170
173
|
| Construction | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
171
174
|
| ------------ | ------------------- | --------------------- | --------------- | --------------- |
|
|
172
|
-
| 100 entries |
|
|
175
|
+
| 100 entries | 41,666 (0.000s) | 35,714 (0.000s) | 27,700 (0.000s) | 24,096 (0.000s) |
|
|
173
176
|
|
|
174
|
-
|
|
177
|
+
##### Elements In Range
|
|
175
178
|
|
|
176
179
|
| Elements In Range | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
177
180
|
| -------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
178
|
-
| Full (~span/2) (r=4.5) |
|
|
179
|
-
| Half (~span/4) (r=2.25) |
|
|
180
|
-
| Quarter (~span/8) (r=1.13) |
|
|
181
|
-
| Tiny (~span/1000) (r=1) |
|
|
181
|
+
| Full (~span/2) (r=4.5) | 496,195 | 494,030 | 509,285 | 72,691 |
|
|
182
|
+
| Half (~span/4) (r=2.25) | 421,999 | 423,114 | 257,119 | 236,378 |
|
|
183
|
+
| Quarter (~span/8) (r=1.13) | 421,665 | 394,791 | 599,129 | 338,518 |
|
|
184
|
+
| Tiny (~span/1000) (r=1) | 421,578 | 398,874 | 599,521 | 338,820 |
|
|
182
185
|
|
|
183
|
-
|
|
186
|
+
##### Get Elements In Bounds
|
|
184
187
|
|
|
185
188
|
| Get Elements In Bounds | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
186
189
|
| ------------------------ | ------------------- | --------------------- | ---------- | ------- |
|
|
187
|
-
| Full (size=9x9) | 2,
|
|
188
|
-
| Half (size=4.5x4.5) |
|
|
189
|
-
| Quarter (size=2.25x2.25) |
|
|
190
|
-
| Unit (size=1) |
|
|
190
|
+
| Full (size=9x9) | 2,405,297 | 2,015,574 | 2,414,353 | 224,027 |
|
|
191
|
+
| Half (size=4.5x4.5) | 548,616 | 559,875 | 365,374 | 368,394 |
|
|
192
|
+
| Quarter (size=2.25x2.25) | 541,107 | 599,286 | 786,141 | 375,705 |
|
|
193
|
+
| Unit (size=1) | 563,974 | 599,575 | 786,313 | 394,632 |
|
|
191
194
|
|
|
192
|
-
|
|
195
|
+
##### Approximate Nearest Neighbors
|
|
193
196
|
|
|
194
197
|
| Approximate Nearest Neighbors | KDTree2D (Balanced) | KDTree2D (Unbalanced) | QuadTree2D | RTree2D |
|
|
195
198
|
| ----------------------------- | ------------------- | --------------------- | ---------- | ------- |
|
|
196
|
-
| 100 neighbors (max) |
|
|
197
|
-
| 10 neighbors |
|
|
198
|
-
| 1 neighbor |
|
|
199
|
+
| 100 neighbors (max) | 156,774 | 165,187 | 202,641 | 323,451 |
|
|
200
|
+
| 10 neighbors | 618,887 | 495,826 | 609,986 | 720,591 |
|
|
201
|
+
| 1 neighbor | 619,752 | 773,756 | 675,868 | 864,801 |
|
|
199
202
|
|
|
200
203
|
<!-- tabs:end -->
|
|
201
204
|
<!-- SPATIAL_TREE_BENCHMARKS_END -->
|
|
@@ -22,181 +22,184 @@ This document contains performance benchmarks for the 3D spatial tree implementa
|
|
|
22
22
|
## Performance Benchmarks
|
|
23
23
|
|
|
24
24
|
<!-- SPATIAL_TREE_3D_BENCHMARKS_START -->
|
|
25
|
+
|
|
26
|
+
### Datasets
|
|
27
|
+
|
|
25
28
|
<!-- tabs:start -->
|
|
26
29
|
|
|
27
|
-
|
|
30
|
+
#### **1,000,000 entries**
|
|
28
31
|
|
|
29
|
-
|
|
32
|
+
##### Construction
|
|
30
33
|
|
|
31
34
|
| Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
32
35
|
| ----------------- | ------------------- | --------------------- | ---------- | ---------- |
|
|
33
|
-
| 1,000,000 entries | 2 (0.
|
|
36
|
+
| 1,000,000 entries | 2 (0.462s) | 2 (0.334s) | 4 (0.238s) | 2 (0.415s) |
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
##### Elements In Range
|
|
36
39
|
|
|
37
40
|
| Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
38
41
|
| --------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
39
|
-
| Full (~span/2) (r=49.50) | 17 | 20 |
|
|
40
|
-
| Half (~span/4) (r=24.75) |
|
|
41
|
-
| Quarter (~span/8) (r=12.38) |
|
|
42
|
-
| Tiny (~span/1000) (r=1) | 23,
|
|
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 |
|
|
43
46
|
|
|
44
|
-
|
|
47
|
+
##### Get Elements In Bounds
|
|
45
48
|
|
|
46
49
|
| Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
47
50
|
| -------------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
48
|
-
| Full (size≈99.00x99.00x99.00) |
|
|
49
|
-
| Half (size≈49.50x49.50x49.50) |
|
|
50
|
-
| Quarter (size≈24.75x24.75x24.75) |
|
|
51
|
-
| Unit (size=1) | 40 |
|
|
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 |
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
##### Approximate Nearest Neighbors
|
|
54
57
|
|
|
55
58
|
| Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
56
59
|
| ----------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
57
|
-
| 500 neighbors | 5,
|
|
58
|
-
| 100 neighbors | 65,
|
|
59
|
-
| 10 neighbors |
|
|
60
|
-
| 1 neighbor |
|
|
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 |
|
|
61
64
|
|
|
62
|
-
|
|
65
|
+
#### **100,000 entries**
|
|
63
66
|
|
|
64
|
-
|
|
67
|
+
##### Construction
|
|
65
68
|
|
|
66
69
|
| Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
67
70
|
| --------------- | ------------------- | --------------------- | ----------- | ----------- |
|
|
68
|
-
| 100,000 entries |
|
|
71
|
+
| 100,000 entries | 35 (0.029s) | 48 (0.021s) | 66 (0.015s) | 41 (0.024s) |
|
|
69
72
|
|
|
70
|
-
|
|
73
|
+
##### Elements In Range
|
|
71
74
|
|
|
72
75
|
| Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
73
76
|
| --------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
74
|
-
| Full (~span/2) (r=49.50) |
|
|
75
|
-
| Half (~span/4) (r=24.75) | 1,
|
|
76
|
-
| Quarter (~span/8) (r=12.38) | 2,
|
|
77
|
-
| Tiny (~span/1000) (r=1) | 26,
|
|
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 |
|
|
78
81
|
|
|
79
|
-
|
|
82
|
+
##### Get Elements In Bounds
|
|
80
83
|
|
|
81
84
|
| Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
82
85
|
| ------------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
83
|
-
| Full (size≈99.00x99.00x9) | 636 |
|
|
84
|
-
| Half (size≈49.50x49.50x4.5) |
|
|
85
|
-
| Quarter (size≈24.75x24.75x2.25) |
|
|
86
|
-
| Unit (size=1) |
|
|
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 |
|
|
87
90
|
|
|
88
|
-
|
|
91
|
+
##### Approximate Nearest Neighbors
|
|
89
92
|
|
|
90
93
|
| Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
91
94
|
| ----------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
92
|
-
| 500 neighbors | 6,
|
|
93
|
-
| 100 neighbors | 38,
|
|
94
|
-
| 10 neighbors |
|
|
95
|
-
| 1 neighbor |
|
|
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 |
|
|
96
99
|
|
|
97
|
-
|
|
100
|
+
#### **10,000 entries**
|
|
98
101
|
|
|
99
|
-
|
|
102
|
+
##### Construction
|
|
100
103
|
|
|
101
104
|
| Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
102
105
|
| -------------- | ------------------- | --------------------- | ------------ | ------------ |
|
|
103
|
-
| 10,000 entries |
|
|
106
|
+
| 10,000 entries | 466 (0.002s) | 473 (0.002s) | 615 (0.002s) | 450 (0.002s) |
|
|
104
107
|
|
|
105
|
-
|
|
108
|
+
##### Elements In Range
|
|
106
109
|
|
|
107
110
|
| Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
108
111
|
| --------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
109
|
-
| Full (~span/2) (r=49.50) | 4,
|
|
110
|
-
| Half (~span/4) (r=24.75) | 5,
|
|
111
|
-
| Quarter (~span/8) (r=12.38) | 5,
|
|
112
|
-
| Tiny (~span/1000) (r=1) |
|
|
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 |
|
|
113
116
|
|
|
114
|
-
|
|
117
|
+
##### Get Elements In Bounds
|
|
115
118
|
|
|
116
119
|
| Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
117
120
|
| ------------------------------ | ------------------- | --------------------- | --------- | ------- |
|
|
118
|
-
| Full (size≈99.00x9x9) | 6,
|
|
119
|
-
| Half (size≈49.50x4.5x4.5) | 7,
|
|
120
|
-
| Quarter (size≈24.75x2.25x2.25) | 7,
|
|
121
|
-
| Unit (size=1) | 7,612 | 7,
|
|
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 |
|
|
122
125
|
|
|
123
|
-
|
|
126
|
+
##### Approximate Nearest Neighbors
|
|
124
127
|
|
|
125
128
|
| Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
126
129
|
| ----------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
127
|
-
| 500 neighbors | 9,
|
|
128
|
-
| 100 neighbors |
|
|
129
|
-
| 10 neighbors |
|
|
130
|
-
| 1 neighbor |
|
|
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 |
|
|
131
134
|
|
|
132
|
-
|
|
135
|
+
#### **1,000 entries**
|
|
133
136
|
|
|
134
|
-
|
|
137
|
+
##### Construction
|
|
135
138
|
|
|
136
|
-
| Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D
|
|
137
|
-
| ------------- | ------------------- | --------------------- | -------------- |
|
|
138
|
-
| 1,000 entries |
|
|
139
|
+
| Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
140
|
+
| ------------- | ------------------- | --------------------- | -------------- | -------------- |
|
|
141
|
+
| 1,000 entries | 3,617 (0.000s) | 5,141 (0.000s) | 3,954 (0.000s) | 4,130 (0.000s) |
|
|
139
142
|
|
|
140
|
-
|
|
143
|
+
##### Elements In Range
|
|
141
144
|
|
|
142
145
|
| Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
143
146
|
| -------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
144
|
-
| Full (~span/2) (r=4.5) |
|
|
145
|
-
| Half (~span/4) (r=2.25) |
|
|
146
|
-
| Quarter (~span/8) (r=1.13) |
|
|
147
|
-
| Tiny (~span/1000) (r=1) |
|
|
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 |
|
|
148
151
|
|
|
149
|
-
|
|
152
|
+
##### Get Elements In Bounds
|
|
150
153
|
|
|
151
154
|
| Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
152
155
|
| ----------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
153
|
-
| Full (size≈9x9x9) | 59,
|
|
154
|
-
| Half (size≈4.5x4.5x4.5) | 65,
|
|
155
|
-
| Quarter (size≈2.25x2.25x2.25) | 65,
|
|
156
|
-
| Unit (size=1) | 65,
|
|
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 |
|
|
157
160
|
|
|
158
|
-
|
|
161
|
+
##### Approximate Nearest Neighbors
|
|
159
162
|
|
|
160
163
|
| Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
161
164
|
| ----------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
162
|
-
| 500 neighbors | 15,
|
|
163
|
-
| 100 neighbors |
|
|
164
|
-
| 10 neighbors |
|
|
165
|
-
| 1 neighbor |
|
|
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 |
|
|
166
169
|
|
|
167
|
-
|
|
170
|
+
#### **100 entries**
|
|
168
171
|
|
|
169
|
-
|
|
172
|
+
##### Construction
|
|
170
173
|
|
|
171
174
|
| Construction | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
172
175
|
| ------------ | ------------------- | --------------------- | --------------- | --------------- |
|
|
173
|
-
| 100 entries |
|
|
176
|
+
| 100 entries | 35,714 (0.000s) | 32,051 (0.000s) | 27,397 (0.000s) | 21,413 (0.000s) |
|
|
174
177
|
|
|
175
|
-
|
|
178
|
+
##### Elements In Range
|
|
176
179
|
|
|
177
180
|
| Elements In Range | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
178
181
|
| -------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
179
|
-
| Full (~span/2) (r=4.5) |
|
|
180
|
-
| Half (~span/4) (r=2.25) |
|
|
181
|
-
| Quarter (~span/8) (r=1.13) |
|
|
182
|
-
| Tiny (~span/1000) (r=1) |
|
|
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 |
|
|
183
186
|
|
|
184
|
-
|
|
187
|
+
##### Get Elements In Bounds
|
|
185
188
|
|
|
186
189
|
| Get Elements In Bounds | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
187
190
|
| ----------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
188
|
-
| Full (size≈9x4x1) |
|
|
189
|
-
| Half (size≈4.5x2x1) |
|
|
190
|
-
| Quarter (size≈2.25x1x1) |
|
|
191
|
-
| Unit (size=1) |
|
|
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 |
|
|
192
195
|
|
|
193
|
-
|
|
196
|
+
##### Approximate Nearest Neighbors
|
|
194
197
|
|
|
195
198
|
| Approximate Nearest Neighbors | KDTree3D (Balanced) | KDTree3D (Unbalanced) | OctTree3D | RTree3D |
|
|
196
199
|
| ----------------------------- | ------------------- | --------------------- | --------- | ------- |
|
|
197
|
-
| 100 neighbors (max) |
|
|
198
|
-
| 10 neighbors |
|
|
199
|
-
| 1 neighbor |
|
|
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
203
|
|
|
201
204
|
<!-- tabs:end -->
|
|
202
205
|
<!-- SPATIAL_TREE_3D_BENCHMARKS_END -->
|