You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.9 KiB
69 lines
1.9 KiB
#ifndef IMG_BASE_H_ |
|
#define IMG_BASE_H_ |
|
/*! \file img_base.h |
|
\brief basic definitions for the img module |
|
|
|
This header contains the basic module definitions. |
|
*/ |
|
|
|
/// base of the static assertion mechanism |
|
template<bool> struct NON_TRUE_EXPR_CompileTimeError; |
|
/// partial instantiation for the static assertion mechanism |
|
template<> struct NON_TRUE_EXPR_CompileTimeError<true> {}; |
|
|
|
/// the static assertion mechanism |
|
#define STATIC_ASSERT(exp) (NON_TRUE_EXPR_CompileTimeError< (exp) >()) |
|
|
|
/// base of the static typecheck mechanism |
|
template<typename> struct NON_FLOAT_OR_DOUBLE_TYPE_CompileTimeError; |
|
/// partial instantiation for the static typecheck mechanism |
|
template<> struct NON_FLOAT_OR_DOUBLE_TYPE_CompileTimeError<float> {}; |
|
/// partial instantiation for the static typecheck mechanism |
|
template<> struct NON_FLOAT_OR_DOUBLE_TYPE_CompileTimeError<double> {}; |
|
|
|
/// the static typecheck mechanism |
|
#define STATIC_FLOAT_OR_DOUBLE_TYPECHECK(type) (NON_FLOAT_OR_DOUBLE_TYPE_CompileTimeError< type >()) |
|
|
|
/// define NULL pointer value |
|
#ifndef NULL |
|
#ifdef __cplusplus |
|
#define NULL 0 |
|
#else |
|
#define NULL ((void *)0) |
|
#endif |
|
#endif |
|
|
|
#include <assert.h> |
|
#include <math.h> |
|
#include <exception> |
|
#include <typeinfo> |
|
|
|
/*! \brief the img module namespace |
|
|
|
this is the main image module namespace. |
|
*/ |
|
namespace img { |
|
|
|
/*! \brief the basic exception class |
|
|
|
this is the basic image exception class, it simply carries an error string to the console. |
|
*/ |
|
class ImageException: public std::exception |
|
{ |
|
public: |
|
/// the error string |
|
const char *message; |
|
/// default constructor |
|
ImageException():exception(),message("no message"){} |
|
/*! \brief message carrying constructor |
|
|
|
\param arg_message the error string |
|
*/ |
|
ImageException(const char *arg_message):exception(),message(arg_message){} |
|
/// the destructor |
|
virtual ~ImageException () throw (){} |
|
}; |
|
|
|
} //end namespace img |
|
|
|
#endif /*IMG_BASE_H_*/
|
|
|