
#ifdef __cplusplus
extern "C" {
#endif

#pragma once


#include "OGDFType.h"

#include "STDDeletable.h"

#include "OGDFHierarchyLayoutModule.h"

#include "stdcxxType.h"


#define OPTIMALHIERARCHYLAYOUT_DECL_VIRT(Type) \



#define OPTIMALHIERARCHYLAYOUT_DECL_NONVIRT(Type) \
Type##_p Type##_newOptimalHierarchyLayout (  );\
void Type##_optimalHierarchyLayout_layerDistance ( Type##_p p, double x );\
void Type##_optimalHierarchyLayout_nodeDistance ( Type##_p p, double x );\
void Type##_optimalHierarchyLayout_weightBalancing ( Type##_p p, double w );


#define OPTIMALHIERARCHYLAYOUT_DECL_ACCESSOR(Type) \



#define OPTIMALHIERARCHYLAYOUT_DEF_VIRT(Type) \



#define OPTIMALHIERARCHYLAYOUT_DEF_NONVIRT(Type) \
Type##_p Type##_newOptimalHierarchyLayout (  ) {\
Type* newp=new Type();return from_nonconst_to_nonconst<Type##_t, Type>(newp);\
}\
\
void Type##_optimalHierarchyLayout_layerDistance ( Type##_p p, double x ) {\
((TYPECASTMETHOD(Type, optimalHierarchyLayout_layerDistance, OptimalHierarchyLayout))(p))->layerDistance(x);\
}\
\
void Type##_optimalHierarchyLayout_nodeDistance ( Type##_p p, double x ) {\
((TYPECASTMETHOD(Type, optimalHierarchyLayout_nodeDistance, OptimalHierarchyLayout))(p))->nodeDistance(x);\
}\
\
void Type##_optimalHierarchyLayout_weightBalancing ( Type##_p p, double w ) {\
((TYPECASTMETHOD(Type, optimalHierarchyLayout_weightBalancing, OptimalHierarchyLayout))(p))->weightBalancing(w);\
}


#define OPTIMALHIERARCHYLAYOUT_DEF_ACCESSOR(Type) \



DELETABLE_DECL_VIRT(OptimalHierarchyLayout)
HIERARCHYLAYOUTMODULE_DECL_VIRT(OptimalHierarchyLayout)
OPTIMALHIERARCHYLAYOUT_DECL_VIRT(OptimalHierarchyLayout)
OPTIMALHIERARCHYLAYOUT_DECL_NONVIRT(OptimalHierarchyLayout)
OPTIMALHIERARCHYLAYOUT_DECL_ACCESSOR(OptimalHierarchyLayout)

#ifdef __cplusplus
}
#endif

