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. | |
int | PreprocessCount () |
Calculate total number of potential contacts. | |
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 | |
ChMulticoreDataManager * | data_manager |
Member Function Documentation
◆ PreprocessLocalToParent()
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.
The documentation for this class was generated from the following files:
- /builds/uwsbel/chrono/src/chrono_multicore/collision/ChCollision.h
- /builds/uwsbel/chrono/src/chrono_multicore/collision/ChNarrowphaseDispatch.cpp