KeosGenHierarchies.h

Go to the documentation of this file.
00001 /*
00002  * This source file is part of KEOS (Free 3D Engine)
00003  * For the latest info, see http://www.keosengine.org/
00004  * E-mails : thierry.vouriot@keosengine.org, yeri@keosengine.org
00005  *
00006  * This program is free software; you can redistribute it and/or modify it under
00007  * the terms of the GNU Lesser General Public License as published by the Free Software
00008  * Foundation; either version 2 of the License, or (at your option) any later
00009  * version.
00010  *
00011  * This program is distributed in the hope that it will be useful, but WITHOUT
00012  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00013  * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public License along with
00016  * this program; if not, write to the Free Software Foundation, Inc., 59 Temple
00017  * Place - Suite 330, Boston, MA 02111-1307, USA, or go to
00018  * http://www.gnu.org/copyleft/lesser.txt.
00019  *
00020  */
00021 
00022 #ifndef KEOS_GENHIERARCHIES_H
00023 #define KEOS_GENHIERARCHIES_H
00024 
00025 #include "KeosTypelist.h"
00026 
00027 namespace Keos
00028 {
00029   //-----------------------------------------------------------------------
00033   template <class TList, template <class> class Handler > class CScatteredHierarchy;
00034 
00035   template
00036   <
00037   class T1,
00038   class T2,
00039   template <class> class Handler
00040   >
00041   class CScatteredHierarchy<TypeList<T1, T2>, Handler > : public Handler<T1>, public CScatteredHierarchy<T2, Handler>
00042     {};
00043 
00044   template
00045   <
00046   class T,
00047   template <class> class Handler
00048   >
00049   class CScatteredHierarchy<TypeList<T, NullType>, Handler > : public Handler<T>
00050     {};
00051 
00052   template
00053   <
00054   template <class> class Handler
00055   >
00056   class CScatteredHierarchy<NullType, Handler>
00057     {};
00058 
00059 
00060   //-----------------------------------------------------------------------
00064   template <class TList, template <class, class> class Handler, class Root = NullType > class CLinearHierarchy;
00065 
00066   template
00067   <
00068   class T1,
00069   class T2,
00070   template <class, class> class Handler,
00071   class Root
00072   >
00073   class CLinearHierarchy<TypeList<T1, T2>, Handler, Root > : public Handler<T1, CLinearHierarchy<T2, Handler, Root> >
00074     {};
00075 
00076   template
00077   <
00078   class T,
00079   template <class, class> class Handler,
00080   class Root
00081   >
00082   class CLinearHierarchy<TypeList<T, NullType>, Handler, Root > : public Handler<T, Root>
00083     {};
00084 
00085 } // namespace Keos
00086 
00087 
00088 #endif // KEOS_GENHIERARCHIES_H

Generated on Fri Mar 9 14:29:02 2007 for Keos by  doxygen 1.5.1-p1