pub trait ArticulationReducedCoordinate: Class<PxArticulationReducedCoordinate> + UserData {
    type ArticulationLink: ArticulationLink;

Show 35 methods // Provided methods unsafe fn from_raw( ptr: *mut PxArticulationReducedCoordinate, user_data: Self::UserData ) -> Option<Owner<Self>> { ... } fn get_user_data(&self) -> &Self::UserData { ... } fn get_user_data_mut(&mut self) -> &mut Self::UserData { ... } fn common_init(&mut self) { ... } fn get_dofs(&self) -> usize { ... } fn set_articulation_flag(&mut self, flag: ArticulationFlag, value: bool) { ... } fn set_articulation_flags(&mut self, flags: ArticulationFlags) { ... } fn get_articulation_flags(&self) -> ArticulationFlags { ... } fn get_nb_links(&self) -> u32 { ... } fn root_link(&self) -> Option<&Self::ArticulationLink> { ... } fn set_root_global_pose(&mut self, pose: &PxTransform) { ... } fn get_root_global_pose(&self) -> PxTransform { ... } fn create_cache(&self) -> Option<ArticulationCache> { ... } fn get_cache_data_size(&self) -> u32 { ... } fn apply_cache( &mut self, cache: &mut ArticulationCache, flags: ArticulationCacheFlags, autowake: bool ) { ... } fn copy_internal_state_to_cache( &self, cache: &mut ArticulationCache, flags: ArticulationCacheFlags ) { ... } fn compute_generalized_gravity_force(&self, cache: &mut ArticulationCache) { ... } fn compute_coriolis_and_centrifugal_force( &self, cache: &mut ArticulationCache ) { ... } fn compute_generalized_external_force(&self, cache: &mut ArticulationCache) { ... } fn compute_joint_acceleration(&self, cache: &mut ArticulationCache) { ... } fn compute_joint_force(&self, cache: &mut ArticulationCache) { ... } fn compute_dense_jacobian(&self, cache: &mut ArticulationCache) -> (u32, u32) { ... } fn compute_coefficient_matrix(&self, cache: &mut ArticulationCache) { ... } fn compute_lambda( &self, cache: &mut ArticulationCache, initial_state: &mut ArticulationCache, joint_torques: &[f32], max_iter: u32 ) -> bool { ... } fn compute_generalized_mass_matrix(&self, cache: &mut ArticulationCache) { ... } fn pack_joint_data(&self, maximum: &[f32], reduced: &mut [f32]) { ... } fn unpack_joint_data(&self, reduced: &[f32], maximum: &mut [f32]) { ... } fn get_center_of_mass(&self) -> PxVec3 { ... } fn get_center_of_mass_and_velocity(&self) -> (PxVec3, PxVec3) { ... } fn set_collision_filter( &mut self, this_layer: CollisionLayers, other_layer: CollisionLayers ) { ... } fn set_query_filter(&mut self, this_layer: CollisionLayers) { ... } fn set_solver_iteration_counts( &mut self, min_position_iters: u32, min_velocity_iters: u32 ) { ... } fn get_solver_iteration_counts(&self) -> (u32, u32) { ... } fn get_links(&self) -> Vec<&Self::ArticulationLink> { ... } fn get_links_mut(&mut self) -> Vec<&mut Self::ArticulationLink> { ... }
}

Required Associated Types§

Provided Methods§

source

unsafe fn from_raw( ptr: *mut PxArticulationReducedCoordinate, user_data: Self::UserData ) -> Option<Owner<Self>>

Safety

Owner’s own the pointer they wrap, using the pointer after dropping the Owner, or creating multiple Owners from the same pointer will cause UB. Use into_ptr to retrieve the pointer and consume the Owner without dropping the pointee. This also sets the user data field, all constructors must initialize user data.

source

fn get_user_data(&self) -> &Self::UserData

Get a reference to the user data.

source

fn get_user_data_mut(&mut self) -> &mut Self::UserData

Get a mutable reference to the user data.

source

fn common_init(&mut self)

source

fn get_dofs(&self) -> usize

Get the number of dofs for the body

source

fn set_articulation_flag(&mut self, flag: ArticulationFlag, value: bool)

Set an articulation flag

source

fn set_articulation_flags(&mut self, flags: ArticulationFlags)

Set the articulation flags

source

fn get_articulation_flags(&self) -> ArticulationFlags

Get the articulation flags

Get the total number of links on this articulation

Get a reference the root link of this articulation if it has one

source

fn set_root_global_pose(&mut self, pose: &PxTransform)

source

fn get_root_global_pose(&self) -> PxTransform

See physx_sys::PxArticulationReducedCoordinate_getRootGlobalPose, prefer using [ArticulationCache::get_root_link_data]

source

fn create_cache(&self) -> Option<ArticulationCache>

Create a new cache for this articulation

source

fn get_cache_data_size(&self) -> u32

Get the memory size of this cache

source

fn apply_cache( &mut self, cache: &mut ArticulationCache, flags: ArticulationCacheFlags, autowake: bool )

Apply the cache to the articulation

source

fn copy_internal_state_to_cache( &self, cache: &mut ArticulationCache, flags: ArticulationCacheFlags )

Copy from the articulation to the cache based on the flags

source

fn compute_generalized_gravity_force(&self, cache: &mut ArticulationCache)

Compute generalized gravity forces acting upon the body and store in cache

source

fn compute_coriolis_and_centrifugal_force(&self, cache: &mut ArticulationCache)

Compute the coriolis and centrifugal forces acting upon the multibody

source

fn compute_generalized_external_force(&self, cache: &mut ArticulationCache)

Compute joint force changes caused by external forces

source

fn compute_joint_acceleration(&self, cache: &mut ArticulationCache)

Compute joint acceleration caused by current joint forces

source

fn compute_joint_force(&self, cache: &mut ArticulationCache)

Compute joint force caused by changes in joint acceleration

source

fn compute_dense_jacobian(&self, cache: &mut ArticulationCache) -> (u32, u32)

Compute dense jacobian and store into the cache. Returns: (cols, rows)

source

fn compute_coefficient_matrix(&self, cache: &mut ArticulationCache)

Compute the coefficient matrix and store into cache

source

fn compute_lambda( &self, cache: &mut ArticulationCache, initial_state: &mut ArticulationCache, joint_torques: &[f32], max_iter: u32 ) -> bool

Compute the force needed to match the velocity and acceleration values given in initial_state

source

fn compute_generalized_mass_matrix(&self, cache: &mut ArticulationCache)

Compute the generalized mass matrix and store into the cache

source

fn pack_joint_data(&self, maximum: &[f32], reduced: &mut [f32])

Pack the maximum coordinates data in maximum into the reduced coordinates data.

source

fn unpack_joint_data(&self, reduced: &[f32], maximum: &mut [f32])

Unpack the reduced/generalized coordinates data in reduced into maximum. Maximum needs to have six slots for every joint.

source

fn get_center_of_mass(&self) -> PxVec3

Compute the total center of mass w.r.t. all attached shapes

source

fn get_center_of_mass_and_velocity(&self) -> (PxVec3, PxVec3)

Compute the total center of mass and velocity w.r.t. all attached shapes

source

fn set_collision_filter( &mut self, this_layer: CollisionLayers, other_layer: CollisionLayers )

Set the collision layer on all links and shapes of this body

source

fn set_query_filter(&mut self, this_layer: CollisionLayers)

Set the collision layer on all links and shapes of this body

source

fn set_solver_iteration_counts( &mut self, min_position_iters: u32, min_velocity_iters: u32 )

Sets the number of iterations the solver should perform. If the articulation is behaving erratically, increasing the iteration counts may improve stability.

source

fn get_solver_iteration_counts(&self) -> (u32, u32)

Get the number of (position, velocity) iterations the solver will perform.

Get a vec of all the links

Get a mutable vec of all the links

Implementors§