fastquadtree 0.8.0__tar.gz → 0.8.1__tar.gz
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.
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/Cargo.lock +1 -1
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/Cargo.toml +1 -1
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/PKG-INFO +1 -1
- fastquadtree-0.8.1/assets/interactive_v2_rect_screenshot.png +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/benchmark.md +4 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/index.md +1 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/quickstart.md +1 -1
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/runnables.md +2 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/interactive_v2_rect.py +2 -2
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/rect_quadtree.py +3 -1
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.github/workflows/docs.yml +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.github/workflows/release.yml +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.gitignore +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/.pre-commit-config.yaml +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/LICENSE +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/README.md +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/ballpit.png +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/interactive_v2_screenshot.png +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/quadtree_bench_throughput.png +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/assets/quadtree_bench_time.png +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/benchmark_native_vs_shim.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/cross_library_bench.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/__init__.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/engines.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/main.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/plotting.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/quadtree_bench/runner.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/requirements.txt +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/runner.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/benchmarks/system_info_collector.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/point_item.md +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/quadtree.md +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/rect_item.md +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/docs/api/rect_quadtree.md +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/ballpit.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/interactive.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/interactive_v2.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/interactive/requirements.txt +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/mkdocs.yml +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pyproject.toml +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/__init__.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/_base_quadtree.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/_bimap.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/_item.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/point_quadtree.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/pysrc/fastquadtree/py.typed +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/geom.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/lib.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/quadtree.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/src/rect_quadtree.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/insertions.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/nearest_neighbor.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/query.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/rect_quadtree.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/rectangle_traversal.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_bimap.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_clear.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_delete.rs +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_delete_by_object.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_delete_python.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_python.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_rect_quadtree.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_unconventional_bounds.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/test_wrapper_edges.py +0 -0
- {fastquadtree-0.8.0 → fastquadtree-0.8.1}/tests/unconventional_bounds.rs +0 -0
Binary file
|
@@ -33,6 +33,8 @@ Quadtrees are the focus of the benchmark, but Rtrees are included for reference.
|
|
33
33
|
| Max depth | 16 |
|
34
34
|
| Queries per experiment | 500 |
|
35
35
|
|
36
|
+
---------
|
37
|
+
|
36
38
|
## Native vs Shim
|
37
39
|
|
38
40
|
### Configuration
|
@@ -55,6 +57,8 @@ Using the shim with object tracking increases build time by 3.604x and query tim
|
|
55
57
|
|
56
58
|
Adding the object map only impacts the build time, not the query time.
|
57
59
|
|
60
|
+
---------
|
61
|
+
|
58
62
|
## System Info
|
59
63
|
- **OS**: Windows 11 AMD64
|
60
64
|
- **Python**: CPython 3.12.2
|
@@ -39,6 +39,7 @@
|
|
39
39
|
- Fast inserts and queries on hundreds of thousands of points
|
40
40
|
- Optional object tracking for id ↔ object mapping
|
41
41
|
- Clean integrations for range queries and nearest neighbors
|
42
|
+
- Support for inserting bounding boxes or points
|
42
43
|
|
43
44
|
## Install
|
44
45
|
```bash
|
@@ -21,6 +21,8 @@ pip install -r interactive/requirements.txt
|
|
21
21
|
python interactive/interactive_v2_rect.py
|
22
22
|
```
|
23
23
|
|
24
|
+

|
25
|
+
|
24
26
|
## 2. Ball Pit
|
25
27
|
- Spawn balls in a pit with physics-based collisions
|
26
28
|
- Easily switch between brute force and quadtree collision detection to see the performance difference
|
@@ -85,8 +85,8 @@ class Box:
|
|
85
85
|
spd = random.uniform(60.0, 160.0)
|
86
86
|
self.vx = math.cos(ang) * spd
|
87
87
|
self.vy = math.sin(ang) * spd
|
88
|
-
self.w = random.uniform(8.0,
|
89
|
-
self.h = random.uniform(8.0,
|
88
|
+
self.w = random.uniform(8.0, 200.0)
|
89
|
+
self.h = random.uniform(8.0, 200.0)
|
90
90
|
|
91
91
|
def update(self, dt):
|
92
92
|
self.x += self.vx * dt
|
@@ -59,7 +59,9 @@ class RectQuadTree(_BaseQuadTree[Bounds, _IdRect, RectItem]):
|
|
59
59
|
) -> list[_IdRect]: ...
|
60
60
|
@overload
|
61
61
|
def query(self, rect: Bounds, *, as_items: Literal[True]) -> list[RectItem]: ...
|
62
|
-
def query(
|
62
|
+
def query(
|
63
|
+
self, rect: Bounds, *, as_items: bool = False
|
64
|
+
) -> list[_IdRect] | list[RectItem]:
|
63
65
|
"""
|
64
66
|
Query the tree for all items that intersect the given rectangle.
|
65
67
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|