aboutsummaryrefslogtreecommitdiff
path: root/dep/include/g3dlite/G3D/enumclass.h
diff options
context:
space:
mode:
authorRat <none@none>2010-06-07 19:35:24 +0200
committerRat <none@none>2010-06-07 19:35:24 +0200
commite4e13c2bb8c691486ac717b206f166f33c8c531a (patch)
treea0ab601406c1396d41527a49392725c8179a6d8a /dep/include/g3dlite/G3D/enumclass.h
parent32546e22828e793e3881e1055acb72b6a044e331 (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.h147
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