diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/dynamics/solver/joint_constraint/joint_position_constraint.rs | 18 | ||||
| -rw-r--r-- | src/dynamics/solver/parallel_position_solver.rs | 22 | ||||
| -rw-r--r-- | src/dynamics/solver/parallel_solver_constraints.rs | 12 | ||||
| -rw-r--r-- | src/dynamics/solver/parallel_velocity_solver.rs | 14 | ||||
| -rw-r--r-- | src/dynamics/solver/position_constraint.rs | 6 | ||||
| -rw-r--r-- | src/lib.rs | 3 |
6 files changed, 13 insertions, 62 deletions
diff --git a/src/dynamics/solver/joint_constraint/joint_position_constraint.rs b/src/dynamics/solver/joint_constraint/joint_position_constraint.rs index a50897b..97a81ba 100644 --- a/src/dynamics/solver/joint_constraint/joint_position_constraint.rs +++ b/src/dynamics/solver/joint_constraint/joint_position_constraint.rs @@ -50,24 +50,6 @@ pub(crate) enum AnyJointPositionConstraint { } impl AnyJointPositionConstraint { - #[cfg(feature = "parallel")] - pub fn num_active_constraints(joint: &Joint, grouped: bool) -> usize { - #[cfg(feature = "simd-is-enabled")] - if !grouped { - 1 - } else { - match &joint.params { - JointParams::BallJoint(_) => 1, - _ => SIMD_WIDTH, // For joints that don't support SIMD position constraints yet. - } - } - - #[cfg(not(feature = "simd-is-enabled"))] - { - 1 - } - } - pub fn from_joint(joint: &Joint, bodies: &RigidBodySet) -> Self { let rb1 = &bodies[joint.body1]; let rb2 = &bodies[joint.body2]; diff --git a/src/dynamics/solver/parallel_position_solver.rs b/src/dynamics/solver/parallel_position_solver.rs index 67af3ea..ec480f5 100644 --- a/src/dynamics/solver/parallel_position_solver.rs +++ b/src/dynamics/solver/parallel_position_solver.rs @@ -1,29 +1,11 @@ -use super::ParallelInteractionGroups; use super::{AnyJointPositionConstraint, AnyPositionConstraint, ThreadContext}; -use crate::dynamics::solver::categorization::categorize_joints; use crate::dynamics::solver::{ - AnyJointVelocityConstraint, AnyVelocityConstraint, InteractionGroups, - ParallelSolverConstraints, PositionConstraint, PositionGroundConstraint, + AnyJointVelocityConstraint, AnyVelocityConstraint, ParallelSolverConstraints, }; -use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet}; -use crate::geometry::ContactManifold; +use crate::dynamics::IntegrationParameters; use crate::math::{Isometry, Real}; -#[cfg(feature = "simd-is-enabled")] -use crate::{ - dynamics::solver::{WPositionConstraint, WPositionGroundConstraint}, - math::SIMD_WIDTH, -}; use std::sync::atomic::Ordering; -pub(crate) enum PositionConstraintDesc { - NongroundNongrouped(usize), - GroundNongrouped(usize), - #[cfg(feature = "simd-is-enabled")] - NongroundGrouped([usize; SIMD_WIDTH]), - #[cfg(feature = "simd-is-enabled")] - GroundGrouped([usize; SIMD_WIDTH]), -} - pub(crate) struct ParallelPositionSolver; impl ParallelPositionSolver { diff --git a/src/dynamics/solver/parallel_solver_constraints.rs b/src/dynamics/solver/parallel_solver_constraints.rs index fe144bb..fcdcbff 100644 --- a/src/dynamics/solver/parallel_solver_constraints.rs +++ b/src/dynamics/solver/parallel_solver_constraints.rs @@ -1,17 +1,19 @@ use super::ParallelInteractionGroups; -use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, DeltaVel, ThreadContext}; +use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, ThreadContext}; use crate::dynamics::solver::categorization::{categorize_contacts, categorize_joints}; use crate::dynamics::solver::{ AnyJointPositionConstraint, AnyPositionConstraint, InteractionGroups, PositionConstraint, - PositionGroundConstraint, VelocityConstraint, VelocityGroundConstraint, WPositionConstraint, - WPositionGroundConstraint, + PositionGroundConstraint, VelocityConstraint, VelocityGroundConstraint, }; use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet}; use crate::geometry::ContactManifold; #[cfg(feature = "simd-is-enabled")] use crate::{ - dynamics::solver::{WVelocityConstraint, WVelocityGroundConstraint}, - math::{Real, SIMD_WIDTH}, + dynamics::solver::{ + WPositionConstraint, WPositionGroundConstraint, WVelocityConstraint, + WVelocityGroundConstraint, + }, + math::SIMD_WIDTH, }; use std::sync::atomic::Ordering; diff --git a/src/dynamics/solver/parallel_velocity_solver.rs b/src/dynamics/solver/parallel_velocity_solver.rs index 9701547..824442c 100644 --- a/src/dynamics/solver/parallel_velocity_solver.rs +++ b/src/dynamics/solver/parallel_velocity_solver.rs @@ -1,18 +1,10 @@ -use super::ParallelInteractionGroups; use super::{AnyJointVelocityConstraint, AnyVelocityConstraint, DeltaVel, ThreadContext}; -use crate::dynamics::solver::categorization::{categorize_contacts, categorize_joints}; -use crate::dynamics::solver::parallel_solver_constraints::ConstraintDesc; use crate::dynamics::solver::{ - AnyJointPositionConstraint, AnyPositionConstraint, InteractionGroups, - ParallelSolverConstraints, VelocityConstraint, VelocityGroundConstraint, + AnyJointPositionConstraint, AnyPositionConstraint, ParallelSolverConstraints, }; -use crate::dynamics::{IntegrationParameters, JointGraphEdge, RigidBodySet}; +use crate::dynamics::{IntegrationParameters, JointGraphEdge}; use crate::geometry::ContactManifold; -#[cfg(feature = "simd-is-enabled")] -use crate::{ - dynamics::solver::{WVelocityConstraint, WVelocityGroundConstraint}, - math::{Real, SIMD_WIDTH}, -}; +use crate::math::Real; use std::sync::atomic::Ordering; pub(crate) struct ParallelVelocitySolver {} diff --git a/src/dynamics/solver/position_constraint.rs b/src/dynamics/solver/position_constraint.rs index f846989..844b1cd 100644 --- a/src/dynamics/solver/position_constraint.rs +++ b/src/dynamics/solver/position_constraint.rs @@ -51,12 +51,6 @@ pub(crate) struct PositionConstraint { } impl PositionConstraint { - #[cfg(feature = "parallel")] - pub fn num_active_constraints(manifold: &ContactManifold) -> usize { - let rest = manifold.data.solver_contacts.len() % MAX_MANIFOLD_POINTS != 0; - manifold.data.solver_contacts.len() / MAX_MANIFOLD_POINTS + rest as usize - } - pub fn generate( params: &IntegrationParameters, manifold: &ContactManifold, @@ -25,8 +25,6 @@ pub extern crate nalgebra as na; #[cfg(feature = "serde")] #[macro_use] extern crate serde; -#[macro_use] -extern crate approx; extern crate num_traits as num; // #[macro_use] // extern crate array_macro; @@ -51,6 +49,7 @@ macro_rules! enable_flush_to_zero( } ); +#[cfg(feature = "simd-is-enabled")] macro_rules! array( ($callback: expr; SIMD_WIDTH) => { { |
