1 /**************************************************************************/
2 /*  Copyright 2009 Tim Day                                                */
3 /*                                                                        */
4 /*  This file is part of Fracplanet                                       */
5 /*                                                                        */
6 /*  Fracplanet is free software: you can redistribute it and/or modify    */
7 /*  it under the terms of the GNU General Public License as published by  */
8 /*  the Free Software Foundation, either version 3 of the License, or     */
9 /*  (at your option) any later version.                                   */
10 /*                                                                        */
11 /*  Fracplanet is distributed in the hope that it will be useful,         */
12 /*  but WITHOUT ANY WARRANTY; without even the implied warranty of        */
13 /*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         */
14 /*  GNU General Public License for more details.                          */
15 /*                                                                        */
16 /*  You should have received a copy of the GNU General Public License     */
17 /*  along with Fracplanet.  If not, see <http://www.gnu.org/licenses/>.   */
18 /**************************************************************************/
19 
20 /*! \file
21   \brief Interface for class Parameters.
22 */
23 
24 #ifndef _parameters_h_
25 #define _parameters_h_
26 
27 #include "common.h"
28 
29 //! Common base for ParametersTerrain and ParametersCloud.
30 class ParametersObject
31 {
32  public:
33 
34   //! Constructor sets up some hopefully sensible defaults.
35   ParametersObject();
36 
37   //! Destructor
38   virtual ~ParametersObject();
39 
40   //! What kind of object will be generated.
41   typedef enum
42     {
43       ObjectTypePlanet,
44       ObjectTypeFlatHexagon,
45       ObjectTypeFlatTriangle,
46       ObjectTypeFlatSquare
47     }
48   ObjectType;
49 
50   //! Kind of object.
51   ObjectType object_type;
52 
53   //! Random seed for subdivision and noise.
54   uint seed;
55 
56   //! Number of subdivisions.
57   uint subdivisions;
58 };
59 
60 #endif
61