forked from pz4kybsvg/Conception
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.6 KiB
78 lines
2.6 KiB
2 years ago
|
#pragma once
|
||
|
|
||
|
#include <string>
|
||
|
|
||
|
#include <Eigen/Dense>
|
||
|
|
||
|
#include "drake/common/name_value.h"
|
||
|
#include "drake/geometry/rgba.h"
|
||
|
|
||
|
namespace drake {
|
||
|
namespace visualization {
|
||
|
|
||
|
// TODO(jwnimmer-tri or trowell-tri) Add an option to disable LCM entirely.
|
||
|
|
||
|
/** Settings for what MultibodyPlant and SceneGraph should send to meldis
|
||
|
and/or drake_visualizer.
|
||
|
|
||
|
@experimental The exact configuration details (names and types) are subject to
|
||
|
change as we polish this new feature.
|
||
|
|
||
|
See ApplyVisualizationConfig() for how to enact this configuration. */
|
||
|
struct VisualizationConfig {
|
||
|
template <typename Archive>
|
||
|
void Serialize(Archive* a) {
|
||
|
a->Visit(DRAKE_NVP(lcm_bus));
|
||
|
a->Visit(DRAKE_NVP(publish_period));
|
||
|
a->Visit(DRAKE_NVP(publish_illustration));
|
||
|
a->Visit(DRAKE_NVP(default_illustration_color));
|
||
|
a->Visit(DRAKE_NVP(publish_proximity));
|
||
|
a->Visit(DRAKE_NVP(default_proximity_color));
|
||
|
a->Visit(DRAKE_NVP(publish_contacts));
|
||
|
a->Visit(DRAKE_NVP(enable_meshcat_creation));
|
||
|
a->Visit(DRAKE_NVP(delete_on_initialization_event));
|
||
|
a->Visit(DRAKE_NVP(enable_alpha_sliders));
|
||
|
}
|
||
|
|
||
|
/** Which LCM URL to use.
|
||
|
@see drake::systems::lcm::LcmBuses */
|
||
|
std::string lcm_bus{"default"};
|
||
|
|
||
|
/** The duration (in seconds) between published LCM messages that update
|
||
|
visualization. (To help avoid small simulation timesteps, we use a default
|
||
|
period that has an exact representation in binary floating point;
|
||
|
see drake#15021 for details.) */
|
||
|
double publish_period{1 / 64.0};
|
||
|
|
||
|
/** Whether to show illustration geometry. */
|
||
|
bool publish_illustration{true};
|
||
|
|
||
|
/** The color to apply to any illustration geometry that hasn't defined one.
|
||
|
The vector must be of size three (rgb) or four (rgba). */
|
||
|
geometry::Rgba default_illustration_color{0.9, 0.9, 0.9};
|
||
|
|
||
|
/** Whether to show proximity geometry. */
|
||
|
bool publish_proximity{true};
|
||
|
|
||
|
/** The color to apply to any proximity geometry that hasn't defined one.
|
||
|
The vector must be of size three (rgb) or four (rgba). */
|
||
|
geometry::Rgba default_proximity_color{1, 0, 0, 0.5};
|
||
|
|
||
|
/** Whether to show contact forces. */
|
||
|
bool publish_contacts{true};
|
||
|
|
||
|
/** Whether to create a Meshcat object if needed. */
|
||
|
bool enable_meshcat_creation{true};
|
||
|
|
||
|
/** Determines whether to send a Meshcat::Delete() messages to the Meshcat
|
||
|
object (if any) on an initialization event to remove any visualizations,
|
||
|
e.g., from a previous simulation, to . */
|
||
|
bool delete_on_initialization_event{true};
|
||
|
|
||
|
/** Determines whether to enable alpha sliders for geometry display. */
|
||
|
bool enable_alpha_sliders{false};
|
||
|
};
|
||
|
|
||
|
} // namespace visualization
|
||
|
} // namespace drake
|