PhysicsEngineParametersUpdate

Struct PhysicsEngineParametersUpdate 

Source
pub struct PhysicsEngineParametersUpdate {
Show 27 fields pub fixed_time_step: Option<Duration>, pub num_solver_iterations: Option<usize>, pub use_split_impulse: Option<bool>, pub split_impulse_penetration_threshold: Option<f64>, pub num_sub_steps: Option<usize>, pub collision_filter_mode: Option<usize>, pub contact_breaking_threshold: Option<f64>, pub max_num_cmd_per_1_ms: Option<i32>, pub enable_file_caching: Option<bool>, pub restitution_velocity_threshold: Option<f64>, pub erp: Option<f64>, pub contact_erp: Option<f64>, pub friction_erp: Option<f64>, pub enable_cone_friction: Option<bool>, pub deterministic_overlapping_pairs: Option<bool>, pub allowed_ccd_penetration: Option<f64>, pub joint_feedback_mode: Option<JointFeedbackMode>, pub solver_residual_threshold: Option<f64>, pub contact_slop: Option<f64>, pub enable_sat: Option<bool>, pub constraint_solver_type: Option<ConstraintSolverType>, pub global_cfm: Option<f64>, pub minimum_solver_island_size: Option<usize>, pub report_solver_analytics: Option<bool>, pub warm_starting_factor: Option<f64>, pub sparse_sdf_voxel_size: Option<f64>, pub num_non_contact_inner_iterations: Option<usize>,
}
Expand description

Options for the set_physics_engine_parameter method.

Fields§

§fixed_time_step: Option<Duration>

See the warning in the set_time_step section. physics engine time step, each time you call step_simulation simulated time will progress this amount. Same as set_time_step

§num_solver_iterations: Option<usize>

Choose the maximum number of constraint solver iterations. If the solver_residual_threshold is reached, the solver may terminate before the num_solver_iterations.

§use_split_impulse: Option<bool>

Advanced feature, only when using maximal coordinates: split the positional constraint solving and velocity constraint solving in two stages, to prevent huge penetration recovery forces.

§split_impulse_penetration_threshold: Option<f64>

Related to use_split_impulse: if the penetration for a particular contact constraint is less than this specified threshold, no split impulse will happen for that contact.

§num_sub_steps: Option<usize>

Subdivide the physics simulation step further by num_sub_steps. This will trade performance over accuracy.

§collision_filter_mode: Option<usize>

Use 0 for default collision filter: (group A&maskB) AND (groupB&maskA). Use 1 to switch to the OR collision filter: (group A&maskB) OR (groupB&maskA)

§contact_breaking_threshold: Option<f64>

Contact points with distance exceeding this threshold are not processed by the LCP solver. In addition, AABBs are extended by this number. Defaults to 0.02 in Bullet 2.x.

§max_num_cmd_per_1_ms: Option<i32>

Experimental: add 1ms sleep if the number of commands executed exceed this threshold. setting the value to -1 disables the feature.

§enable_file_caching: Option<bool>

Set to false to disable file caching, such as .obj wavefront file loading

§restitution_velocity_threshold: Option<f64>

If relative velocity is below this threshold, restitution will be zero.

§erp: Option<f64>

constraint error reduction parameter (non-contact, non-friction)

§contact_erp: Option<f64>

contact error reduction parameter

§friction_erp: Option<f64>

friction error reduction parameter (when positional friction anchors are enabled)

§enable_cone_friction: Option<bool>

Set to false to disable implicit cone friction and use pyramid approximation (cone is default). NOTE: Although enabled by default, it is worth trying to disable this feature, in case there are friction artifacts.

§deterministic_overlapping_pairs: Option<bool>

enables or disables sorting of overlapping pairs (backward compatibility setting).

§allowed_ccd_penetration: Option<f64>

If continuous collision detection (CCD) is enabled, CCD will not be used if the penetration is below this threshold.

§joint_feedback_mode: Option<JointFeedbackMode>

Specifcy joint feedback frame

§solver_residual_threshold: Option<f64>

velocity threshold, if the maximum velocity-level error for each constraint is below this threshold the solver will terminate (unless the solver hits the numSolverIterations). Default value is 1e-7

§contact_slop: Option<f64>

Position correction of contacts is not resolved below this threshold, to allow more stable contact.

§enable_sat: Option<bool>

if true, enable separating axis theorem based convex collision detection, if features are available (instead of using GJK and EPA). Requires URDF_INITIALIZE_SAT_FEATURES in the UrdfOptions in load_urdf.

§constraint_solver_type: Option<ConstraintSolverType>

Experimental (best to ignore): allow to use a direct LCP solver, such as Dantzig.

§global_cfm: Option<f64>

Experimental (best to ignore) global default constraint force mixing parameter.

§minimum_solver_island_size: Option<usize>

Experimental (best to ignore), minimum size of constraint solving islands, to avoid very small islands of independent constraints.

§report_solver_analytics: Option<bool>

when true, additional solve analytics is available.

§warm_starting_factor: Option<f64>

fraction of previous-frame force/impulse that is used to initialize the initial solver solution

§sparse_sdf_voxel_size: Option<f64>§num_non_contact_inner_iterations: Option<usize>

Trait Implementations§

Source§

impl Debug for PhysicsEngineParametersUpdate

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for PhysicsEngineParametersUpdate

Source§

fn default() -> PhysicsEngineParametersUpdate

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<X> Pipe for X

Source§

fn pipe<Return, Function>(self, f: Function) -> Return
where Self: Sized, Function: FnOnce(Self) -> Return,

Apply f to self. Read more
Source§

fn pipe_ref<'a, Return, Function>(&'a self, f: Function) -> Return
where Function: FnOnce(&'a Self) -> Return,

Apply f to &self. Read more
Source§

fn pipe_mut<'a, Return, Function>(&'a mut self, f: Function) -> Return
where Function: FnOnce(&'a mut Self) -> Return,

Apply f to &mut self. Read more
Source§

fn pipe_as_ref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
where Self: AsRef<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> Return,

Apply f to &self where f takes a single parameter of type Param and Self implements trait AsRef<Param>. Read more
Source§

fn pipe_as_mut<'a, Param, Return, Function>(&'a mut self, f: Function) -> Return
where Self: AsMut<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a mut Param) -> Return,

Apply f to &mut self where f takes a single parameter of type Param and Self implements trait AsMut<Param>. Read more
Source§

fn pipe_deref<'a, Param, Return, Function>(&'a self, f: Function) -> Return
where Self: Deref<Target = Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> Return,

Apply f to &self where f takes a single parameter of type Param and Self implements trait Deref<Target = Param>. Read more
Source§

fn pipe_deref_mut<'a, Param, Return, Function>( &'a mut self, f: Function, ) -> Return
where Self: DerefMut<Target = Param>, Param: 'a + ?Sized, Function: FnOnce(&'a mut Param) -> Return,

Apply f to &mut self where f takes a single parameter of type Param and Self implements trait DerefMut<Target = Param>. Read more
Source§

fn pipe_borrow<'a, Param, Return, Function>(&'a self, f: Function) -> Return
where Self: Borrow<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a Param) -> Return,

Apply f to &self where f takes a single parameter of type Param and Self implements trait Borrow<Param>. Read more
Source§

fn pipe_borrow_mut<'a, Param, Return, Function>( &'a mut self, f: Function, ) -> Return
where Self: BorrowMut<Param>, Param: 'a + ?Sized, Function: FnOnce(&'a mut Param) -> Return,

Apply f to &mut self where f takes a single parameter of type Param and Self implements trait BorrowMut<Param>. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.