#ifndef MODEL_GENERATOR_H_
#define MODEL_GENERATOR_H_

#include <stddef.h>

#include "model_root.h"
#include "segment.h"
#include "train.h"
#include "turnout.h"

#define SF1
// #define SF2
// #define SF5
// #define SF10
// #define SF20
// #define SF50

#ifdef SF1
void generate_model_modes3_scale_factor_1(ModelRoot *model);
#define generate_model_modes3 generate_model_modes3_scale_factor_1
#endif
#ifdef SF2
void generate_model_modes3_scale_factor_2(ModelRoot *model);
#define generate_model_modes3 generate_model_modes3_scale_factor_2
#endif
#ifdef SF5
void generate_model_modes3_scale_factor_5(ModelRoot *model);
#define generate_model_modes3 generate_model_modes3_scale_factor_5
#endif
#ifdef SF10
void generate_model_modes3_scale_factor_10(ModelRoot *model);
#define generate_model_modes3 generate_model_modes3_scale_factor_10
#endif
#ifdef SF20
void generate_model_modes3_scale_factor_20(ModelRoot *model);
#define generate_model_modes3 generate_model_modes3_scale_factor_20
#endif
#ifdef SF50
void generate_model_modes3_scale_factor_50(ModelRoot *model);
#define generate_model_modes3 generate_model_modes3_scale_factor_50
#endif

#endif /* MODEL_GENERATOR_H_ */
