#ifdef __cplusplus
extern "C" {
#endif

#pragma once


#include "OGDFType.h"

#include "STDDeletable.h"

#include "OGDFLayoutModule.h"

#include "stdcxxType.h"


#define FMMMLAYOUT_DECL_VIRT(Type) \



#define FMMMLAYOUT_DECL_NONVIRT(Type) \
Type##_p Type##_newFMMMLayout (  );\
void Type##_fMMMLayout_useHighLevelOptions ( Type##_p p, bool uho );\
void Type##_fMMMLayout_unitEdgeLength ( Type##_p p, double x );\
void Type##_fMMMLayout_newInitialPlacement ( Type##_p p, bool nip );


#define FMMMLAYOUT_DECL_ACCESSOR(Type) \



#define FMMMLAYOUT_DEF_VIRT(Type) \



#define FMMMLAYOUT_DEF_NONVIRT(Type) \
Type##_p Type##_newFMMMLayout (  ) {\
Type* newp=new Type();return from_nonconst_to_nonconst<Type##_t, Type>(newp);\
}\
\
void Type##_fMMMLayout_useHighLevelOptions ( Type##_p p, bool uho ) {\
((TYPECASTMETHOD(Type, fMMMLayout_useHighLevelOptions, FMMMLayout))(p))->useHighLevelOptions(uho);\
}\
\
void Type##_fMMMLayout_unitEdgeLength ( Type##_p p, double x ) {\
((TYPECASTMETHOD(Type, fMMMLayout_unitEdgeLength, FMMMLayout))(p))->unitEdgeLength(x);\
}\
\
void Type##_fMMMLayout_newInitialPlacement ( Type##_p p, bool nip ) {\
((TYPECASTMETHOD(Type, fMMMLayout_newInitialPlacement, FMMMLayout))(p))->newInitialPlacement(nip);\
}


#define FMMMLAYOUT_DEF_ACCESSOR(Type) \



DELETABLE_DECL_VIRT(FMMMLayout)
LAYOUTMODULE_DECL_VIRT(FMMMLayout)
FMMMLAYOUT_DECL_VIRT(FMMMLayout)
FMMMLAYOUT_DECL_NONVIRT(FMMMLayout)
FMMMLAYOUT_DECL_ACCESSOR(FMMMLayout)

#ifdef __cplusplus
}
#endif