I think about planes as being defined by a normal **n** and a point on the plane **p**. Then we can define the plane as (read * as dot-product):

P: **n** * **x** - **n** * **p** = **n** * ( **x** - **p** ) = 0

We can now define d = **n** * **p** and get:

P: **n** * **x** - d = 0

I thinks this is the more formal definition that you would find it in a textbook. If you use 4D vectors for planes and want to define the distance of a point to a plane using the dot product you would define d = -**n** * **p** which yields:

P : **n** * **x** + d = 0

I think the 4D vector definition also works well with transformations where you simply multiply the 4D 'plane' vector with a 4x4 transformation matrix (not sure though). Personally I prefer with the more formal definition and use explicit plane functions to evaluate the distance to planes or transform them. If you want to wrap everything into a generic 4D vector the later might be the better choice.

HTH,

-Dirk