Original Post
I can get the intersection point, no problems there. It's the sliding response that doesn't work properly for me. Here's what I've got.
//newPos is the ellipsoid's position when the collision occurs
//normal of sliding plane
Vector slidingNormal = newPos - intersection;
Vector slidingNormalNormalized = slidingNormal.normalized();
//signed distance between original destination point and sliding plane
double distance = -(slidingNormalNormalized * intersection);
distance = vEnd.dot(slidingNormalNormalized) + distance;
//project remaining velocity vector onto sliding plane
Vector finalPos = vEnd - (slidingNormalNormalized*distance);
//get new position of ellipsoid
finalPos = finalPos + slidingNormal;
//translate back from ellipsoid space and return
It basically works on planes that are aligned to the axis', but non-aligned planes I seem to walk through. Like I said, finding the intersection point works fine. Any suggestions?