Advertisement
Guest User

Untitled

a guest
Jul 15th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. CManifold* NewManifold = &Contact->Manifold;
  2. CManifold OldManifold = *NewManifold;
  3.  
  4. NewManifold->Clear();
  5.  
  6. CNarrowPhaseCollide* Collide = m_pnpiAlgorithms[Contact->Body0->m_psShape->ShapeType()][Contact->Body1->m_psShape->ShapeType()];
  7. Collide->Collide(*NewManifold, Contact->Body0->m_mTransform, Contact->Body0->m_psShape, Contact->Body1->m_mTransform, Contact->Body1->m_psShape);
  8.  
  9. for (unsigned int J = 0; J < NewManifold->TotalPoints; ++J) {
  10. CManifold::CONTACT_POINT* NewPoint = &NewManifold->ContactPoints[J];
  11.  
  12. for ( unsigned int K = 0; K < OldManifold.TotalPoints; ++K ) {
  13. CManifold::CONTACT_POINT* OldPoint = &OldManifold.ContactPoints[K];
  14.  
  15. if ( OldPoint->Id == NewPoint->Id ) {
  16. CVector3 Friction = OldManifold.Tangents[0] * OldPoint->LambdaTangent[0] + OldManifold.Tangents[1] * OldPoint->LambdaTangent[1];
  17.  
  18. NewPoint->LambdaNormal = OldPoint->LambdaNormal;
  19. NewPoint->LambdaTangent[0] = Friction.Dot(NewManifold->Tangents[0]);
  20. NewPoint->LambdaTangent[1] = Friction.Dot(NewManifold->Tangents[1]);
  21. break;
  22. }
  23. }
  24. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement