| VRS - The Virtual Rendering System |
| version 3.3 |
00001 /********************************************************************** 00002 VRS - The Virtual Rendering System 00003 Copyright (C) 2001 Computer Graphics Systems Group at the 00004 Hasso-Plattner-Institute, Potsdam, Germany. 00005 This library is free software; you can redistribute it and/or 00006 modify it under the terms of the GNU Lesser General Public 00007 License as published by the Free Software Foundation; either 00008 version 2.1 of the License, or (at your option) any later version. 00009 This library is distributed in the hope that it will be useful, but 00010 WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00012 See the GNU Lesser General Public License for more details. 00013 You should have received a copy of the GNU Lesser+ General Public 00014 License along with this library; if not, write to the FreeSoftware 00015 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA. 00016 **********************************************************************/ 00017 // $Id: contextdata.h 5640 2007-01-15 15:48:49Z Henrik_Buchholz $ 00018 // $Date: 2007-01-15 16:48:49 +0100 (Mon, 15 Jan 2007) $ 00019 // $Revision: 5640 $ 00020 // $State$ 00021 // $Author: Henrik_Buchholz $ 00022 // 00023 // $Log$ 00024 // Revision 1.13 2004/11/05 13:58:09 basch 00025 // Class comment changed (Doxygen style) 00026 // 00027 // Revision 1.12 2004/03/12 16:28:38 baumann 00028 // macros VRS_NAMESPACE_BEGIN/_END expanded and removed 00029 // 00030 // Revision 1.11 2003/11/07 14:19:23 kirsch 00031 // removed leading underscore from include guards 00032 // 00033 // Revision 1.10 2003/02/18 20:45:47 skirsch 00034 // improved and corrected the comments 00035 // 00036 // Revision 1.9 2002/10/29 10:32:51 baumann 00037 // macros VRS_CLASSNAME_* and VRS_IMPL_TYPEINFO_* removed 00038 // 00039 // Revision 1.8 2002/03/03 21:44:24 kosta 00040 // VRS_TYPEINFO-macro rewritten 00041 // 00042 // Revision 1.7 2002/02/19 10:34:07 kosta 00043 // undone all changes since 2002-02-15 00044 // 00045 // Revision 1.4 2002/01/15 16:25:53 kosta 00046 // macros rewritten for a better namespace support 00047 // 00048 // Revision 1.3 2001/11/13 16:36:30 kirsch 00049 // changed line feed to unix style (removed control-M) 00050 // 00051 // Revision 1.2 2001/07/10 18:26:48 kosta 00052 // changed DEFAULT_NAME to VRS_DEFAULT_NAME 00053 // 00054 // Revision 1.1.1.1 2001/06/08 08:09:20 kirsch 00055 // imported alpha-version by olli 00056 // 00057 00058 00059 #ifndef VRS_CONTEXTDATA_H 00060 #define VRS_CONTEXTDATA_H 00061 00062 #include <vrs/monoattribute.h> 00063 00064 namespace VRS { 00065 00070 template <class T> 00071 class ContextData : public MonoAttribute { 00072 00073 public: 00074 ContextData(const T& value, const ID& category); 00076 00081 virtual ~ContextData(); 00082 00083 void setData(const T& t); 00085 00089 const T& getData() const; 00091 00092 virtual ID category() const; 00094 00095 bool operator==(const ContextData& other) const; 00096 00097 VRS_TYPEINFO(ContextData, MonoAttribute); 00098 00099 private: 00100 ID category_; 00101 T value_; 00102 }; 00103 00104 #include <vrs/contextdata.tli> 00105 00106 } // namespace VRS 00107 00108 #endif // VRS_CONTEXTDATA_H