, including all inherited members.
aboutToChange() | rviz::Property | [signal] |
addBackgroundJob(const boost::function< void()> &job, const std::string &name) | moveit_rviz_plugin::PlanningSceneDisplay | |
addChild(Property *child, int index=-1) | rviz::Property | [virtual] |
addMainLoopJob(const boost::function< void()> &job) | moveit_rviz_plugin::PlanningSceneDisplay | |
addStatusText(const std::string &text) | moveit_rviz_plugin::MotionPlanningDisplay | |
addStatusText(const std::vector< std::string > &text) | moveit_rviz_plugin::MotionPlanningDisplay | |
attached_body_color_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
background_process_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
backgroundJobUpdate(moveit::tools::BackgroundProcessing::JobEvent event, const std::string &jobname) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
BoolProperty(const QString &name=QString(), bool default_value=false, const QString &description=QString(), Property *parent=0, const char *changed_slot=0, QObject *receiver=0) | rviz::BoolProperty | |
calculateOffsetPosition() | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
changed() | rviz::Property | [signal] |
changedMetricsSetPayload() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedMetricsTextHeight() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedPlanningGroup() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryCollidingLinkColor() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryGoalAlpha() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryGoalColor() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryGoalState() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryJointViolationColor() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryMarkerScale() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryStartAlpha() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryStartColor() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedQueryStartState() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedShowJointTorques() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedShowManipulability() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedShowManipulabilityIndex() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedShowWeightLimit() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changedWorkspace() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
changePlanningGroup(const std::string &group) | moveit_rviz_plugin::MotionPlanningDisplay | |
child_indexes_valid_ | rviz::Property | [protected] |
childAt(int index) const | rviz::Property | |
childAtUnchecked(int index) const | rviz::Property | [virtual] |
childListChanged(Property *this_property) | rviz::Property | [signal] |
clearJobs() | moveit_rviz_plugin::PlanningSceneDisplay | |
clearPlaceLocationsDisplay() | moveit_rviz_plugin::MotionPlanningDisplay | |
clearRobotModel() | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
clearStatuses() | rviz::Display | [protected, virtual] |
collapse() | rviz::Property | [virtual] |
COLLISION_LINK enum value | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
compute_weight_limit_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
computed_metrics_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
computeMetrics(bool start, const std::string &group, double payload) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
computeMetricsInternal(std::map< std::string, double > &metrics, const robot_interaction::RobotInteraction::EndEffector &eef, const robot_state::RobotState &state, double payload) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
contains(Property *possible_child) const | rviz::Property | |
context_ | rviz::Display | [protected] |
createEditor(QWidget *parent, const QStyleOptionViewItem &option) | rviz::Property | [virtual] |
createPlanningSceneMonitor() | moveit_rviz_plugin::PlanningSceneDisplay | [protected, virtual] |
current_scene_time_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
deleteStatus(const QString &name) | rviz::Display | [virtual] |
deleteStatusStd(const std::string &name) | rviz::Display | |
Display() | rviz::Display | |
displayMetrics(bool start) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
displayTable(const std::map< std::string, double > &values, const Ogre::ColourValue &color, const Ogre::Vector3 &pos, const Ogre::Quaternion &orient) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
drawQueryGoalState() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
drawQueryStartState() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
dropVisualizedTrajectory() | moveit_rviz_plugin::MotionPlanningDisplay | [inline] |
dynamics_solver_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
emitTimeSignal(ros::Time time) | rviz::Display | |
executeMainLoopJobs() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
expand() | rviz::Property | [virtual] |
fixed_frame_ | rviz::Display | [protected] |
fixedFrameChanged() | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
frame_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
frame_dock_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
getAssociatedWidget() const | rviz::Display | |
getAssociatedWidgetPanel() | rviz::Display | |
getBool() const | rviz::BoolProperty | [virtual] |
getClassId() const | rviz::Display | [virtual] |
getCurrentPlanningGroup() const | moveit_rviz_plugin::MotionPlanningDisplay | |
getDescription() const | rviz::Property | [virtual] |
getDisableChildren() | rviz::BoolProperty | [virtual] |
getDisableChildrenIfFalse() | rviz::BoolProperty | |
getHidden() const | rviz::Property | [virtual] |
getIcon() const | rviz::Property | [virtual] |
getModel() const | rviz::Property | |
getMoveGroupNS() const | moveit_rviz_plugin::PlanningSceneDisplay | |
getName() const | rviz::Property | [virtual] |
getNameStd() const | rviz::Property | |
getParent() const | rviz::Property | |
getPlanningSceneMonitor() | moveit_rviz_plugin::PlanningSceneDisplay | |
getPlanningSceneRO() const | moveit_rviz_plugin::PlanningSceneDisplay | |
getPlanningSceneRW() | moveit_rviz_plugin::PlanningSceneDisplay | |
getQueryGoalState() const | moveit_rviz_plugin::MotionPlanningDisplay | [inline] |
getQueryGoalStateHandler() const | moveit_rviz_plugin::MotionPlanningDisplay | [inline] |
getQueryStartState() const | moveit_rviz_plugin::MotionPlanningDisplay | [inline] |
getQueryStartStateHandler() const | moveit_rviz_plugin::MotionPlanningDisplay | [inline] |
getReadOnly() | rviz::Property | [virtual] |
getRobotInteraction() const | moveit_rviz_plugin::MotionPlanningDisplay | [inline] |
getRobotModel() const | moveit_rviz_plugin::PlanningSceneDisplay | |
getSceneNode() const | rviz::Display | |
getValue() const | rviz::Property | [virtual] |
getViewData(int column, int role) const | rviz::Display | [virtual] |
getViewFlags(int column) const | rviz::Display | [virtual] |
getVisibilityBits() | rviz::Display | |
hide() | rviz::Property | |
icon_ | rviz::Property | [protected] |
initialize(DisplayContext *context) | rviz::Display | |
initialized() const | rviz::Display | [protected] |
int_marker_display_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
isAncestorOf(Property *possible_child) const | rviz::Property | |
isEnabled() const | rviz::Display | |
isIKSolutionCollisionFree(robot_state::RobotState *state, const robot_state::JointModelGroup *group, const double *ik_solution) const | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
kinematics_metrics_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
LinkDisplayStatus enum name | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
load(const rviz::Config &config) | moveit_rviz_plugin::MotionPlanningDisplay | [virtual] |
loadRobotModel() | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
loadValue(const Config &config) | rviz::Property | [protected] |
main_loop_jobs_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
main_loop_jobs_empty_condition_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
main_loop_jobs_lock_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
menu_handler_goal_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
menu_handler_start_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
metrics_category_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
metrics_set_payload_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
metrics_text_height_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
model_ | rviz::Property | [protected] |
model_is_loading_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
modified_groups_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
motionPanelVisibilityChange(bool enable) | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
MotionPlanningDisplay() | moveit_rviz_plugin::MotionPlanningDisplay | |
move_group_ns_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
moveChild(int from_index, int to_index) | rviz::Property | [virtual] |
node_handle_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
numChildren() const | rviz::Property | [virtual] |
octree_coloring_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
octree_render_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
onDisable() | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
onEnable() | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
onEnableChanged() | rviz::Display | [virtual, slot] |
onInitialize() | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
onRobotModelLoaded() | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
onSceneMonitorReceivedUpdate(planning_scene_monitor::PlanningSceneMonitor::SceneUpdateType update_type) | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
OUTSIDE_BOUNDS_LINK enum value | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
paint(QPainter *painter, const QStyleOptionViewItem &option) const | rviz::Property | [virtual] |
path_category_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
place_locations_display_ | moveit_rviz_plugin::MotionPlanningDisplay | |
plan_category_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
planning_group_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
planning_group_sub_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
planning_scene_monitor_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
planning_scene_needs_render_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
planning_scene_node_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
planning_scene_render_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
planning_scene_robot_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
planning_scene_topic_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
PlanningSceneDisplay(bool listen_to_planning_scene=true, bool show_scene_robot=true) | moveit_rviz_plugin::PlanningSceneDisplay | |
populateMenuHandler(boost::shared_ptr< interactive_markers::MenuHandler > &mh) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
position_only_ik_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
private_handle_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
Property(const QString &name=QString(), const QVariant default_value=QVariant(), const QString &description=QString(), Property *parent=0, const char *changed_slot=0, QObject *receiver=0) | rviz::Property | |
publishInteractiveMarkers(bool pose_update) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_colliding_link_color_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_goal_alpha_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_goal_color_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_goal_state_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_goal_state_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_marker_scale_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_outside_joint_limits_link_color_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_robot_goal_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_robot_start_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_start_alpha_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_start_color_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_start_state_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
query_start_state_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
queueRender() | rviz::Display | [slot] |
queueRenderSceneGeometry() | moveit_rviz_plugin::PlanningSceneDisplay | |
recomputeQueryGoalStateMetrics() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
recomputeQueryStartStateMetrics() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
removeChildren(int start_index=0, int count=-1) | rviz::Property | [virtual] |
renderPlanningScene() | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
renderWorkspaceBox() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
reset() | moveit_rviz_plugin::MotionPlanningDisplay | [virtual] |
resetInteractiveMarkers() | moveit_rviz_plugin::MotionPlanningDisplay | [private, slot] |
resetStatusTextColor() | moveit_rviz_plugin::MotionPlanningDisplay | |
robot_alpha_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
robot_category_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
robot_description_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
robot_interaction_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
robot_model_loading_lock_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
rowNumberInParent() const | rviz::Property | |
save(rviz::Config config) const | moveit_rviz_plugin::MotionPlanningDisplay | [virtual] |
scene_alpha_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_category_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_color_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_display_time_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_enabled_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_manager_ | rviz::Display | [protected] |
scene_name_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_node_ | rviz::Display | [protected] |
scene_robot_collision_enabled_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scene_robot_visual_enabled_property_ | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
sceneMonitorReceivedUpdate(planning_scene_monitor::PlanningSceneMonitor::SceneUpdateType update_type) | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
scheduleDrawQueryGoalState(robot_interaction::RobotInteraction::InteractionHandler *handler, bool error_state_changed) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
scheduleDrawQueryStartState(robot_interaction::RobotInteraction::InteractionHandler *handler, bool error_state_changed) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
selectPlanningGroupCallback(const std_msgs::StringConstPtr &msg) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
setAssociatedWidget(QWidget *widget) | rviz::Display | |
setBool(bool value) | rviz::BoolProperty | [slot] |
setClassId(const QString &class_id) | rviz::Display | [virtual] |
setDescription(const QString &description) | rviz::Property | [virtual] |
setDisableChildrenIfFalse(bool disable) | rviz::BoolProperty | |
setEnabled(bool enabled) | rviz::Display | [slot] |
setFixedFrame(const QString &fixed_frame) | rviz::Display | |
setGroupColor(rviz::Robot *robot, const std::string &group_name, const QColor &color) | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
setHidden(bool hidden) | rviz::Property | [virtual] |
setIcon(const QIcon &icon) | rviz::Display | [virtual, slot] |
setLinkColor(const std::string &link_name, const QColor &color) | moveit_rviz_plugin::PlanningSceneDisplay | |
setLinkColor(rviz::Robot *robot, const std::string &link_name, const QColor &color) | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
setModel(PropertyTreeModel *model) | rviz::Property | |
setName(const QString &name) | moveit_rviz_plugin::MotionPlanningDisplay | [virtual] |
setParent(Property *new_parent) | rviz::Property | |
setQueryGoalState(const robot_state::RobotState &goal) | moveit_rviz_plugin::MotionPlanningDisplay | |
setQueryStartState(const robot_state::RobotState &start) | moveit_rviz_plugin::MotionPlanningDisplay | |
setQueryStateHelper(bool use_start_state, const std::string &v) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
setReadOnly(bool read_only) | rviz::Property | [virtual] |
setShouldBeSaved(bool save) | rviz::Property | |
setStatus(StatusProperty::Level level, const QString &name, const QString &text) | rviz::Display | [virtual] |
setStatusStd(StatusProperty::Level level, const std::string &name, const std::string &text) | rviz::Display | |
setStatusTextColor(const QColor &color) | moveit_rviz_plugin::MotionPlanningDisplay | |
setTopic(const QString &topic, const QString &datatype) | rviz::Display | [virtual] |
setValue(const QVariant &new_value) | rviz::Property | [virtual] |
setVisibilityBits(uint32_t bits) | rviz::Display | |
shouldBeSaved() const | rviz::Property | |
show() | rviz::Property | |
show_joint_torques_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
show_manipulability_index_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
show_manipulability_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
show_workspace_property_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
spawnBackgroundJob(const boost::function< void()> &job) | moveit_rviz_plugin::PlanningSceneDisplay | |
status_links_goal_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
status_links_start_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
subProp(const QString &sub_name) | rviz::Property | [virtual] |
takeChild(Property *child) | rviz::Property | |
takeChildAt(int index) | rviz::Property | [virtual] |
text_display_for_start_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
text_display_scene_node_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
text_to_display_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
threaded_nh_ | rviz::Display | [protected] |
timeSignal(rviz::Display *display, ros::Time time) | rviz::Display | [signal] |
toggleSelectPlanningGroupSubscription(bool enable) | moveit_rviz_plugin::MotionPlanningDisplay | |
trajectory_visual_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
unsetAllColors(rviz::Robot *robot) | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
unsetGroupColor(rviz::Robot *robot, const std::string &group_name) | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
unsetLinkColor(const std::string &link_name) | moveit_rviz_plugin::PlanningSceneDisplay | |
unsetLinkColor(rviz::Robot *robot, const std::string &link_name) | moveit_rviz_plugin::PlanningSceneDisplay | [protected] |
unsetVisibilityBits(uint32_t bits) | rviz::Display | |
update(float wall_dt, float ros_dt) | moveit_rviz_plugin::MotionPlanningDisplay | [virtual] |
update_metrics_lock_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
update_nh_ | rviz::Display | [protected] |
updateBackgroundJobProgressBar() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
updateInternal(float wall_dt, float ros_dt) | moveit_rviz_plugin::MotionPlanningDisplay | [protected, virtual] |
updateLinkColors() | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
updateQueryGoalState() | moveit_rviz_plugin::MotionPlanningDisplay | |
updateQueryStartState() | moveit_rviz_plugin::MotionPlanningDisplay | |
updateStateExceptModified(robot_state::RobotState &dest, const robot_state::RobotState &src) | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
useApproximateIK(bool flag) | moveit_rviz_plugin::MotionPlanningDisplay | |
value_ | rviz::Property | [protected] |
visualizePlaceLocations(const std::vector< geometry_msgs::PoseStamped > &place_poses) | moveit_rviz_plugin::MotionPlanningDisplay | |
waitForAllMainLoopJobs() | moveit_rviz_plugin::PlanningSceneDisplay | |
workspace_box_ | moveit_rviz_plugin::MotionPlanningDisplay | [protected] |
~BoolProperty() | rviz::BoolProperty | [virtual] |
~Display() | rviz::Display | [virtual] |
~MotionPlanningDisplay() | moveit_rviz_plugin::MotionPlanningDisplay | [virtual] |
~PlanningSceneDisplay() | moveit_rviz_plugin::PlanningSceneDisplay | [virtual] |
~Property() | rviz::Property | [virtual] |