Bullet Collision Detection & Physics Library
btManifoldPoint.h
Go to the documentation of this file.
1 /*
2 Bullet Continuous Collision Detection and Physics Library
3 Copyright (c) 2003-2006 Erwin Coumans http://continuousphysics.com/Bullet/
4 
5 This software is provided 'as-is', without any express or implied warranty.
6 In no event will the authors be held liable for any damages arising from the use of this software.
7 Permission is granted to anyone to use this software for any purpose,
8 including commercial applications, and to alter it and redistribute it freely,
9 subject to the following restrictions:
10 
11 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
12 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
13 3. This notice may not be removed or altered from any source distribution.
14 */
15 
16 #ifndef BT_MANIFOLD_CONTACT_POINT_H
17 #define BT_MANIFOLD_CONTACT_POINT_H
18 
19 #include "LinearMath/btVector3.h"
21 
22 #ifdef PFX_USE_FREE_VECTORMATH
23  #include "physics_effects/base_level/solver/pfx_constraint_row.h"
25 #else
26  // Don't change following order of parameters
28  btScalar m_normal[3];
34  };
36 #endif //PFX_USE_FREE_VECTORMATH
37 
38 
39 
43  {
44  public:
48  m_appliedImpulse(0.f),
51  m_contactMotion1(0.f),
52  m_contactMotion2(0.f),
53  m_contactCFM1(0.f),
54  m_contactCFM2(0.f),
55  m_lifeTime(0)
56  {
57  }
58 
59  btManifoldPoint( const btVector3 &pointA, const btVector3 &pointB,
60  const btVector3 &normal,
61  btScalar distance ) :
62  m_localPointA( pointA ),
63  m_localPointB( pointB ),
64  m_normalWorldOnB( normal ),
65  m_distance1( distance ),
71  m_appliedImpulse(0.f),
74  m_contactMotion1(0.f),
75  m_contactMotion2(0.f),
76  m_contactCFM1(0.f),
77  m_contactCFM2(0.f),
78  m_lifeTime(0)
79  {
80 
81  }
82 
83 
84 
91 
96 
97  //BP mod, store contact triangles.
98  int m_partId0;
99  int m_partId1;
100  int m_index0;
101  int m_index1;
102 
103  mutable void* m_userPersistentData;
105 
113 
114  int m_lifeTime;//lifetime of the contactpoint in frames
115 
118 
119 
120 
121 
123  {
124  return m_distance1;
125  }
126  int getLifeTime() const
127  {
128  return m_lifeTime;
129  }
130 
132  return m_positionWorldOnA;
133 // return m_positionWorldOnB + m_normalWorldOnB * m_distance1;
134  }
135 
137  {
138  return m_positionWorldOnB;
139  }
140 
142  {
143  m_distance1 = dist;
144  }
145 
148  {
149  return m_appliedImpulse;
150  }
151 
152 
153 
154  };
155 
156 #endif //BT_MANIFOLD_CONTACT_POINT_H