cubeMaps.h

Go to the documentation of this file.
00001 /*
00002  * cubeMaps.h
00003  *
00004  * Bogus header file for doxygen.
00005  *
00006  * Don't use this header file!
00007  */
00008 
00009 /// \ingroup aesop_tool
00010 /// \defgroup tool_cube_map cubeMaps Tools
00011 ///
00012 /// \n
00013 /// These tools help generate large random maps for testing.
00014 ///
00015 /// \n
00016 /// The cubeMaps toolset is a way to generate large, (hopefully) interesting
00017 /// maps automatically, using cubes.  The basic idea is that large structures
00018 /// are just assemblies of smaller cubes.  This would be a bit repetitive for
00019 /// an actual game, but is a good way to generate large spaces for testing.
00020 ///
00021 /// Perl scripts:
00022 ///  - <b>generateVoidList</b> Generates a random set of adjacent cubes.
00023 ///     These are intended to be "empty" cubes, hence the name void.  The
00024 ///     void list is generated by a series of random steps, you need to tell
00025 ///     the scripts how many steps to use.  More steps results in a larger map.
00026 ///     Use around 20-30 steps.  If you really want to stress things, try
00027 ///     hundreds of steps.
00028 ///  - <b>generateHull</b> Given a list of void cubes, this script computes
00029 ///     the set of cubes that would form a hull around the void cubes.  The
00030 ///     output is a set of cubes with empty space in the interior.  This
00031 ///     interior space is the list of void cubes.
00032 ///  - <b>generateMap</b> Given a list of cubes, this script generates a
00033 ///     map.  You'll need an already-available cube object to use, with its
00034 ///     own physics and rendering models.  You provide the size and name of
00035 ///     the cube object, as well as the size of zones.  Zones are assumed to
00036 ///     be square-shaped, so you just specify the width of the zone in cubes.
00037 ///
00038 /// General usage:
00039 ///
00040 /// Pipe them all together on the command line, and output the final result
00041 /// of generateMap into a map file.
00042 ///
00043 /// To generate the map
00044 /// For example:
00045 /// \code
00046 /// % cd tools/cubeMaps
00047 /// % ./generateVoidList 10 | ./generateHull | ./generateMap 3.0 3m-cube 7 > test.map
00048 /// \endcode
00049 ///
00050 /// That would generate a map file named "test.map" which you could use to test
00051 /// the client and server.  In this case, I was using 3m cubes, with 7 cubes per
00052 /// zone.
00053 ///