#ifndef DEFINES_HH
#define DEFINES_HH
#define MONA_NAMESPACE_BEGIN namespace mona {
#define MONA_NAMESPACE_END }
#define USING_NAMESPACE_MONA using namespace mona
#define NAMESPACE_BEGIN(NS) namespace NS {
#define NAMESPACE_END }
MONA_NAMESPACE_BEGIN
template <class T>
void release_and_delete_pointer(T *p)
{
if (*p) {
(*p)->release();
*p = 0;
}
}
#define TYPEDEF_3DIMAGE_WRAP(CLASS,NAME) \
typedef CLASS<C3DBitImage>C3DBitImage##NAME;\
typedef CLASS<C3DUBImage> C3DUBImage##NAME; \
typedef CLASS<C3DSBImage> C3DSBImage##NAME; \
typedef CLASS<C3DUSImage> C3DUSImage##NAME; \
typedef CLASS<C3DSSImage> C3DSSImage##NAME; \
typedef CLASS<C3DULImage> C3DULImage##NAME; \
typedef CLASS<C3DSLImage> C3DSLImage##NAME; \
typedef CLASS<C3DFImage> C3DFImage##NAME; \
typedef CLASS<C3DDImage> C3DDImage##NAME;
#define INSTANCE_3DIMAGE_WRAP(CLASS)\
template class CLASS<C3DBitImage>;\
template class CLASS<C3DUBImage>; \
template class CLASS<C3DSBImage>; \
template class CLASS<C3DUSImage>; \
template class CLASS<C3DSSImage>; \
template class CLASS<C3DULImage>; \
template class CLASS<C3DSLImage>; \
template class CLASS<C3DFImage>; \
template class CLASS<C3DDImage>;
MONA_NAMESPACE_END
#endif