#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(newp);\ }\ \ NodeElement_p Type##_graph_newNode ( Type##_p p ) {\ return from_nonconst_to_nonconst((NodeElement*)((TYPECASTMETHOD(Type, graph_newNode, Graph))(p))->newNode());\ }\ \ NodeElement_p Type##_newNode1 ( Type##_p p, int index ) {\ return from_nonconst_to_nonconst((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*)((TYPECASTMETHOD(Type, graph_newEdge, Graph))(p))->newEdge(from_nonconst_to_nonconst(v), from_nonconst_to_nonconst(w)));\ }\ \ NodeElement_p Type##_graph_firstNode ( Type##_p p ) {\ return from_nonconst_to_nonconst((NodeElement*)((TYPECASTMETHOD(Type, graph_firstNode, Graph))(p))->firstNode());\ }\ \ NodeElement_p Type##_graph_lastNode ( Type##_p p ) {\ return from_nonconst_to_nonconst((NodeElement*)((TYPECASTMETHOD(Type, graph_lastNode, Graph))(p))->lastNode());\ }\ \ EdgeElement_p Type##_graph_firstEdge ( Type##_p p ) {\ return from_nonconst_to_nonconst((EdgeElement*)((TYPECASTMETHOD(Type, graph_firstEdge, Graph))(p))->firstEdge());\ }\ \ EdgeElement_p Type##_graph_lastEdge ( Type##_p p ) {\ return from_nonconst_to_nonconst((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