chrono::collision::ChCNarrowphaseDispatch Class Reference

Description

Class for performing narrow-phase collision detection.

#include <ChCollision.h>

Collaboration diagram for chrono::collision::ChCNarrowphaseDispatch:

Public Member Functions

void ClearContacts ()
 Clear contact data structures.
 
void ProcessRigids ()
 Perform collision detection.
 
void PreprocessCount ()
 
void PreprocessLocalToParent ()
 Transform the shape data to the global reference frame. More...
 
void DispatchRigid ()
 
void DispatchRigidFluid ()
 
void DispatchRigidTet ()
 
void DispatchFluid ()
 
void SphereSphereContact (const int num_fluid_bodies, const int body_offset, const real radius, const real collision_envelope, const real3 &min_bounding_point, const real3 &max_bounding_point, const custom_vector< real3 > &pos_fluid, const custom_vector< real3 > &vel_fluid, custom_vector< real3 > &sorted_pos_fluid, custom_vector< real3 > &sorted_vel_fluid, DynamicVector< real > &v, custom_vector< int > &neighbor_fluid_fluid, custom_vector< int > &contact_counts, custom_vector< int > &particle_indices, custom_vector< int > &reverse_mapping, vec3 &bins_per_axis, uint &num_fluid_contacts)
 
void RigidSphereContact (const real sphere_radius, const int num_spheres, const custom_vector< real3 > &pos_sphere, const short2 &family, custom_vector< real3 > &norm_rigid_sphere, custom_vector< real3 > &cpta_rigid_sphere, custom_vector< real > &dpth_rigid_sphere, custom_vector< int > &neighbor_rigid_sphere, custom_vector< int > &contact_counts, uint &num_contacts)
 
void RigidTetContact (custom_vector< real3 > &norm_rigid_tet, custom_vector< real3 > &cpta_rigid_tet, custom_vector< real3 > &cptb_rigid_tet, custom_vector< real > &dpth_rigid_tet, custom_vector< int > &neighbor_rigid_tet, custom_vector< real4 > &face_rigid_tet, custom_vector< int > &contact_counts, uint &num_contacts)
 
void MarkerTetContact (const real sphere_radius, const int num_spheres, const custom_vector< real3 > &pos_sphere, const short2 &family_sphere, custom_vector< real3 > &norm_marker_tet, custom_vector< real3 > &cptb_marker_tet, custom_vector< real > &dpth_marker_tet, custom_vector< int > &neighbor_marker_tet, custom_vector< real4 > &face_marker_tet, custom_vector< int > &contact_counts, uint &num_contacts)
 
void DispatchMPR ()
 
void DispatchR ()
 
void DispatchHybridMPR ()
 
void Dispatch_Init (uint index, uint &icoll, uint &ID_A, uint &ID_B, ConvexShape *shapeA, ConvexShape *shapeB)
 
void Dispatch_Finalize (uint icoll, uint ID_A, uint ID_B, int nC)
 

Public Attributes

ChParallelDataManagerdata_manager
 

Member Function Documentation

void chrono::collision::ChCNarrowphaseDispatch::PreprocessLocalToParent ( )

Transform the shape data to the global reference frame.

Perform this as a preprocessing step to improve performance. Performance is improved because the amount of data loaded is still the same but it does not have to be transformed per contact pair, now it is transformed once per shape.