
#ifdef __cplusplus
extern "C" {
#endif

#pragma once


#include "OGDFType.h"

#include "STDDeletable.h"

#include "stdcxxType.h"


#define DPOINT_DECL_VIRT(Type) \



#define DPOINT_DECL_NONVIRT(Type) \
Type##_p Type##_newDPoint ( double x, double y );


#define DPOINT_DECL_ACCESSOR(Type) \
double Type##_m_x_get ( Type##_p p );\
void Type##_m_x_set ( Type##_p p, double x );\
double Type##_m_y_get ( Type##_p p );\
void Type##_m_y_set ( Type##_p p, double x );


#define DPOINT_DEF_VIRT(Type) \



#define DPOINT_DEF_NONVIRT(Type) \
Type##_p Type##_newDPoint ( double x, double y ) {\
Type* newp=new Type(x, y);return from_nonconst_to_nonconst<Type##_t, Type>(newp);\
}


#define DPOINT_DEF_ACCESSOR(Type) \
double Type##_m_x_get ( Type##_p p ) {\
return (from_nonconst_to_nonconst<Type, Type##_t>(p))->m_x;\
}\
void Type##_m_x_set ( Type##_p p, double x ) {\
((from_nonconst_to_nonconst<Type, Type##_t>(p))->m_x)=x;\
}\
double Type##_m_y_get ( Type##_p p ) {\
return (from_nonconst_to_nonconst<Type, Type##_t>(p))->m_y;\
}\
void Type##_m_y_set ( Type##_p p, double x ) {\
((from_nonconst_to_nonconst<Type, Type##_t>(p))->m_y)=x;\
}


DELETABLE_DECL_VIRT(DPoint)
DPOINT_DECL_VIRT(DPoint)
DPOINT_DECL_NONVIRT(DPoint)
DPOINT_DECL_ACCESSOR(DPoint)

#ifdef __cplusplus
}
#endif

