#include <CollisionPairInserter.h>
|
virtual int | apply (const Opcode::AABBCollisionNode *b1, const Opcode::AABBCollisionNode *b2, int id1, int id2, int num_of_i_points, Vector3 i_points[4], Vector3 &n_vector, double depth, Vector3 &n1, Vector3 &m1, int ctype, Opcode::MeshInterface *mesh1, Opcode::MeshInterface *mesh2) |
| refine collision information using neighboring triangls More...
|
|
| CollisionPairInserter () |
|
virtual int | detectTriTriOverlap (const Vector3 &P1, const Vector3 &P2, const Vector3 &P3, const Vector3 &Q1, const Vector3 &Q2, const Vector3 &Q3, collision_data *col_p) |
| detect collsiion between triangles More...
|
|
virtual | ~CollisionPairInserter () |
|
void | clear () |
| clear collision information More...
|
|
| CollisionPairInserterBase () |
|
std::vector< collision_data > & | collisions () |
| get collision information More...
|
|
void | set (ColdetModelSharedDataSet *model0, ColdetModelSharedDataSet *model1) |
|
virtual | ~CollisionPairInserterBase () |
|
|
void | check_separability (int id1, int id2, int ctype) |
|
void | examine_normal_vector (int id1, int id2, int ctype) |
|
void | find_signed_distance (Vector3 &signed_distance, col_tri *trp, int nth, int ctype, int obj) |
|
void | find_signed_distance (Vector3 &signed_distance, const Vector3 &vert, int nth, int ctype, int obj) |
|
void | find_signed_distance (Vector3 &signed_distance1, ColdetModelSharedDataSet *model0, int id1, int contactIndex, int ctype, int obj) |
|
int | get_triangles_in_convex_neighbor (ColdetModelSharedDataSet *model, int id, col_tri *tri_convex_neighbor, int max_num) |
|
void | get_triangles_in_convex_neighbor (ColdetModelSharedDataSet *model, int id, col_tri *tri_convex_neighbor, std::vector< int > &map, int &count) |
|
int | new_point_test (int k) |
|
void | triangleIndexToPoint (ColdetModelSharedDataSet *model, int id, col_tri &tri) |
|
Definition at line 18 of file CollisionPairInserter.h.
◆ CollisionPairInserter()
CollisionPairInserter::CollisionPairInserter |
( |
| ) |
|
◆ ~CollisionPairInserter()
CollisionPairInserter::~CollisionPairInserter |
( |
| ) |
|
|
virtual |
◆ apply()
int CollisionPairInserter::apply |
( |
const Opcode::AABBCollisionNode * |
b1, |
|
|
const Opcode::AABBCollisionNode * |
b2, |
|
|
int |
id1, |
|
|
int |
id2, |
|
|
int |
num_of_i_points, |
|
|
Vector3 |
i_points[4], |
|
|
Vector3 & |
n_vector, |
|
|
double |
depth, |
|
|
Vector3 & |
n1, |
|
|
Vector3 & |
m1, |
|
|
int |
ctype, |
|
|
Opcode::MeshInterface * |
mesh1, |
|
|
Opcode::MeshInterface * |
mesh2 |
|
) |
| |
|
virtual |
refine collision information using neighboring triangls
- Parameters
-
b1 | node of the first colliding triangle |
b2 | node of the second colliding triangle |
id1 | id of the first colliding triangle |
id2 | id of the second colliding triangle |
num_of_i_points | the number of intersecting points |
i_points | intersecting points |
n_vector | normal vector of collision |
depth | penetration depth |
n1 | normal vector of the first triangle |
m1 | normal vector of the second triangle |
ctype | collision type |
mesh1 | mesh which includes the first triangle |
mesh2 | mesh which includes the second triangle |
- Returns
- CD_OK if refined successfully
- Note
- collision information is expressed in the second mesh coordinates
Implements hrp::CollisionPairInserterBase.
Definition at line 390 of file CollisionPairInserter.cpp.
◆ calc_normal_vector()
void CollisionPairInserter::calc_normal_vector |
( |
col_tri * |
t | ) |
|
|
staticprivate |
◆ check_separability()
void CollisionPairInserter::check_separability |
( |
int |
id1, |
|
|
int |
id2, |
|
|
int |
ctype |
|
) |
| |
|
private |
◆ copy_tri() [1/2]
◆ copy_tri() [2/2]
◆ detectTriTriOverlap()
detect collsiion between triangles
- Parameters
-
P1 | the first vertex of the first triangle |
P2 | the second vertex of the first triangle |
P3 | the third vertex of the first triangle |
Q1 | the first vertex of the second triangle |
Q2 | the second vertex of the second triangle |
Q3 | the third vertex of the second triangle |
col_p | collision information |
- Returns
- 1 if collision is detected, 0 otherwise
- Note
- all vertices must be represented in the same coordinates
Implements hrp::CollisionPairInserterBase.
Definition at line 446 of file CollisionPairInserter.cpp.
◆ examine_normal_vector()
void CollisionPairInserter::examine_normal_vector |
( |
int |
id1, |
|
|
int |
id2, |
|
|
int |
ctype |
|
) |
| |
|
private |
◆ find_signed_distance() [1/3]
◆ find_signed_distance() [2/3]
◆ find_signed_distance() [3/3]
◆ get_triangles_in_convex_neighbor() [1/2]
◆ get_triangles_in_convex_neighbor() [2/2]
◆ is_convex_neighbor()
◆ new_point_test()
int CollisionPairInserter::new_point_test |
( |
int |
k | ) |
|
|
private |
◆ triangleIndexToPoint()
The documentation for this class was generated from the following files: