CollisionPairInserterBase.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008, AIST, the University of Tokyo and General Robotix Inc.
3  * All rights reserved. This program is made available under the terms of the
4  * Eclipse Public License v1.0 which accompanies this distribution, and is
5  * available at http://www.eclipse.org/legal/epl-v10.html
6  * Contributors:
7  * National Institute of Advanced Industrial Science and Technology (AIST)
8  * General Robotix Inc.
9  */
10 
11 #ifndef HRPCOLLISION_COLLISION_PAIR_INSERTER_BASE_H_INCLUDED
12 #define HRPCOLLISION_COLLISION_PAIR_INSERTER_BASE_H_INCLUDED
13 
14 #include "CollisionData.h"
15 #include <boost/intrusive_ptr.hpp>
16 #include <vector>
17 
18 namespace Opcode {
19 
20  class AABBCollisionNode;
21  class MeshInterface;
22 }
23 
24 namespace hrp {
25  class ColdetModelSharedDataSet;
26 
28  {
29  public:
35  void clear(){
36  cdContact.clear();
37  }
38 
51  virtual int detectTriTriOverlap(
52  const Vector3& P1,
53  const Vector3& P2,
54  const Vector3& P3,
55  const Vector3& Q1,
56  const Vector3& Q2,
57  const Vector3& Q3,
58  collision_data* col_p)=0;
59 
78  virtual int apply(const Opcode::AABBCollisionNode* b1,
79  const Opcode::AABBCollisionNode* b2,
80  int id1, int id2,
81  int num_of_i_points,
82  Vector3 i_points[4],
83  Vector3& n_vector,
84  double depth,
85  Vector3& n1,
86  Vector3& m1,
87  int ctype,
88  Opcode::MeshInterface* mesh1,
89  Opcode::MeshInterface* mesh2)=0;
90 
95  std::vector<collision_data>& collisions() {
96  return cdContact;
97  }
98 
100  ColdetModelSharedDataSet* model1){
101  models[0] = model0;
102  models[1] = model1;
103  }
104 
107  double CD_s1;
108 
111  double CD_s2;
112 
113  std::vector<collision_data> cdContact;
114 
116 
119  };
120 }
121 #endif
hrp::CollisionPairInserterBase::CD_s1
double CD_s1
scale of the first mesh
Definition: CollisionPairInserterBase.h:107
hrp::CollisionPairInserterBase::CollisionPairInserterBase
CollisionPairInserterBase()
Definition: CollisionPairInserterBase.h:30
CollisionData.h
hrp
Definition: ColdetModel.h:28
hrp::CollisionPairInserterBase::~CollisionPairInserterBase
virtual ~CollisionPairInserterBase()
Definition: CollisionPairInserterBase.h:31
AABBCollisionNode
Definition: OPC_OptimizedTree.h:76
hrp::CollisionPairInserterBase::CD_Trans2
Vector3 CD_Trans2
translation of the second mesh
Definition: CollisionPairInserterBase.h:110
hrp::Vector3
Eigen::Vector3d Vector3
Definition: EigenTypes.h:11
hrp::CollisionPairInserterBase::CD_s2
double CD_s2
scale of the second mesh
Definition: CollisionPairInserterBase.h:111
hrp::CollisionPairInserterBase::models
ColdetModelSharedDataSet * models[2]
Definition: CollisionPairInserterBase.h:115
hrp::CollisionPairInserterBase::set
void set(ColdetModelSharedDataSet *model0, ColdetModelSharedDataSet *model1)
Definition: CollisionPairInserterBase.h:99
hrp::CollisionPairInserterBase::CD_Rot2
Matrix33 CD_Rot2
rotation of the second mesh
Definition: CollisionPairInserterBase.h:109
hrp::ColdetModelSharedDataSet
Definition: ColdetModelSharedDataSet.h:29
hrp::collision_data
Definition: CollisionData.h:20
hrp::CollisionPairInserterBase::detectTriTriOverlap
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)=0
detect collsiion between triangles
hrp::CollisionPairInserterBase::clear
void clear()
clear collision information
Definition: CollisionPairInserterBase.h:35
hrp::CollisionPairInserterBase::CD_Rot1
Matrix33 CD_Rot1
rotation of the first mesh
Definition: CollisionPairInserterBase.h:105
hrp::CollisionPairInserterBase::cdContact
std::vector< collision_data > cdContact
collision information
Definition: CollisionPairInserterBase.h:113
hrp::CollisionPairInserterBase::CD_Trans1
Vector3 CD_Trans1
translation of the first mesh
Definition: CollisionPairInserterBase.h:106
hrp::Matrix33
Eigen::Matrix3d Matrix33
Definition: EigenTypes.h:12
hrp::CollisionPairInserterBase::normalVectorCorrection
bool normalVectorCorrection
flag to enable/disable normal vector correction
Definition: CollisionPairInserterBase.h:118
hrp::CollisionPairInserterBase::collisions
std::vector< collision_data > & collisions()
get collision information
Definition: CollisionPairInserterBase.h:95
MeshInterface
Definition: OPC_MeshInterface.h:53
hrp::CollisionPairInserterBase
Definition: CollisionPairInserterBase.h:27
hrp::CollisionPairInserterBase::apply
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)=0
refine collision information using neighboring triangls
Opcode
Definition: CollisionPairInserterBase.h:18


openhrp3
Author(s): AIST, General Robotix Inc., Nakamura Lab of Dept. of Mechano Informatics at University of Tokyo
autogenerated on Wed Sep 7 2022 02:51:02