rdb
6e168c2bc4
collide: Implement respect-prev-transform for capsule-into-poly
...
It's not perfect by any means, but it's better than nothing, and should prevent capsules from flying through walls.
2021-01-12 15:55:10 +01:00
rdb
3f08781eac
collide: Improve box-into-polygon test
...
* Use nearly-zero test to check which edges to snap the interior/surface points to, if any, to be less sensitive to fp precision
* The respect-prev-transform test now tests for a sphere that fits inside the box, to prevent a false positive test when the box has been rotated since the last test
* More appropriate surface point for respect-prev-transform test
2021-01-12 14:59:31 +01:00
rdb
1b7f3e4bbd
collide: Fix pusher if interior and surface point don't lie along normal
...
Currently, all tests I'm aware of put the surface point above the interior point (ie. along the normal), but there seems to be no good reason for this requirement, especially since a dot product is more efficient than a length().
2021-01-12 14:51:42 +01:00
rdb
84034f06f5
collide: Respect prev transform in box-into-poly test
...
Only takes changes in position in account, and the test is not entirely perfect, but mostly right
2021-01-11 19:06:24 +01:00
rdb
ea2816f4ea
CMake: Add extension sources for egg and collide directories
2021-01-02 03:11:34 +01:00
rdb
f003e3434e
collide: Use virtual read_datagram/write_datagram on handlers
2021-01-02 02:40:52 +01:00
rdb
e099d9e787
Merge branch 'release/1.10.x'
2021-01-02 02:33:35 +01:00
rdb
f8ce339960
collide: Add pickle support for most collision handlers
...
Also redo CollisionHandlerEvent pickling to use Datagram instead
Related to #1090
2021-01-01 16:56:18 +01:00
rdb
8852c835fc
collide: Support pickling for CollisionTraverser, HandlerEvent+Queue
...
Fixes #1090
2020-12-31 16:57:34 +01:00
rdb
ac991e4c5e
collide: Fix error with CollisionHandler's again_patterns property
2020-12-31 16:55:22 +01:00
rdb
454179a276
collide: Fix typo in STDFLOAT_DOUBLE case
2020-12-14 11:00:49 +01:00
rdb
9f09857397
collide: Error checking for CollisionPolygon::setup/verify_points()
2020-12-12 17:28:41 +01:00
Daniel
ac6a1a7874
collide: Expose CollisionPolygon's setup_points and verify_points to Python
...
Closes #1035
2020-11-22 22:01:07 +01:00
rdb
d62146a317
Merge branch 'release/1.10.x'
2020-11-17 23:56:00 +01:00
rdb
8c3fd5b406
collide: Release GIL while during CollisionTraverser traversal
...
This is necessary to prevent deadlocking on the GIL if some Python code is trying to write some geometry while the CollisionTraverser is trying to read it.
Fixes #1033
2020-11-02 12:18:22 +01:00
rdb
dcc08ac572
Merge branch 'release/1.10.x'
2020-07-25 14:58:35 +02:00
rdb
3fe1d286d0
collide: Add docstring for CollisionTraverser::traverse()
2020-07-25 12:50:09 +02:00
rdb
d01c53c2d8
Merge branch 'release/1.10.x'
2020-06-14 13:02:25 +02:00
rdb
26ba2b15cd
collide: unexpose verify_points overload taking LPoint3 array
...
Similar as in #908
2020-05-11 09:09:00 +02:00
rdb
9ad4e4586c
collide: Use correct intersection point for sphere into poly
...
Previously, the reported surface and intersection points could be outside the polygon if the sphere was colliding with the edge.
Fixes #907
2020-05-05 16:52:21 +02:00
rdb
3598222977
Merge branch 'release/1.10.x'
2020-05-05 16:47:38 +02:00
rdb
ed73394275
collide: fix erroneous collision if sphere is under edge of polygon
...
Reproducible by the code in #907 , occurs if the sphere is close to the edge, but its center is off and under the polygon.
2020-05-05 16:33:20 +02:00
rdb
2ed4516cb2
collide: Unexpose CollisionPolygon constructor taking point array
...
This could never work in Python, and does indeed cause a crash, so I don't consider this compat-breaking.
Fixes #908
2020-05-05 14:51:31 +02:00
rdb
94571aac93
collide: improve performance of colliding with visible geometry
2020-04-01 20:31:19 +02:00
rdb
c185de3018
Merge branch 'release/1.10.x'
2020-03-19 20:20:25 +01:00
rdb
b549133b3e
collide: protect info print with is_info() check
...
This prevents an unnecessary sqrt
2020-03-16 14:55:42 +01:00
rdb
515ce931b9
Merge branch 'release/1.10.x'
2020-03-08 10:37:05 +01:00
rdb
e8d8f20acb
collide: fix pusher convex angle detection for visible geometry
...
Previously it was only working for CollisionPolygon.
Fixes #879
2020-03-08 10:30:04 +01:00
Sam Edwards
9b7bcf2564
Merge branch 'master' into cmake
2019-11-07 21:21:04 -07:00
rdb
9a7e103c33
collide: restore missing CollisionTraverser.showCollisions()
...
This was an accidental regression in e48a40abad which unexposed CollisionVisualizer and therefore caused this method to no longer be wrapped by Interrogate.
2019-11-02 20:43:21 +01:00
Sam Edwards
12c16eb9ff
Merge branch 'master' into cmake
2019-10-15 23:43:25 -06:00
rdb
e48a40abad
collide: unexpose CollisionVisualizer
...
The fact that this class only exists in opt3 builds makes it hard to offer ABI compatibility guarantees with opt4 builds; most users probably use this thorugh the high-level interface, so let's unexpose this until someone complains.
2019-10-08 19:51:24 +02:00
rdb
247f3c415a
Merge branch 'release/1.10.x'
2019-10-08 19:50:48 +02:00
rdb
08572f3c38
general: Fix a variety of ABI incompatibility issues with opt4 builds
2019-10-08 19:44:29 +02:00
Sam Edwards
5961cc2ee0
Merge branch 'master' into cmake
2019-10-05 15:00:49 -06:00
rdb
2c42cfcc1a
Merge branch 'release/1.10.x'
2019-09-10 16:34:11 +02:00
rdb
05ed918d63
general: mark deprecated methods with the @deprecated tag
...
This makes them easier to find and, if necessary, automatically generate deprecation warnings for.
2019-09-08 09:50:28 +02:00
Sam Edwards
5fa4af9189
CMake: Rely on GNUInstallDirs to specify install paths
...
This makes multiarch OSes happy as they can dictate that
64-bit libraries go into 'lib64'
2019-08-31 00:48:42 -06:00
Sam Edwards
1a654cba04
CMake: Record the location that headers are installed
...
This populates INTERFACE_INCLUDE_DIRECTORIES on the targets
after they're installed.
2019-08-30 22:58:18 -06:00
Sam Edwards
19ed9f6b47
Merge branch 'master' into cmake
2019-08-24 18:07:12 -06:00
Sam Edwards
abc941245e
general: Fix missing includes (and one forward declaration)
2019-08-24 18:05:28 -06:00
hecris
674c9fdee9
collide: implement box into capsule
...
Closes #675
2019-08-02 19:14:58 +02:00
hecris
563ff75c2f
collide: implement check from parabola into inverse sphere
2019-06-20 19:33:42 +02:00
hecris
47f39809ee
collide: add collision test for parabola into box
...
Closes #664
2019-06-07 22:21:27 +02:00
Sam Edwards
039f5af34e
Merge branch 'master' into cmake
2019-06-03 23:12:23 -06:00
rdb
226d888ef4
collide: remove doubly defined property due to faulty merge
2019-05-03 18:02:45 +02:00
rdb
0ac36185a9
Merge branch 'release/1.10.x'
2019-05-02 21:34:25 +02:00
rdb
d9d30cdfd2
collide: compat for typo'ed respect_prev_transform property in 1.10
2019-04-29 22:29:36 +02:00
rdb
269d3db290
collide: fix typo in respect_prev_transform property
2019-04-29 18:09:19 +02:00
Sam Edwards
6097d34ead
CMake: Neatly format everything for readability and consistency
2019-04-14 22:37:18 -06:00