In order for my heightfield collision to match my rendered mesh, I need to tessellate the heightfield such that the triangles form a diamond pattern -- in other words, a pattern where adjacent quads tessellate using alternating pairs of points (either [p00,p11] or [p01,p10]).
As I understand it, the heightfield's "getTriangleFlip" method is meant to return a constant (true/false) value, implying that the tessellation pattern described above isn't supported. When experimenting in the Havok demo code, I was able to support my pattern by maintaing a few static variables in the getTriangleFlip method, and incrementing them each time getTriangleFlip was called.
This approach only works if getTriangleFlip is called for each quad in a heightfield when that heightfield is queried for a raycast, rigidBody collision, etc. I have no idea if that assumption is true. Can someone tell me if my approach is reasonable, or if there's some better way to implement diamond tessellation in a Havok heightfield?
Proper way to do "diamond" Heightfield tessellation?