Comments (2)
I investigated having nphysics define its own BroadPhasePairFilter
trait but almost 100% of the collision logic happens in ncollide (unsurprisingly). So it looks like this will have to be a change within ncollide.
I suspect the best approach would be to modify the BroadPhasePairFilter
to the following:
pub trait BroadPhasePairFilter<N: RealField, Object, Handle, Set>: Any + Send + Sync {
fn is_pair_valid(&self, b1: &Object, b2: &Object, h1: Handle, h2: Handle, set: &Set) -> bool;
}
where Set
becomes the BodySet
in nphysics. This will require a change at every step between nphysics and ncollide's src/pipeline/glue/update.rs
, so it's a fairly sizable change. I'll wait to start working on this until I get input.
from nphysics.
Alternatives discussed on Discord:
- Using an associated type with a default and implementing a default
fn is_pair_valid_in_set
. - Creating a new trait
BroadPhasePairSetFilter
that is auto-implemented for (or auto-implements)BroadPhasePairFilter
from nphysics.
Related Issues (20)
- v0.13 doesn't build with wasm_bindgen HOT 3
- Testbed `look_at()` method doesn't seem to center the camera at the location given HOT 3
- Very slow on macos HOT 3
- Panic "Invalid parent body part handle" when creating and deleting a body in the same frame
- A doc issue, let joint = RevoluteJoint::new(-0.1); needs to update
- Custom Broadphase Collision Filters HOT 2
- The mechanical world stops updating after 524,288 seconds when using `f32` precision HOT 6
- Rigidbody velocity gets improperly clamped if a max_linear_velocity is set HOT 2
- Contact between a ball and cuboid sometimes and has no contact pair HOT 2
- Update nalgebra dependency to latest version (0.21.0) HOT 2
- Expose nalgebra and ncollide through nphysics HOT 3
- 2d: Moving an object over many ground boxes with width 1, sometimes cause the object to sometimes fly off in the Y-direction? HOT 2
- Is there an example that works with wgpu HOT 3
- URDF, SDF, MJCF Model Loading HOT 7
- Until `MechanicalWorld::step` is called, `GeometricalWorld::interferences_with_point` uses old collider positions HOT 1
- Wrong inertia calculation in `<RigidBody<N> as BodyPart<N>>::add_local_inertia_and_com`
- FEMVolume `renumber_dofs` breaks kinematic indices
- Can't build examples HOT 1
- When will the new features like 'physx5.0' be supported? such as 'Soft Body Dynamics'、'Cloth'、'PBF'、'...'
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nphysics.