# -*- python -*-

load(
    "//tools:drake.bzl",
    "drake_cc_binary",
    "drake_cc_googletest",
    "drake_cc_library",
)
load(
    "@drake//tools/vector_gen:vector_gen.bzl",
    "drake_cc_vector_gen_library",
)
load("//tools/lint:lint.bzl", "add_lint_tests")

drake_cc_vector_gen_library(
    name = "bouncing_ball_vector",
    srcs = ["bouncing_ball_vector.named_vector"],
)

drake_cc_library(
    name = "bouncing_ball_plant",
    srcs = ["bouncing_ball_plant.cc"],
    hdrs = ["bouncing_ball_plant.h"],
    deps = [
        ":bouncing_ball_vector",
        "//geometry:geometry_ids",
        "//geometry:scene_graph",
        "//systems/framework:leaf_system",
    ],
)

drake_cc_binary(
    name = "bouncing_ball_run_dynamics",
    srcs = ["bouncing_ball_run_dynamics.cc"],
    deps = [
        ":bouncing_ball_plant",
        "//geometry:geometry_visualization",
        "//geometry:scene_graph",
        "//systems/analysis:simulator",
        "//systems/framework:diagram",
        "//systems/primitives:constant_vector_source",
        "//systems/primitives:signal_logger",
    ],
)

drake_cc_library(
    name = "solar_system",
    srcs = ["solar_system.cc"],
    hdrs = ["solar_system.h"],
    data = ["planet_rings.obj"],
    deps = [
        "//common",
        "//geometry:geometry_ids",
        "//geometry:scene_graph",
        "//math:geometric_transform",
        "//systems/framework:leaf_system",
    ],
)

drake_cc_binary(
    name = "solar_system_run_dynamics",
    srcs = ["solar_system_run_dynamics.cc"],
    deps = [
        ":solar_system",
        "//geometry:geometry_visualization",
        "//geometry:scene_graph",
        "//systems/analysis:simulator",
        "//systems/framework:diagram",
        "//systems/primitives:constant_vector_source",
        "//systems/primitives:signal_logger",
    ],
)

add_lint_tests()
