00001 /* 00002 This file is part of Caelum. 00003 See http://www.ogre3d.org/wiki/index.php/Caelum 00004 00005 Copyright (c) 2006-2007 Caelum team. See Contributors.txt for details. 00006 00007 Caelum is free software: you can redistribute it and/or modify 00008 it under the terms of the GNU Lesser General Public License as published 00009 by the Free Software Foundation, either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 Caelum is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU Lesser General Public License for more details. 00016 00017 You should have received a copy of the GNU Lesser General Public License 00018 along with Caelum. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 #ifndef GEOMETRYFACTORY_H 00022 #define GEOMETRYFACTORY_H 00023 00024 #include "CaelumPrerequisites.h" 00025 00026 namespace caelum { 00027 00032 class CAELUM_EXPORT GeometryFactory { 00033 // Types and enums ------------------------------------------------------------ 00034 public: 00037 enum DomeType {DT_GRADIENTS, DT_STARFIELD}; 00038 00039 // Methods -------------------------------------------------------------------- 00040 public: 00047 static void generateSphericDome (const Ogre::String &name, int segments, DomeType type = DT_GRADIENTS); 00048 00049 private: 00055 static void fillGradientsDomeBuffers (float *pVertex, unsigned short *pIndices, int segments); 00056 00062 static void fillStarfieldDomeBuffers (float *pVertex, unsigned short *pIndices, int segments); 00063 }; 00064 00065 } // namespace caelum 00066 00067 #endif //GEOMETRYFACTORY_H