normal createAABBCollisionDetector to updateAABBCollision

27 Apr 2016 15:50 #1

I would like to stream real-time data (point clouds) into chai3d for haptic rendering.

The problem I'm experiencing is the duration of AABB initialization (cCollisionAABB). Since my point cloud would be mostly static scene with small changes, I'd like to make use of this temporal redundancy. What would be the smart way to approach this problem?

Just to add more info. I was testing performance on 50k points:
- To execute createAABBCollisionDetector it takes ~350-400ms to initialize the tree


Please Log in or Create an account to join the conversation.

12 May 2016 11:18 #2

Our suggestion would be to create a new class (cMyNewPointClass) that inherits from class cMultiPoint and to then implement a new collision detector by overloading the following method:

bool cMyNewPointClass::computeOtherCollisionDetection(cVector3d& a_segmentPointA,
                                                  cVector3d& a_segmentPointB,
                                                  cCollisionRecorder& a_recorder,
                                                  cCollisionSettings& a_settings)

If you are using data coming from a camera, you could easily use the natural alignment of the 3D points to quickly locate potential contact points.
You can check class cShapeSphere to see how this method is implemented when detecting for a collision between a line and a sphere.

Please Log in or Create an account to join the conversation.