import os

Import('env')

module_env = env.Clone()

sources = [
    "register_types.cpp",

    "algos/mm_algos.cpp",
    "algos/mm_algos_bind.cpp",

    "nodes/mm_material.cpp",
    "nodes/mm_node_universal_property.cpp",
    "nodes/mm_node.cpp",

    "nodes/bases/curve_base.cpp",
    "nodes/bases/gradient_base.cpp",
    "nodes/bases/polygon_base.cpp",

    "editor/mat_maker_gd_editor.cpp",
    "editor/mm_create_name_popup.cpp",
    "editor/mm_graph_node.cpp",

    "editor/widgets/color_picker_popup/color_picker_popup.cpp",

    "editor/widgets/curve_edit/control_point.cpp",
    "editor/widgets/curve_edit/curve_dialog.cpp",
    "editor/widgets/curve_edit/curve_edit.cpp",
    "editor/widgets/curve_edit/curve_editor.cpp",
    "editor/widgets/curve_edit/curve_view.cpp",
    "editor/widgets/curve_edit/slope_point.cpp",

    "editor/widgets/file_dialog/left_panel.cpp",
    "editor/widgets/file_dialog/mat_maker_file_dialog.cpp",

    #"editor/widgets/float_edit/float_edit.cpp",

    "editor/widgets/gradient_editor/gradient_cursor.cpp",
    "editor/widgets/gradient_editor/gradient_editor.cpp",
    "editor/widgets/gradient_editor/gradient_popup.cpp",

    "editor/widgets/image_picker_button/image_picker_button.cpp",

    "editor/widgets/mm_dnd_color_picker_button/mm_dnd_color_picker_button.cpp",
    
    "editor/widgets/polygon_edit/polygon_control_point.cpp",
    "editor/widgets/polygon_edit/polygon_dialog.cpp",
    "editor/widgets/polygon_edit/polygon_edit.cpp",
    "editor/widgets/polygon_edit/polygon_editor.cpp",
    "editor/widgets/polygon_edit/polygon_view.cpp",

    "editor/widgets/tones_editor/tones_editor.cpp",
    "editor/widgets/tones_editor/tones_editor_cursor.cpp",

    "nodes/uniform/uniform.cpp",
    "nodes/uniform/greyscale_uniform.cpp",

    "nodes/transform/translate.cpp",
    "nodes/transform/transform.cpp",
    "nodes/transform/tiler.cpp",
    "nodes/transform/shear.cpp",
    "nodes/transform/scale.cpp",
    "nodes/transform/rotate.cpp",
    "nodes/transform/repeat.cpp",
    "nodes/transform/mirror.cpp",
    "nodes/transform/kaleidoscope.cpp",
    "nodes/transform/color_tiler.cpp",
    "nodes/transform/circle_map.cpp",
    "nodes/transform/warp.cpp",

    "nodes/simple/shape.cpp",
    "nodes/simple/image.cpp",
    "nodes/simple/curve.cpp",

    "nodes/sdf3d/sdf3d_render.cpp",
    "nodes/sdf3d/sdf3d_color.cpp",

    "nodes/sdf3d/sdf3d_tf_translate.cpp",
    "nodes/sdf3d/sdf3d_tf_scale.cpp",
    "nodes/sdf3d/sdf3d_tf_rotate.cpp",

    "nodes/sdf3d/sdf3d_shape_torus.cpp",
    "nodes/sdf3d/sdf3d_shape_sphere.cpp",
    "nodes/sdf3d/sdf3d_shape_cylinder.cpp",
    "nodes/sdf3d/sdf3d_shape_cone.cpp",
    "nodes/sdf3d/sdf3d_shape_capsule.cpp",
    "nodes/sdf3d/sdf3d_shape_box.cpp",

    "nodes/sdf3d/sdf3d_op_smooth_bool.cpp",
    "nodes/sdf3d/sdf3d_op_rounded.cpp",
    "nodes/sdf3d/sdf3d_op_revolution.cpp",
    "nodes/sdf3d/sdf3d_op_repeat.cpp",
    "nodes/sdf3d/sdf3d_op_morph.cpp",
    "nodes/sdf3d/sdf3d_op_elongation.cpp",
    "nodes/sdf3d/sdf3d_op_extrusion.cpp",
    "nodes/sdf3d/sdf3d_op_circle_repeat.cpp",
    "nodes/sdf3d/sdf3d_op_bool.cpp",

    "nodes/sdf2d/sd_show.cpp",

    "nodes/sdf2d/sd_shape_rhombus.cpp",
    "nodes/sdf2d/sd_shape_polygon.cpp",
    "nodes/sdf2d/sd_shape_line.cpp",
    "nodes/sdf2d/sd_shape_circle.cpp",
    "nodes/sdf2d/sd_shape_box.cpp",
    "nodes/sdf2d/sd_shape_arc.cpp",

    "nodes/sdf2d/sd_tf_translate.cpp",
    "nodes/sdf2d/sd_tf_scale.cpp",
    "nodes/sdf2d/sd_tf_rotate.cpp",

    "nodes/sdf2d/sd_op_smooth_bool.cpp",
    "nodes/sdf2d/sd_op_rounded_shape.cpp",
    "nodes/sdf2d/sd_op_repeat.cpp",
    "nodes/sdf2d/sd_op_morph.cpp",
    "nodes/sdf2d/sd_op_circle_repeat.cpp",
    "nodes/sdf2d/sd_op_bool.cpp",
    "nodes/sdf2d/sd_op_annular_shape.cpp",

    "nodes/pattern/weave.cpp",
    "nodes/pattern/truchet.cpp",
    "nodes/pattern/sine_wave.cpp",
    "nodes/pattern/scratches.cpp",
    "nodes/pattern/runes.cpp",
    "nodes/pattern/pattern.cpp",
    "nodes/pattern/iching.cpp",
    "nodes/pattern/bricks.cpp",
    "nodes/pattern/beehive.cpp",

    "nodes/other/output_image.cpp",

    "nodes/noise/voronoi.cpp",
    "nodes/noise/noise.cpp",
    "nodes/noise/fbm_noise.cpp",
    "nodes/noise/color_value.cpp",
    "nodes/noise/color_noise.cpp",
    "nodes/noise/anisotropic_noise.cpp",

    "nodes/gradient/radial_gradient.cpp",
    "nodes/gradient/gradient.cpp",
    "nodes/gradient/circular_gradient.cpp",

    "nodes/filter/tonality.cpp",
    "nodes/filter/swap_channels.cpp",
    "nodes/filter/quantize.cpp",
    "nodes/filter/mm_math.cpp",
    "nodes/filter/make_tileable.cpp",
    "nodes/filter/invert.cpp",
    "nodes/filter/greyscale.cpp",
    "nodes/filter/fill_to_uv.cpp",
    "nodes/filter/fill_to_size.cpp",
    "nodes/filter/fill_to_random_grey.cpp",
    "nodes/filter/fill_to_random_color.cpp",
    "nodes/filter/fill_to_position.cpp",
    "nodes/filter/fill_to_color.cpp",
    "nodes/filter/fill_channel.cpp",
    "nodes/filter/emboss.cpp",
    "nodes/filter/decompose.cpp",
    "nodes/filter/combine.cpp",
    "nodes/filter/colorize.cpp",
    "nodes/filter/brightness_contrast.cpp",
    "nodes/filter/blur_gaussian.cpp",
    "nodes/filter/blur_slope.cpp",
    "nodes/filter/blend.cpp",
    "nodes/filter/adjust_hsv.cpp",
    "nodes/filter/tones_step.cpp",
    "nodes/filter/tones_map.cpp",
    "nodes/filter/tones.cpp",
]

if env["tools"]:
    sources.append("editor_plugin.cpp")

module_env.add_source_files(env.modules_sources, sources)