Choreonoid  1.5
CollisionPairInserter.h
Go to the documentation of this file.
1 
2 #ifndef CNOID_COLLISION_COLLISION_PAIR_INSERTER_H_INCLUDED
3 #define CNOID_COLLISION_COLLISION_PAIR_INSERTER_H_INCLUDED
4 
5 #include "CollisionData.h"
6 #include <vector>
7 
8 namespace cnoid {
9 class ColdetModelInternalModel;
10 }
11 
12 namespace Opcode {
13 
14 class AABBCollisionNode;
15 class MeshInterface;
16 
18 {
19 public:
24  void clear(){
25  cdContact.clear();
26  }
27 
40  virtual int detectTriTriOverlap(
41  const cnoid::Vector3& P1,
42  const cnoid::Vector3& P2,
43  const cnoid::Vector3& P3,
44  const cnoid::Vector3& Q1,
45  const cnoid::Vector3& Q2,
46  const cnoid::Vector3& Q3,
47  cnoid::collision_data* col_p)=0;
48 
67  virtual int apply(const Opcode::AABBCollisionNode* b1,
68  const Opcode::AABBCollisionNode* b2,
69  int id1, int id2,
70  int num_of_i_points,
71  cnoid::Vector3 i_points[4],
72  cnoid::Vector3& n_vector,
73  double depth,
74  cnoid::Vector3& n1,
75  cnoid::Vector3& m1,
76  int ctype,
77  Opcode::MeshInterface* mesh1,
78  Opcode::MeshInterface* mesh2)=0;
79 
84  std::vector<cnoid::collision_data>& collisions() {
85  return cdContact;
86  }
87 
90  models[0] = model0;
91  models[1] = model1;
92  }
93 
96  double CD_s1;
97 
100  double CD_s2;
101 
102  std::vector<cnoid::collision_data> cdContact;
103 
105 };
106 }
107 
108 #endif
Definition: CollisionData.h:16
Definition: CollisionPairInserter.h:17
void clear()
clear collision information
Definition: CollisionPairInserter.h:24
Definition: CollisionPairInserter.h:12
std::vector< cnoid::collision_data > & collisions()
get collision information
Definition: CollisionPairInserter.h:84
virtual ~CollisionPairInserter()
Definition: CollisionPairInserter.h:20
double CD_s2
scale of the second mesh
Definition: CollisionPairInserter.h:100
Definition: ColdetModelInternalModel.h:14
cnoid::Vector3 CD_Trans2
translation of the second mesh
Definition: CollisionPairInserter.h:99
cnoid::Matrix3 CD_Rot1
rotation of the first mesh
Definition: CollisionPairInserter.h:94
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
std::vector< cnoid::collision_data > cdContact
collision information
Definition: CollisionPairInserter.h:102
Eigen::Vector3d Vector3
Definition: EigenTypes.h:58
cnoid::Vector3 CD_Trans1
translation of the first mesh
Definition: CollisionPairInserter.h:95
cnoid::Matrix3 CD_Rot2
rotation of the second mesh
Definition: CollisionPairInserter.h:98
Eigen::Matrix3d Matrix3
Definition: EigenTypes.h:57
double CD_s1
scale of the first mesh
Definition: CollisionPairInserter.h:96