internaledges.cpp 941 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "internaledges.h"
  2. #include "BulletCollision/CollisionDispatch/btInternalEdgeUtility.h"
  3. namespace{
  4. bool CustomMaterialCombinerCallback( btManifoldPoint& cp,const btCollisionObjectWrapper* colObj0Wrap,int partId0,int index0,const btCollisionObjectWrapper *colObj1Wrap,int partId1,int index1 ){
  5. // printf( "contact added internal edge contacts!\n" );fflush( stdout );
  6. btAdjustInternalEdgeContacts( cp,colObj1Wrap,colObj0Wrap,partId1,index1 );
  7. // cp.m_combinedRestitution=0;
  8. // cp.m_combinedFriction=1;
  9. return false;
  10. }
  11. }
  12. namespace bbBullet{
  13. void createInternalEdgeInfo( btBvhTriangleMeshShape *mesh ){
  14. printf( "create internal edge info!\n" );fflush( stdout );
  15. // enable callback
  16. gContactAddedCallback=CustomMaterialCombinerCallback;
  17. // create edge info
  18. btTriangleInfoMap *info=new btTriangleInfoMap();
  19. btGenerateInternalEdgeInfo( mesh,info );
  20. mesh->setTriangleInfoMap( info );
  21. }
  22. }