00001 /***************************************************************************** 00002 * SGL: A Scene Graph Library 00003 * 00004 * Copyright (C) 1997-2001 Scott McMillan All Rights Reserved. 00005 * 00006 * This library is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Library General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2 of the License, or (at your option) any later version. 00010 * 00011 * This library is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Library General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Library General Public 00017 * License along with this library; if not, write to the Free 00018 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00019 ***************************************************************************** 00020 * File: sglSphere.hpp 00021 * Author: Scott McMillan 00022 * Created: 23 January 2001 00023 * Summary: an leaf sglNode containing the geometry a sphere with origin at 00024 * the center. 00025 *****************************************************************************/ 00026 00027 #ifndef SGL_SPHERE_HPP 00028 #define SGL_SPHERE_HPP 00029 00030 #include <sgldb.h> 00031 #include <sglMonoIndexedTriangleStripSet.hpp> 00032 00033 //---------------------------------------------------------------------------- 00034 00035 class SGLDB_DLL_API sglSphere : public sglMonoIndexedTriangleStripSet 00036 { 00037 public: 00038 sglSphere(unsigned int num_slices, unsigned int num_stacks, 00039 float radius = 1.0f); 00040 virtual ~sglSphere(); 00041 00042 virtual void printInfo(ostream &ostrm, const char *indent_string) const; 00043 00044 protected: 00045 00046 private: 00047 sglSphere(); // not implemented 00048 sglSphere(const sglSphere &); // not implemented 00049 sglSphere &operator=(const sglSphere &); // not implemented 00050 00051 void makeSphere(unsigned int num_slices, unsigned int num_stacks, 00052 float radius); 00053 00054 private: 00055 unsigned int m_num_slices, m_num_stacks; 00056 float m_radius; 00057 }; 00058 00059 #endif