OGDF-1.0.0.0: csrc/OGDFGraph.h
#ifdef __cplusplus
extern "C" {
#endif
#pragma once
#include "OGDFType.h"
#include "STDDeletable.h"
#include "stdcxxType.h"
#define GRAPH_DECL_VIRT(Type) \
#define GRAPH_DECL_NONVIRT(Type) \
Type##_p Type##_newGraph ( );\
NodeElement_p Type##_graph_newNode ( Type##_p p );\
NodeElement_p Type##_newNode1 ( Type##_p p, int index );\
EdgeElement_p Type##_graph_newEdge ( Type##_p p, NodeElement_p v, NodeElement_p w );\
NodeElement_p Type##_graph_firstNode ( Type##_p p );\
NodeElement_p Type##_graph_lastNode ( Type##_p p );\
EdgeElement_p Type##_graph_firstEdge ( Type##_p p );\
EdgeElement_p Type##_graph_lastEdge ( Type##_p p );
#define GRAPH_DECL_ACCESSOR(Type) \
#define GRAPH_DEF_VIRT(Type) \
#define GRAPH_DEF_NONVIRT(Type) \
Type##_p Type##_newGraph ( ) {\
Type* newp=new Type();return from_nonconst_to_nonconst<Type##_t, Type>(newp);\
}\
\
NodeElement_p Type##_graph_newNode ( Type##_p p ) {\
return from_nonconst_to_nonconst<NodeElement_t, NodeElement>((NodeElement*)((TYPECASTMETHOD(Type, graph_newNode, Graph))(p))->newNode());\
}\
\
NodeElement_p Type##_newNode1 ( Type##_p p, int index ) {\
return from_nonconst_to_nonconst<NodeElement_t, NodeElement>((NodeElement*)((TYPECASTMETHOD(Type, newNode1, Graph))(p))->newNode(index));\
}\
\
EdgeElement_p Type##_graph_newEdge ( Type##_p p, NodeElement_p v, NodeElement_p w ) {\
return from_nonconst_to_nonconst<EdgeElement_t, EdgeElement>((EdgeElement*)((TYPECASTMETHOD(Type, graph_newEdge, Graph))(p))->newEdge(from_nonconst_to_nonconst<NodeElement, NodeElement_t>(v), from_nonconst_to_nonconst<NodeElement, NodeElement_t>(w)));\
}\
\
NodeElement_p Type##_graph_firstNode ( Type##_p p ) {\
return from_nonconst_to_nonconst<NodeElement_t, NodeElement>((NodeElement*)((TYPECASTMETHOD(Type, graph_firstNode, Graph))(p))->firstNode());\
}\
\
NodeElement_p Type##_graph_lastNode ( Type##_p p ) {\
return from_nonconst_to_nonconst<NodeElement_t, NodeElement>((NodeElement*)((TYPECASTMETHOD(Type, graph_lastNode, Graph))(p))->lastNode());\
}\
\
EdgeElement_p Type##_graph_firstEdge ( Type##_p p ) {\
return from_nonconst_to_nonconst<EdgeElement_t, EdgeElement>((EdgeElement*)((TYPECASTMETHOD(Type, graph_firstEdge, Graph))(p))->firstEdge());\
}\
\
EdgeElement_p Type##_graph_lastEdge ( Type##_p p ) {\
return from_nonconst_to_nonconst<EdgeElement_t, EdgeElement>((EdgeElement*)((TYPECASTMETHOD(Type, graph_lastEdge, Graph))(p))->lastEdge());\
}
#define GRAPH_DEF_ACCESSOR(Type) \
DELETABLE_DECL_VIRT(Graph)
GRAPH_DECL_VIRT(Graph)
GRAPH_DECL_NONVIRT(Graph)
GRAPH_DECL_ACCESSOR(Graph)
#ifdef __cplusplus
}
#endif