Add the contact point from MPR, in addition to SAT/clipping contacts. Added a new kernel to clear/reset the number of contacts in pairs (stored in the z component) Always sample unit sphere directions, if there are more edge-edge combinations than unit sphere directions (162 by default) Remember last running demo for Bullet 3 (and save it in a text file, Bullet Enable the testFileFracture.bullet in the Bullet2FileDemo
46 lines
1.2 KiB
C++
46 lines
1.2 KiB
C++
|
|
#include "Bullet2FileDemo.h"
|
|
#include "BulletDataExtractor.h"
|
|
#include "GpuRigidBodyDemoInternalData.h"
|
|
#include "OpenGLWindow/GLInstancingRenderer.h"
|
|
|
|
Bullet2FileDemo::Bullet2FileDemo()
|
|
{
|
|
m_loader = 0;
|
|
}
|
|
Bullet2FileDemo::~Bullet2FileDemo()
|
|
{
|
|
delete m_loader;
|
|
}
|
|
|
|
void Bullet2FileDemo::setupScene(const ConstructionInfo& ci)
|
|
{
|
|
b3Assert(ci.m_instancingRenderer);
|
|
|
|
//const char* fileName="data/testFile.bullet";
|
|
const char* fileName="data/testFileFracture.bullet";
|
|
|
|
FILE* f = 0;
|
|
|
|
const char* prefix[]={"./","../","../../","../../../","../../../../"};
|
|
int numPrefixes = sizeof(prefix)/sizeof(const char*);
|
|
char relativeFileName[1024];
|
|
|
|
for (int i=0;!f && i<numPrefixes;i++)
|
|
{
|
|
sprintf(relativeFileName,"%s%s",prefix[i],fileName);
|
|
f = fopen(relativeFileName,"rb");
|
|
}
|
|
if (f)
|
|
{
|
|
fclose(f);
|
|
createScene(*ci.m_instancingRenderer,*m_data->m_np,*m_data->m_rigidBodyPipeline,relativeFileName);
|
|
}
|
|
// m_loader = new b3BulletDataExtractor(*ci.m_instancingRenderer,*m_data->m_np,*m_data->m_rigidBodyPipeline);
|
|
// m_loader->convertAllObjects(bulletFile);
|
|
|
|
b3Vector3 pos=b3MakeVector3(-20,10,0);
|
|
ci.m_instancingRenderer->setCameraTargetPosition(pos);
|
|
ci.m_instancingRenderer->setCameraDistance(10);
|
|
}
|