diff options
| author | Rat <none@none> | 2010-06-07 19:35:24 +0200 |
|---|---|---|
| committer | Rat <none@none> | 2010-06-07 19:35:24 +0200 |
| commit | e4e13c2bb8c691486ac717b206f166f33c8c531a (patch) | |
| tree | a0ab601406c1396d41527a49392725c8179a6d8a /dep/include/g3dlite/G3D/enumclass.h | |
| parent | 32546e22828e793e3881e1055acb72b6a044e331 (diff) | |
removed 'dep' folder, no more needed
--HG--
branch : trunk
Diffstat (limited to 'dep/include/g3dlite/G3D/enumclass.h')
| -rw-r--r-- | dep/include/g3dlite/G3D/enumclass.h | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/dep/include/g3dlite/G3D/enumclass.h b/dep/include/g3dlite/G3D/enumclass.h deleted file mode 100644 index c7dfe45f14f..00000000000 --- a/dep/include/g3dlite/G3D/enumclass.h +++ /dev/null @@ -1,147 +0,0 @@ -/** - @file G3D/enumclass.h - - @maintainer Morgan McGuire, http://graphics.cs.williams.edu - @created 2007-01-27 - @edited 2007-07-20 -*/ -#ifndef G3D_enumclass_h -#define G3D_enumclass_h - -#include "G3D/HashTrait.h" -#include "G3D/BinaryInput.h" -#include "G3D/BinaryOutput.h" - -/** -\def G3D_DECLARE_ENUM_CLASS_METHODS - - \brief Creates a series of methods that turn a class into a scoped enumeration. - - Uses the "Intelligent Enum" design pattern - http://www.codeguru.com/cpp/cpp/cpp_mfc/article.php/c4001/ - - Enum classes are initialized to their zero value by default. - - See GLG3D/GKey.h for an example. - \sa G3D_DECLARE_ENUM_CLASS_HASHCODE - */ -#define G3D_DECLARE_ENUM_CLASS_METHODS(Classname)\ - inline Classname(char v) : value((Value)v) {}\ -\ - inline Classname() : value((Value)0) {}\ -\ - inline Classname(const Value v) : value(v) {}\ -\ - explicit inline Classname(int v) : value((Value)v) {}\ -\ - /** Support cast back to the Value type, which is needed to allow implicit assignment inside unions. */\ - /*inline operator Value() const { - return value; - }*/\ -\ - inline operator int() const {\ - return (int)value;\ - }\ -\ - inline bool operator== (const Classname other) const {\ - return value == other.value;\ - }\ -\ - inline bool operator== (const Classname::Value other) const {\ - return value == other;\ - }\ -\ - inline bool operator!= (const Classname other) const {\ - return value != other.value;\ - }\ -\ - inline bool operator!= (const Classname::Value other) const {\ - return value != other;\ - }\ -\ - inline bool operator< (const Classname other) const {\ - return value < other.value;\ - }\ -\ - inline bool operator> (const Classname other) const {\ - return value > other.value;\ - }\ -\ - inline bool operator>= (const Classname other) const {\ - return value >= other.value;\ - }\ -\ - inline bool operator<= (const Classname other) const {\ - return value <= other.value;\ - }\ -\ - inline bool operator< (const Value other) const {\ - return value < other;\ - }\ -\ - inline bool operator> (const Value other) const {\ - return value > other;\ - }\ -\ - inline bool operator<= (const Value other) const {\ - return value <= other;\ - }\ -\ - inline bool operator>= (const Value other) const {\ - return value >= other;\ - }\ -\ - inline Classname& operator-- () {\ - value = (Value)((int)value - 1);\ - return *this;\ - }\ -\ - inline Classname& operator++ () {\ - value = (Value)((int)value + 1);\ - return *this;\ - }\ -\ - inline Classname& operator+= (const int x) {\ - value = (Value)((int)value + x);\ - return *this;\ - }\ -\ - inline Classname& operator-= (const int x) {\ - value = (Value)((int)value - x);\ - return *this;\ - }\ -\ - inline Classname operator+ (const int x) const {\ - return Classname((int)value + x);\ - }\ -\ - inline Classname operator- (const int x) const {\ - return Classname((int)value - x);\ - }\ -\ - inline unsigned int hashCode() const {\ - return (unsigned int)value;\ - }\ -\ - inline void serialize(BinaryOutput& b) const {\ - b.writeInt32(value);\ - }\ -\ - inline void deserialize(BinaryInput& b) {\ - value = (Value)b.readInt32();\ - } - -/** \def G3D_DECLARE_ENUM_CLASS_HASHCODE -*/ -#define G3D_DECLARE_ENUM_CLASS_HASHCODE(Classname)\ -template <> struct HashTrait<Classname::Value> \ -{ \ - static size_t hashCode(Classname::Value key) { return static_cast<size_t>(key); } \ -}; \ - \ -template <> struct HashTrait<Classname> \ -{ \ - static size_t hashCode(Classname key) { return static_cast<size_t>(key.hashCode()); } \ -}; - -#endif |
