AnimatLab  2
Test
btAnimatGeneric6DofConstraint.cpp
Go to the documentation of this file.
1 
7 #include "StdAfx.h"
9 
10 namespace BulletAnimatSim
11 {
12  namespace Environment
13  {
14  namespace Joints
15  {
16 
17 btAnimatGeneric6DofConstraint::btAnimatGeneric6DofConstraint(btRigidBody& rbA, btRigidBody& rbB, const btTransform& frameInA, const btTransform& frameInB ,bool useLinearReferenceFrameA) :
18  btGeneric6DofSpringConstraint(rbA, rbB, frameInA, frameInB, useLinearReferenceFrameA)
19 {
20 }
21 
22 btAnimatGeneric6DofConstraint::btAnimatGeneric6DofConstraint(btRigidBody& rbB, const btTransform& frameInB, bool useLinearReferenceFrameB) :
23  btGeneric6DofSpringConstraint(rbB, frameInB, useLinearReferenceFrameB)
24 {
25 }
26 
27 btVector3 btAnimatGeneric6DofConstraint::GetLinearForceAxis(int iAxis)
28 {
29  btVector3 linear_axis;
30 
31  if (m_useLinearReferenceFrameA)
32  linear_axis = m_calculatedTransformA.getBasis().getColumn(iAxis);
33  else
34  linear_axis = m_calculatedTransformB.getBasis().getColumn(iAxis);
35 
36  return linear_axis;
37 }
38 
39 btVector3 btAnimatGeneric6DofConstraint::GetAngularForceAxis(int iAxis)
40 {
41  return m_calculatedAxis[iAxis];
42 }
43 
44 void btAnimatGeneric6DofConstraint::ApplyMotorForces(btScalar timeStep)
45 {
46  // angular
47  btVector3 angular_axis;
48  btScalar angularJacDiagABInv;
49  int i=0;
50  //for (int i=0;i<3;i++)
51  //{
52  if (m_angularLimits[i].needApplyTorques())
53  {
54 
55  // get axis
56  angular_axis = getAxis(i);
57 
58  angularJacDiagABInv = btScalar(1.) / m_jacAng[i].getDiagonal();
59 
60  m_angularLimits[i].solveAngularLimits(timeStep,angular_axis,angularJacDiagABInv, &m_rbA,&m_rbB);
61  }
62  //}
63 }
64 
65 
66  } //Joints
67  } // Environment
68 } //BulletAnimatSim
Declares the btGeneric6DofConstraint class.
Classes for implementing the cm-labs vortex physics engine for AnimatLab.