
#ifdef __cplusplus
extern "C" {
#endif

#pragma once


#include "OGDFType.h"

#include "STDDeletable.h"

#include "stdcxxType.h"


#define NODEELEMENT_DECL_VIRT(Type) \



#define NODEELEMENT_DECL_NONVIRT(Type) \
int Type##_nodeElement_index ( Type##_p p );\
int Type##_nodeElement_indeg ( Type##_p p );\
int Type##_nodeElement_outdeg ( Type##_p p );\
int Type##_nodeElement_degree ( Type##_p p );\
Type##_p Type##_nodeElement_succ ( Type##_p p );\
Type##_p Type##_nodeElement_pred ( Type##_p p );


#define NODEELEMENT_DECL_ACCESSOR(Type) \



#define NODEELEMENT_DEF_VIRT(Type) \



#define NODEELEMENT_DEF_NONVIRT(Type) \
int Type##_nodeElement_index ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, nodeElement_index, NodeElement))(p))->index();\
}\
\
int Type##_nodeElement_indeg ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, nodeElement_indeg, NodeElement))(p))->indeg();\
}\
\
int Type##_nodeElement_outdeg ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, nodeElement_outdeg, NodeElement))(p))->outdeg();\
}\
\
int Type##_nodeElement_degree ( Type##_p p ) {\
return ((TYPECASTMETHOD(Type, nodeElement_degree, NodeElement))(p))->degree();\
}\
\
Type##_p Type##_nodeElement_succ ( Type##_p p ) {\
return from_nonconst_to_nonconst<Type##_t, Type>((Type*)((TYPECASTMETHOD(Type, nodeElement_succ, NodeElement))(p))->succ());\
}\
\
Type##_p Type##_nodeElement_pred ( Type##_p p ) {\
return from_nonconst_to_nonconst<Type##_t, Type>((Type*)((TYPECASTMETHOD(Type, nodeElement_pred, NodeElement))(p))->pred());\
}


#define NODEELEMENT_DEF_ACCESSOR(Type) \



DELETABLE_DECL_VIRT(NodeElement)
NODEELEMENT_DECL_VIRT(NodeElement)
NODEELEMENT_DECL_NONVIRT(NodeElement)
NODEELEMENT_DECL_ACCESSOR(NodeElement)

#ifdef __cplusplus
}
#endif

