#!/usr/bin/env python
PACKAGE = "global_planner"

from dynamic_reconfigure.parameter_generator_catkin import ParameterGenerator, int_t, double_t, bool_t

gen = ParameterGenerator()

gen.add("lethal_cost", int_t, 0, "Lethal Cost", 253, 1, 255)
gen.add("neutral_cost", int_t, 0, "Neutral Cost", 50, 1, 255)
gen.add("cost_factor", double_t, 0, "Factor to multiply each cost from costmap by", 3.0, 0.01, 5.0)
gen.add("publish_potential", bool_t, 0, "Publish Potential Costmap", True)

orientation_enum = gen.enum([
    gen.const("None", int_t, 0, "No orientations added except goal orientation"),
    gen.const("Forward", int_t, 1,
              "Positive x axis points along path, except for the goal orientation"),
    gen.const("Interpolate", int_t, 2, "Orientations are a linear blend of start and goal pose"),
    gen.const("ForwardThenInterpolate",
              int_t, 3, "Forward orientation until last straightaway, then a linear blend until the goal pose"),
    gen.const("Backward", int_t, 4,
              "Negative x axis points along the path, except for the goal orientation"),
    gen.const("Leftward", int_t, 5,
              "Positive y axis points along the path, except for the goal orientation"),
    gen.const("Rightward", int_t, 6,
              "Negative y axis points along the path, except for the goal orientation"),
], "How to set the orientation of each point")

gen.add("orientation_mode", int_t, 0, "How to set the orientation of each point", 1, 0, 6,
        edit_method=orientation_enum)
gen.add("orientation_window_size", int_t, 0, "What window to use to determine the orientation based on the "
        "position derivative specified by the orientation mode", 1, 1, 255)

exit(gen.generate(PACKAGE, "global_planner", "GlobalPlanner"))
