Update of /project/gamelib/cvsroot/source/doc
In directory clnet:/tmp/cvs-serv18554
Modified Files:
3d.html
Log Message:
Documentation changes (mostly concerning the 3d camera).
Index: 3d.html
===================================================================
RCS file: /project/gamelib/cvsroot/source/doc/3d.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** 3d.html 4 Sep 2006 06:27:16 -0000 1.3
--- 3d.html 10 Oct 2006 06:24:30 -0000 1.4
***************
*** 23,29 ****
as up/down.</p>
! <p>The built-in camera class is geared towards a camera that slides
! around and doesn't turn other than around the Z axis, but that might
! be changed in future releases.</p>
<h3><a name="defvol">Defining volumes</a></h3>
--- 23,29 ----
as up/down.</p>
! <p>Starting with version 0.3, there are two cameras available. The "old"
! camera, capable of moving in X, Y and Z, always turning in the XY
! plane and the "new" (or 3D) camera, having 6 degrees of freedom.</p>
<h3><a name="defvol">Defining volumes</a></h3>
***************
*** 50,53 ****
--- 50,66 ----
count or what-have-you).</p>
+ <h3>Base and transform designators</h3>
+
+ <p>Starting from version 0.3, there is a "fully 3D" camera available,
+ necessitating some new concepts and accessors (hopefully seamlessly
+ integrated into the whole). The most developer-visible of these are
+ "base designators" and "transform designators".</p>
+
+ <p>A "base designator" is either 3-element vector, array or list.</p>
+
+ <i>A "transform designator" is a 3-element sequence of "base
+ designators", specifying the (world coordinate) vectors from the
+ camera origo to [ 1, 0, 0 ], [ 0, 1, 0 ] and [ 0, 0, 1 ].</i>
+
<h3>What will be shown and how?</h3>
***************
*** 98,101 ****
--- 111,120 ----
3d-rendering is made on. Also guides the size of the X window it will
be displayed in.
+ <dt>3d-camera
+ <dd>(3d-camera <i>x</i> <i>y</i> <i>z</i> <b><i>&optional</i></b>
+ <i>transform</i>)<br>
+ Return a newly constructed 3d-camera object, at position [ X, Y, Z ].
+ If an optional transform designator is passed it, the camera will
+ use this as its transform, otherwise it will use a unit transform.
<dt>box
<dd>Shape class. 8 corners, 6 sides.
***************
*** 137,140 ****
--- 156,165 ----
<dt>flat
<dd>Shape class, superclass for all flat surfaces.
+ <dt>full-move
+ <dd>(full-move <i>camera</i> <i>displacement</i>)<br>
+ Displace the camera by <i>displacement</i>, a 3D coordinate (using the
+ camera's position as origo, expressed in the camera coordinate
+ system). The displacement will be transformed into world coordinates
+ before being applied.
<dt>get-centre
<dd>(get-centre <i>shape</i> <i><i><b>&optional</b></i>
***************
*** 161,166 ****
<dd>Shape class (flat)
<dt>turn
! <dd>(turn <i>object</i> <i>angle</i>)<br>
! Generic function. Turn <i>object</i> through <i>angle</i> around the Z axis.
<dt>volume
<dd>Shape class, superclass for all volumes.
--- 186,195 ----
<dd>Shape class (flat)
<dt>turn
! <dd>(turn <i>object</i> <i>angle</i> <b><i>&optional</i></b> <i>angle</i>)<br>
! Generic function. Turn <i>object</i> through <i>angle</i>. If the
! object is "the standard camera" it will be turned around the Z axis. A
! 3D camera will default to turn around teh Z axis unless otherwise
! specified. Axes are designated by the :x :y or :z keywords. The angle
! is specified in radians.
<dt>volume
<dd>Shape class, superclass for all volumes.