# -

The thing about planes (as compared to the other solids) is that it is not really a plane like a infinite sheet of paper, it is in fact a half-space.
A half space is like if you build an infine wall to seperate the world in two, and then select one of the parts of the world (does that make sence?).

The advantage is that you will always detect when a collision has been made, because you stay in the solid - unlike if you use a plane (which is infinitely thin), where the collision checks may miss the hit.

Now, how do you encompass your world by planes?
I imagine you are sitting in a room that is box-shaped (I.e. parallel, straight walls). Now, think of the walls,ceiling and floor as planes stretching beyond the room (away from it on each of the 6 faces).
There you have it, your world is encompassed by planes.

Is your problem how to define the plane?
“A CollisionPlane is constructed using a Panda3D Plane object, which itself has a number of constructors, including the A, B, C, D plane equation, or a list of three points, or a point and a normal.” (quote from the manual).

Let us look at the 2nd way of constructing a plane.
Since I don’t know you, I am guessing your problem may be that you do not know what a normal is.
A normal is a vector (like an arrow, just give the 3 coordinates of the direction) perpedicular to the plane.
In your case (I assume you have a regular coordinate system with z-up)
these normals for the 4 walls are:
(1,0,0) (0,1,0) (-1,0,0) (0,-1,0)
These will give the orientation of the planes.

The point is simply any point on the plane. You need this so that Panda will know at what distance to place the plane.
Say, the center of the floor has these coordinates (centerX,centerY,0)
the you can use these points:
( centerX + x , 0, 0)
( 0 , centerY + y ,0 )
( centerX - x , 0 , 0 )
( 0 , centerY - y , 0 )
where x is a number telling how far from the center you want two of the sides
and y a number telling how far away you want the other two.

You could do likewise with floor and ceiling if needed.

I hope this helps a bit. Otherwise, please elaborate a bit on the problem.

Perhaps you wanna share your result.
Maybe someone else has the same problem.