Hello,

I'm currently trying to move some objects so that they will all belong to a same plane.

I've got the normal vector of the plane (camera.getDirction()) and I've got the position of the objects.

How can I determine the new position of my object, a point in space which will belong to a plane?

Yes, I'm trying to make some objects face the camera (maybe explained this way my question will be more understandable).

Thanks for your answer!

NG

After some research, during which I found this cool applet:

Equation for a plane: a*x+b*y+c*z+d=0 what those coefficients (a,b,c,d) means

I came with the following solution:

1/ create a Plane object using

`Plane p = new Plane(camera.getDirection().mult(-1), planOrigin.clone());`

2/ Loop over all objects to move and find the point on the plane where they will intersect if moved along the camera.getDirection() vector:

`Ray r = new Ray(objectToMove.getWorldTranslation().clone(),camera.getDirection());`

Vector3f where = new Vector3f();

r.intersectsWherePlane(p,where);

// manage wrong direction because of object position

if( where.equals(Vector3f.ZERO) ) {

r.setDirection(camera.getDirection().mult(-1));

r.intersectsWherePlane(p,where);

}

Now where Vector3f will contain the position in space where the object should be moved (using a SpatialTransformer for example).

Hope that helps!

NG