title: How can I find the intersecting point of three planes?
body: <p>I'm trying to build render the raw data from a Quake 3 .map file with Java.  The .map format stores brush (shape) information as a series of planes, but I'd like to convert them to points of the form (x,y,z).  The math involved is a bit beyond me at this point, so does anyone have any advice on how I can do this?  I'm fine with using external libraries if need be, but I'd rather use my own code if possible.</p>
  
  <p>Some data to play with:</p>
  
  <pre><code>Dimensions:   64*64*64
  Position:     All sides are equidistant from the origin (0,0,0)
  Shape:     Cube
  ( 64 64 64 ) ( 64 -64 64 ) ( -64 64 64 )
  ( 64 64 64 ) ( -64 64 64 ) ( 64 64 -64 )
  ( 64 64 64 ) ( 64 64 -64 ) ( 64 -64 64 )
  ( -64 -64 -64 ) ( 64 -64 -64 ) ( -64 64 -64 )
  ( -64 -64 -64 ) ( -64 -64 64 ) ( 64 -64 -64 )
  ( -64 -64 -64 ) ( -64 64 -64 ) ( -64 -64 64 )
  </code></pre>
  
  <p>Edit:</p>
  
  <p>This data is showing a cube, which has 6 sides.  Each of these six sides can be stored as a plane, with three coordinates to show the position and orientation.  Each row of the above data shows one plane, and all 6 of the rows make the 6 planes that make up a cube.</p>
  
  <p>This image helps illustrate my point: <a href="http://www.geocities.com/SiliconValley/2151/math3d_3.gif" rel="nofollow noreferrer">Three Points Defining a Plane</a></p>
  
  <p>Points p1, p2, and p3 are what I'm giving per row, in the above data.</p>
  
  <p>The Quake 3 engine has to sort out what parts of the planes to keep at compile time, but I'm not interested in that at the moment.  If you would like more information, feel free to ask!</p>