aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSébastien Crozet <developer@crozet.re>2021-01-29 14:42:32 +0100
committerGitHub <noreply@github.com>2021-01-29 14:42:32 +0100
commit7ca46f38cde6cf8bf8bf41ea6067ae5bc938205c (patch)
tree3781b9d7c92a6a8111573ba4cae1c5d41435950e /src
parente6fc8f67faf3e37afe38d683cbd930d457f289be (diff)
parent825f33efaec4ce6a8903751e836a0ea9c466ff92 (diff)
downloadrapier-7ca46f38cde6cf8bf8bf41ea6067ae5bc938205c.tar.gz
rapier-7ca46f38cde6cf8bf8bf41ea6067ae5bc938205c.tar.bz2
rapier-7ca46f38cde6cf8bf8bf41ea6067ae5bc938205c.zip
Merge pull request #79 from dimforge/split_geom
Move most of the geometric code to another crate.
Diffstat (limited to 'src')
-rw-r--r--src/data/arena.rs11
-rw-r--r--src/data/hashmap.rs137
-rw-r--r--src/data/maybe_serializable_data.rs17
-rw-r--r--src/data/mod.rs4
-rw-r--r--src/dynamics/coefficient_combine_rule.rs34
-rw-r--r--src/dynamics/integration_parameters.rs54
-rw-r--r--src/dynamics/joint/ball_joint.rs16
-rw-r--r--src/dynamics/joint/fixed_joint.rs10
-rw-r--r--src/dynamics/joint/joint_set.rs67
-rw-r--r--src/dynamics/joint/prismatic_joint.rs68
-rw-r--r--src/dynamics/joint/revolute_joint.rs24
-rw-r--r--src/dynamics/mass_properties.rs442
-rw-r--r--src/dynamics/mass_properties_ball.rs30
-rw-r--r--src/dynamics/mass_properties_capsule.rs39
-rw-r--r--src/dynamics/mass_properties_cone.rs29
-rw-r--r--src/dynamics/mass_properties_cuboid.rs33
-rw-r--r--src/dynamics/mass_properties_cylinder.rs40
-rw-r--r--src/dynamics/mass_properties_polygon.rs146
-rw-r--r--src/dynamics/mod.rs13
-rw-r--r--src/dynamics/rigid_body.rs362
-rw-r--r--src/dynamics/rigid_body_set.rs133
-rw-r--r--src/dynamics/solver/categorization.rs36
-rw-r--r--src/dynamics/solver/delta_vel.rs2
-rw-r--r--src/dynamics/solver/interaction_groups.rs10
-rw-r--r--src/dynamics/solver/island_solver.rs43
-rw-r--r--src/dynamics/solver/joint_constraint/ball_position_constraint.rs48
-rw-r--r--src/dynamics/solver/joint_constraint/ball_position_constraint_wide.rs54
-rw-r--r--src/dynamics/solver/joint_constraint/ball_velocity_constraint.rs90
-rw-r--r--src/dynamics/solver/joint_constraint/ball_velocity_constraint_wide.rs116
-rw-r--r--src/dynamics/solver/joint_constraint/fixed_position_constraint.rs52
-rw-r--r--src/dynamics/solver/joint_constraint/fixed_position_constraint_wide.rs51
-rw-r--r--src/dynamics/solver/joint_constraint/fixed_velocity_constraint.rs72
-rw-r--r--src/dynamics/solver/joint_constraint/fixed_velocity_constraint_wide.rs94
-rw-r--r--src/dynamics/solver/joint_constraint/joint_constraint.rs5
-rw-r--r--src/dynamics/solver/joint_constraint/joint_position_constraint.rs116
-rw-r--r--src/dynamics/solver/joint_constraint/mod.rs24
-rw-r--r--src/dynamics/solver/joint_constraint/prismatic_position_constraint.rs46
-rw-r--r--src/dynamics/solver/joint_constraint/prismatic_position_constraint_wide.rs51
-rw-r--r--src/dynamics/solver/joint_constraint/prismatic_velocity_constraint.rs94
-rw-r--r--src/dynamics/solver/joint_constraint/prismatic_velocity_constraint_wide.rs130
-rw-r--r--src/dynamics/solver/joint_constraint/revolute_position_constraint.rs42
-rw-r--r--src/dynamics/solver/joint_constraint/revolute_position_constraint_wide.rs51
-rw-r--r--src/dynamics/solver/joint_constraint/revolute_velocity_constraint.rs62
-rw-r--r--src/dynamics/solver/joint_constraint/revolute_velocity_constraint_wide.rs74
-rw-r--r--src/dynamics/solver/mod.rs8
-rw-r--r--src/dynamics/solver/parallel_island_solver.rs89
-rw-r--r--src/dynamics/solver/parallel_position_solver.rs529
-rw-r--r--src/dynamics/solver/parallel_solver_constraints.rs311
-rw-r--r--src/dynamics/solver/parallel_velocity_solver.rs360
-rw-r--r--src/dynamics/solver/position_constraint.rs180
-rw-r--r--src/dynamics/solver/position_constraint_wide.rs166
-rw-r--r--src/dynamics/solver/position_ground_constraint.rs147
-rw-r--r--src/dynamics/solver/position_ground_constraint_wide.rs154
-rw-r--r--src/dynamics/solver/position_solver.rs424
-rw-r--r--src/dynamics/solver/solver_constraints.rs364
-rw-r--r--src/dynamics/solver/velocity_constraint.rs96
-rw-r--r--src/dynamics/solver/velocity_constraint_wide.rs133
-rw-r--r--src/dynamics/solver/velocity_ground_constraint.rs99
-rw-r--r--src/dynamics/solver/velocity_ground_constraint_wide.rs130
-rw-r--r--src/dynamics/solver/velocity_solver.rs362
-rw-r--r--src/geometry/ball.rs16
-rw-r--r--src/geometry/broad_phase_multi_sap.rs44
-rw-r--r--src/geometry/capsule.rs192
-rw-r--r--src/geometry/collider.rs493
-rw-r--r--src/geometry/collider_set.rs62
-rw-r--r--src/geometry/contact.rs531
-rw-r--r--src/geometry/contact_generator/ball_ball_contact_generator.rs103
-rw-r--r--src/geometry/contact_generator/ball_convex_contact_generator.rs74
-rw-r--r--src/geometry/contact_generator/ball_polygon_contact_generator.rs1
-rw-r--r--src/geometry/contact_generator/capsule_capsule_contact_generator.rs199
-rw-r--r--src/geometry/contact_generator/contact_dispatcher.rs141
-rw-r--r--src/geometry/contact_generator/contact_generator.rs228
-rw-r--r--src/geometry/contact_generator/contact_generator_workspace.rs104
-rw-r--r--src/geometry/contact_generator/cuboid_capsule_contact_generator.rs189
-rw-r--r--src/geometry/contact_generator/cuboid_cuboid_contact_generator.rs155
-rw-r--r--src/geometry/contact_generator/cuboid_polygon_contact_generator.rs1
-rw-r--r--src/geometry/contact_generator/cuboid_triangle_contact_generator.rs173
-rw-r--r--src/geometry/contact_generator/heightfield_shape_contact_generator.rs191
-rw-r--r--src/geometry/contact_generator/mod.rs81
-rw-r--r--src/geometry/contact_generator/pfm_pfm_contact_generator.rs144
-rw-r--r--src/geometry/contact_generator/polygon_polygon_contact_generator.rs301
-rw-r--r--src/geometry/contact_generator/serializable_workspace_tag.rs9
-rw-r--r--src/geometry/contact_generator/trimesh_shape_contact_generator.rs221
-rw-r--r--src/geometry/contact_generator/voxels_shape_contact_generator.rs0
-rw-r--r--src/geometry/contact_pair.rs185
-rw-r--r--src/geometry/cuboid.rs234
-rw-r--r--src/geometry/cuboid_feature2d.rs128
-rw-r--r--src/geometry/cuboid_feature3d.rs516
-rw-r--r--src/geometry/interaction_graph.rs79
-rw-r--r--src/geometry/mod.rs156
-rw-r--r--src/geometry/narrow_phase.rs399
-rw-r--r--src/geometry/pair_filter.rs (renamed from src/geometry/user_callbacks.rs)18
-rw-r--r--src/geometry/polygon.rs78
-rw-r--r--src/geometry/polygon_intersection.rs263
-rw-r--r--src/geometry/polygonal_feature_map.rs132
-rw-r--r--src/geometry/polyhedron_feature3d.rs445
-rw-r--r--src/geometry/proximity.rs43
-rw-r--r--src/geometry/proximity_detector/ball_ball_proximity_detector.rs68
-rw-r--r--src/geometry/proximity_detector/ball_convex_proximity_detector.rs45
-rw-r--r--src/geometry/proximity_detector/ball_polygon_proximity_detector.rs1
-rw-r--r--src/geometry/proximity_detector/cuboid_cuboid_proximity_detector.rs79
-rw-r--r--src/geometry/proximity_detector/cuboid_polygon_proximity_detector.rs1
-rw-r--r--src/geometry/proximity_detector/cuboid_triangle_proximity_detector.rs90
-rw-r--r--src/geometry/proximity_detector/mod.rs30
-rw-r--r--src/geometry/proximity_detector/polygon_polygon_proximity_detector.rs57
-rw-r--r--src/geometry/proximity_detector/proximity_detector.rs212
-rw-r--r--src/geometry/proximity_detector/proximity_dispatcher.rs136
-rw-r--r--src/geometry/proximity_detector/trimesh_shape_proximity_detector.rs135
-rw-r--r--src/geometry/proximity_detector/voxels_shape_proximity_detector.rs0
-rw-r--r--src/geometry/round_cylinder.rs107
-rw-r--r--src/geometry/sat.rs369
-rw-r--r--src/geometry/shape.rs392
-rw-r--r--src/geometry/triangle.rs9
-rw-r--r--src/geometry/trimesh.rs192
-rw-r--r--src/geometry/waabb.rs217
-rw-r--r--src/geometry/wquadtree.rs587
-rw-r--r--src/geometry/z_order.rs70
-rw-r--r--src/lib.rs165
-rw-r--r--src/pipeline/collision_pipeline.rs17
-rw-r--r--src/pipeline/event_handler.rs20
-rw-r--r--src/pipeline/physics_pipeline.rs16
-rw-r--r--src/pipeline/query_pipeline.rs425
-rw-r--r--src/utils.rs731
123 files changed, 3783 insertions, 13341 deletions
diff --git a/src/data/arena.rs b/src/data/arena.rs
index fcec017..9d057b8 100644
--- a/src/data/arena.rs
+++ b/src/data/arena.rs
@@ -3,6 +3,7 @@
//! See https://github.com/fitzgen/generational-arena/blob/master/src/lib.rs.
//! This has been modified to have a fully deterministic deserialization (including for the order of
//! Index attribution after a deserialization of the arena.
+use parry::partitioning::IndexedData;
use std::cmp;
use std::iter::{self, Extend, FromIterator, FusedIterator};
use std::mem;
@@ -51,6 +52,16 @@ pub struct Index {
generation: u64,
}
+impl IndexedData for Index {
+ fn default() -> Self {
+ Self::from_raw_parts(crate::INVALID_USIZE, crate::INVALID_U64)
+ }
+
+ fn index(&self) -> usize {
+ self.into_raw_parts().0
+ }
+}
+
impl Index {
/// Create a new `Index` from