00001 #ifndef TE_GENERATOR_H 00002 #define TE_GENERATOR_H 00003 00004 /*****************************************************************************\ 00005 * 00006 * TeGenerator.h 00007 * 00008 * TeGenerator abstract class 00009 * 00010 * Author: Martin Havlíček (xhavli15 AT stud.fit.vutbr.cz) 00011 * Contributors: 00012 * 00013 * ---------------------------------------------------------------------------- 00014 * 00015 * THIS SOFTWARE IS NOT COPYRIGHTED 00016 * 00017 * This source code is offered for use in the public domain. 00018 * You may use, modify or distribute it freely. 00019 * 00020 * This source code is distributed in the hope that it will be useful but 00021 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00022 * DISCLAIMED. This includes but is not limited to warranties of 00023 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00024 * 00025 * If you find the source code useful, authors will kindly welcome 00026 * if you give them credit and keep their names with their source code. 00027 * 00028 \*****************************************************************************/ 00029 00037 #include "TeHeightMap.h" 00038 00065 class TeGenerator { 00066 00067 protected: 00068 00070 TeHeightMap *hmap; 00072 int stepNum; 00074 int step; 00075 00076 // interface for derived classes 00078 virtual void updateParams() = 0; 00079 00080 public: 00081 00082 void reset(); 00083 void setHMap(TeHeightMap *m); 00084 00085 // interface for derived classes 00087 virtual void setDefaults() = 0; 00089 virtual void generate() = 0; 00091 virtual SbBool genStep() = 0; 00092 00093 }; 00094 00095 00096 #endif /* TE_GENERATOR_H */