# OgreStaticFaceGroup.h

Go to the documentation of this file.

    00001 /*
    00002 -----------------------------------------------------------------------------
    00003 This source file is part of OGRE
    00004     (Object-oriented Graphics Rendering Engine)
    00005 For the latest info, see http://www.ogre3d.org/
    00006
    00007 Copyright (c) 2000-2006 Torus Knot Software Ltd
    00008 Also see acknowledgements in Readme.html
    00009
    00010 This program is free software; you can redistribute it and/or modify it under
    00011 the terms of the GNU Lesser General Public License as published by the Free Software
    00012 Foundation; either version 2 of the License, or (at your option) any later
    00013 version.
    00014
    00015 This program is distributed in the hope that it will be useful, but WITHOUT
    00016 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
    00017 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    00018
    00019 You should have received a copy of the GNU Lesser General Public License along with
    00020 this program; if not, write to the Free Software Foundation, Inc., 59 Temple
    00021 Place - Suite 330, Boston, MA 02111-1307, USA, or go to
    00022 http://www.gnu.org/copyleft/lesser.txt.
    00023
    00024 You may alternatively use this source under the terms of a specific version of
    00025 the OGRE Unrestricted License provided you have obtained such a license from
    00026 Torus Knot Software Ltd.
    00027 -----------------------------------------------------------------------------
    00028 */
    00029 #ifndef __StaticFaceGroup_H__
    00030 #define __StaticFaceGroup_H__
    00031
    00032 #include "OgrePrerequisites.h"
    00033
    00034 #include "OgrePlane.h"
    00035 #include "OgrePatchSurface.h"
    00036
    00037 namespace Ogre {
    00038
    00040     enum FaceGroupType {
    00041         FGT_FACE_LIST,
    00042         FGT_PATCH,
    00043         FGT_UNKNOWN
    00044     };
    00045
    00064     struct StaticFaceGroup {
    00065         // Type of face group.
    00066         FaceGroupType fType;
    00067
    00069         bool isSky;
    00070
    00074         int vertexStart;
    00075
    00080         int numVertices;
    00081
    00089         int elementStart;
    00090
    00094         int numElements;
    00095
    00100         int materialHandle;
    00101
    00102         Plane plane;
    00103
    00105         PatchSurface* patchSurf;
    00106
    00107
    00108         _OgreExport friend std::ostream& operator<<(std::ostream& o, const StaticFaceGroup& s)
    00109         {
    00110             o << "StaticFaceGroup(";
    00111             if (s.fType == FGT_FACE_LIST)
    00112             {
    00113                 o << "faceList, numVertices=" << s.numVertices << ", vertexStart=" << s.vertexStart;
    00114                 o << ", numElements=" << s.numElements << ", elementStart=" << s.elementStart;
    00115                 o << ", normal=" << s.plane.normal;
    00116             }
    00117             else if (s.fType == FGT_PATCH)
    00118             {
    00119                 o << "bezierPatch, numVertices=" << s.numVertices << ", vertexStart=" << s.vertexStart;
    00120                 // TODO
    00121             }
    00122
    00123             o << ", materialHandle=" << s.materialHandle;
    00124             o << ")";
    00125
    00126             return o;
    00127         }
    00128
    00129
    00130     };
    00131
    00132 } // namespace
    00133
    00134 #endif

Copyright © 2008 Torus Knot Software Ltd
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Sun Dec 27 17:31:08 2009