Code: Select all
#include <iostream>
#include <string>
#include "btBulletCollisionCommon.h"
using std::cout;
using std::cerr;
using std::endl;
using std::string;
int main()
{
btDefaultCollisionConfiguration config;
btCollisionDispatcher dispatcher(&config);
btAxisSweep3 broadphase (btVector3(-1000,-1000,-1000),btVector3(1000,1000,1000));
btCollisionWorld world(&dispatcher, &broadphase, &config);
btTriangleMesh mesh;
mesh.addTriangle(btVector3(-1,0,-1),btVector3(1,0,-1),btVector3(1,0,1));
mesh.addTriangle(btVector3(-1,0,-1),btVector3(1,0,1),btVector3(-1,0,1));
btBvhTriangleMeshShape trimesh(&mesh, true);
btCollisionObject object;
object.setCollisionShape(&trimesh);
world.addCollisionObject(&object);
btVector3 rayFrom(0,100,0);
btVector3 rayTo(0,-100,0);
btCollisionWorld::ClosestRayResultCallback result(rayFrom, rayTo);
world.rayTest(rayFrom, rayTo, result);
if (result.HasHit())
{
cout << "Contact: hit fraction = " << result.m_closestHitFraction << ", hit position = " << result.m_hitPointWorld.x() << "," << result.m_hitPointWorld.y() << "," << result.m_hitPointWorld.z() << endl;
}
else
{
cout << "No collision...??" << endl;
}
return 0;
}