|
From: <jfa...@us...> - 2008-10-29 18:29:26
|
Revision: 5925
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=5925&view=rev
Author: jfaustwg
Date: 2008-10-29 18:29:17 +0000 (Wed, 29 Oct 2008)
Log Message:
-----------
r11000@lan-dhcp-121: jfaust | 2008-10-28 18:45:11 -0700
Allow the visualizer to reset itself when time jumps backwards (generally means the simulator has restarted, or a log file is being replayed).
Also misc. bug fixes
Modified Paths:
--------------
pkg/trunk/visualization/ogre_tools/src/ogre_tools/point_cloud.cpp
pkg/trunk/visualization/ogre_visualizer/CMakeLists.txt
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/helpers/robot.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizer_base.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.h
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.cpp
pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.h
Property Changed:
----------------
pkg/trunk/
Property changes on: pkg/trunk
___________________________________________________________________
Modified: svk:merge
- 920d6130-5740-4ec1-bb1a-45963d5fd813:/frameidpr:7015
920d6130-5740-4ec1-bb1a-45963d5fd813:/users/josh-pr:10971
920d6130-5740-4ec1-bb1a-45963d5fd813:/wgpkgtrunk:5865
f5854215-dd47-0410-b2c4-cdd35faa7885:/pkg/branches/rosbus:261
+ 920d6130-5740-4ec1-bb1a-45963d5fd813:/frameidpr:7015
920d6130-5740-4ec1-bb1a-45963d5fd813:/users/josh-pr:11000
920d6130-5740-4ec1-bb1a-45963d5fd813:/wgpkgtrunk:5865
f5854215-dd47-0410-b2c4-cdd35faa7885:/pkg/branches/rosbus:261
Modified: pkg/trunk/visualization/ogre_tools/src/ogre_tools/point_cloud.cpp
===================================================================
--- pkg/trunk/visualization/ogre_tools/src/ogre_tools/point_cloud.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_tools/src/ogre_tools/point_cloud.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -104,6 +104,13 @@
point_count_ = 0;
bounding_box_.setExtents( -10000.0f, -10000.0f, -10000.0f, 10000.0f, 10000.0f, 10000.0f );
bounding_radius_ = 30000.0f;
+
+ V_BillboardSet::iterator bbs_it = billboard_sets_.begin();
+ V_BillboardSet::iterator bbs_end = billboard_sets_.end();
+ for ( ; bbs_it != bbs_end; ++bbs_it )
+ {
+ (*bbs_it)->setVisible( false );
+ }
}
void PointCloud::setCloudVisible( bool visible )
Modified: pkg/trunk/visualization/ogre_visualizer/CMakeLists.txt
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/CMakeLists.txt 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/CMakeLists.txt 2008-10-29 18:29:17 UTC (rev 5925)
@@ -2,8 +2,8 @@
include(rosbuild)
include(FindPkgConfig)
-#set(ROS_BUILD_TYPE RelWithDebInfo)
-set(ROS_BUILD_TYPE Debug)
+set(ROS_BUILD_TYPE RelWithDebInfo)
+#set(ROS_BUILD_TYPE Debug)
rospack(ogre_visualizer)
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/helpers/robot.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/helpers/robot.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/helpers/robot.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -599,6 +599,10 @@
void Robot::update( tf::TransformListener* tf, const std::string& target_frame )
{
+ typedef std::vector<std::string> V_string;
+ V_string frames;
+ tf->getFrameStrings( frames );
+
M_NameToLinkInfo::iterator link_it = links_.begin();
M_NameToLinkInfo::iterator link_end = links_.end();
for ( ; link_it != link_end; ++link_it )
@@ -606,14 +610,17 @@
const std::string& name = link_it->first;
LinkInfo* info = link_it->second;
+ if ( std::find( frames.begin(), frames.end(), name ) == frames.end() )
+ {
+ ROS_ERROR( "Frame '%s' does not exist in the TF frame list", name.c_str() );
+ continue;
+ }
+
tf::Stamped<tf::Pose> pose( btTransform( btQuaternion( 0, 0, 0 ), btVector3( 0, 0, 0 ) ), ros::Time(0), name );
try
{
- if ( name != target_frame )
- {
- tf->transformPose( target_frame, pose, pose );
- }
+ tf->transformPose( target_frame, pose, pose );
}
catch(tf::TransformException& e)
{
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -87,17 +87,27 @@
M_Property::iterator found_it = properties_.find( std::make_pair( prefix, name ) );
ROS_ASSERT( found_it != properties_.end() );
+ // search for any children of this property, and delete them as well
+ deleteChildren( found_it->second );
+
+ delete found_it->second;
+
+ properties_.erase( found_it );
+}
+
+void PropertyManager::deleteChildren( PropertyBase* property )
+{
std::set<PropertyBase*> to_delete;
- // search for any children of this property, and delete them as well
+
M_Property::iterator prop_it = properties_.begin();
M_Property::iterator prop_end = properties_.end();
for ( ; prop_it != prop_end; ++prop_it )
{
- PropertyBase* property = prop_it->second;
+ PropertyBase* child = prop_it->second;
- if ( property->getParent() == found_it->second )
+ if ( child->getParent() == property )
{
- to_delete.insert( property );
+ to_delete.insert( child );
}
}
@@ -107,10 +117,6 @@
{
deleteProperty( *del_it );
}
-
- delete found_it->second;
-
- properties_.erase( found_it );
}
void PropertyManager::deleteByUserData( void* user_data )
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/properties/property_manager.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -115,6 +115,11 @@
* @param user_data The user data to compare against
*/
void deleteByUserData( void* user_data );
+ /**
+ * \brief Delete all the children of a property
+ * @param property The property whose children to delete
+ */
+ void deleteChildren( PropertyBase* property );
/**
* \brief Called when a property in the property grid is changing.
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -63,6 +63,7 @@
VisualizationManager::VisualizationManager( VisualizationPanel* panel )
: ogre_root_( Ogre::Root::getSingletonPtr() )
, vis_panel_( panel )
+, needs_reset_( false )
{
initializeCommon();
registerFactories( this );
@@ -111,10 +112,14 @@
setTargetFrame( "base" );
setFixedFrame( "map" );
+
+ ros_node_->subscribe( "/time", time_message_, &VisualizationManager::incomingROSTime, this, 1 );
}
VisualizationManager::~VisualizationManager()
{
+ ros_node_->unsubscribe( "/time", &VisualizationManager::incomingROSTime, this );
+
Disconnect( wxEVT_TIMER, update_timer_->GetId(), wxTimerEventHandler( VisualizationManager::onUpdate ), NULL, this );
delete update_timer_;
@@ -194,6 +199,13 @@
updateRelativeNode();
vis_panel_->getCurrentCamera()->update();
+
+ if ( needs_reset_ )
+ {
+ needs_reset_ = false;
+ resetVisualizers();
+ tf_->clear();
+ }
}
void VisualizationManager::addVisualizer( VisualizerBase* visualizer, bool allow_deletion, bool enabled )
@@ -223,6 +235,18 @@
vis_panel_->getPropertyGrid()->Refresh();
}
+void VisualizationManager::resetVisualizers()
+{
+ V_VisualizerInfo::iterator vis_it = visualizers_.begin();
+ V_VisualizerInfo::iterator vis_end = visualizers_.end();
+ for ( ; vis_it != vis_end; ++vis_it )
+ {
+ VisualizerBase* visualizer = vis_it->visualizer_;
+
+ visualizer->reset();
+ }
+}
+
inline void createParticle( Ogre::ParticleSystem* particle_sys, const Ogre::Vector3& position, float size )
{
Ogre::Particle* p = particle_sys->createParticle();
@@ -575,4 +599,16 @@
target_relative_node_->setOrientation( orientation );
}
+void VisualizationManager::incomingROSTime()
+{
+ static ros::Time last_time = ros::Time(0);
+
+ if ( time_message_.rostime < last_time )
+ {
+ needs_reset_ = true;
+ }
+
+ last_time = time_message_.rostime;
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualization_manager.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -39,6 +39,8 @@
#include <vector>
#include <map>
+#include <rostools/Time.h>
+
namespace ogre_tools
{
class wxOgreRenderWindow;
@@ -201,6 +203,8 @@
Ogre::SceneNode* getTargetRelativeNode() { return target_relative_node_; }
+ void resetVisualizers();
+
protected:
/**
* \brief Add a visualizer to be managed by this panel
@@ -220,6 +224,8 @@
void updateRelativeNode();
+ void incomingROSTime();
+
Ogre::Root* ogre_root_; ///< Ogre Root
Ogre::SceneManager* scene_manager_; ///< Ogre scene manager associated with this panel
Ogre::RaySceneQuery* ray_scene_query_; ///< Used for querying the scene based on the mouse location
@@ -257,6 +263,9 @@
VisualizerSignal visualizer_state_;
Ogre::SceneNode* target_relative_node_;
+
+ rostools::Time time_message_;
+ bool needs_reset_;
};
}
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizer_base.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizer_base.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizer_base.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -158,6 +158,11 @@
*/
virtual const char* getType() = 0;
+ /**
+ * \brief Called to tell the visualizer to clear its state
+ */
+ virtual void reset() {}
+
protected:
/// Derived classes override this to do the actual work of enabling themselves
virtual void onEnable() = 0;
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -173,11 +173,13 @@
{
RenderAutoLock renderLock( this );
- cloud_->setCloudVisible( false );
cloud_->clear();
points_.clear();
point_times_.clear();
cloud_messages_.clear();
+
+ intensity_min_ = 9999999.0f;
+ intensity_max_ = -9999999.0f;
}
void LaserScanVisualizer::onEnable()
@@ -191,6 +193,8 @@
unsubscribe();
clear();
+
+ cloud_->setCloudVisible( false );
}
void LaserScanVisualizer::subscribe()
@@ -302,8 +306,6 @@
float diff_intensity = intensity_max_ - intensity_min_;
-
-
points_.push_back( V_Point() );
V_Point& points = points_.back();
points.resize( point_count_ );
@@ -430,4 +432,9 @@
boost::bind( &LaserScanVisualizer::setCloudTopic, this, _1 ), parent_category_, this );
}
+void LaserScanVisualizer::reset()
+{
+ clear();
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/laser_scan_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -125,6 +125,7 @@
virtual void targetFrameChanged() {}
virtual void fixedFrameChanged();
virtual void createProperties();
+ virtual void reset();
static const char* getTypeStatic() { return "Laser Scan"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -251,6 +251,8 @@
}
loaded_ = true;
+
+ causeRender();
}
void MapVisualizer::transformMap()
@@ -311,4 +313,9 @@
transformMap();
}
+void MapVisualizer::reset()
+{
+ clear();
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/map_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -70,6 +70,7 @@
virtual void fixedFrameChanged();
virtual void createProperties();
virtual void update( float dt );
+ virtual void reset();
static const char* getTypeStatic() { return "Map"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -332,4 +332,9 @@
clearMarkers();
}
+void MarkerVisualizer::reset()
+{
+ clearMarkers();
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/marker_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -106,6 +106,7 @@
virtual void targetFrameChanged() {}
virtual void fixedFrameChanged();
+ virtual void reset();
static const char* getTypeStatic() { return "Markers"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -252,4 +252,9 @@
boost::bind( &OctreeVisualizer::setOctreeTopic, this, _1 ), parent_category_, this );
}
+void OctreeVisualizer::reset()
+{
+ manual_object_->clear();
}
+
+}
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/octree_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -79,6 +79,7 @@
virtual void createProperties();
virtual void update( float dt );
+ virtual void reset();
static const char* getTypeStatic() { return "Octree"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -321,4 +321,11 @@
boost::bind( &PointCloudVisualizer::setTopic, this, _1 ), parent_category_, this );
}
+void PointCloudVisualizer::reset()
+{
+ RenderAutoLock renderLock( this );
+
+ cloud_->clear();
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/point_cloud_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -108,6 +108,7 @@
virtual void targetFrameChanged() {}
virtual void fixedFrameChanged();
virtual void createProperties();
+ virtual void reset();
static const char* getTypeStatic() { return "Point Cloud"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -49,7 +49,7 @@
: VisualizerBase( name, manager )
, topic_( "odom" )
, color_( 1.0f, 0.1f, 0.0f )
-, position_tolerance_( 0.01 )
+, position_tolerance_( 0.1 )
, angle_tolerance_( 0.1 )
, color_property_( NULL )
, topic_property_( NULL )
@@ -285,4 +285,9 @@
queue_mutex_.unlock();
}
+void RobotBase2DPoseVisualizer::reset()
+{
+ clear();
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_base2d_pose_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -82,6 +82,7 @@
virtual void createProperties();
virtual void update( float dt );
virtual bool isObjectPickable( const Ogre::MovableObject* object ) const { return true; }
+ virtual void reset();
static const char* getTypeStatic() { return "RobotBase2DPose"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -255,5 +255,10 @@
robot_->setPropertyManager( property_manager_, parent_category_ );
}
+void RobotModelVisualizer::reset()
+{
+ has_new_transforms_ = true;
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/robot_model_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -113,6 +113,7 @@
virtual void fixedFrameChanged() {}
virtual void createProperties();
virtual bool isObjectPickable( const Ogre::MovableObject* object ) const { return true; }
+ virtual void reset();
static const char* getTypeStatic() { return "Robot Model"; }
virtual const char* getType() { return getTypeStatic(); }
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.cpp
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.cpp 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.cpp 2008-10-29 18:29:17 UTC (rev 5925)
@@ -109,6 +109,8 @@
frames_.clear();
+ property_manager_->deleteChildren( tree_category_ );
+
update_timer_ = 0.0f;
}
@@ -289,11 +291,11 @@
try
{
- tf_->transformPose( target_frame_, pose, pose );
+ tf_->transformPose( fixed_frame_, pose, pose );
}
catch(tf::TransformException& e)
{
- ROS_ERROR( "Error transforming frame '%s' to frame '%s'\n", frame->name_.c_str(), target_frame_.c_str() );
+ ROS_ERROR( "Error transforming frame '%s' to frame '%s'\n", frame->name_.c_str(), fixed_frame_.c_str() );
}
frame->position_ = Ogre::Vector3( pose.getOrigin().x(), pose.getOrigin().y(), pose.getOrigin().z() );
@@ -341,11 +343,11 @@
try
{
- tf_->transformPose( target_frame_, parent_pose, parent_pose );
+ tf_->transformPose( fixed_frame_, parent_pose, parent_pose );
}
catch(tf::TransformException& e)
{
- ROS_ERROR( "Error transforming frame '%s' to frame '%s'\n", frame->parent_.c_str(), target_frame_.c_str() );
+ ROS_ERROR( "Error transforming frame '%s' to frame '%s'\n", frame->parent_.c_str(), fixed_frame_.c_str() );
}
Ogre::Vector3 parent_position = Ogre::Vector3( parent_pose.getOrigin().x(), parent_pose.getOrigin().y(), parent_pose.getOrigin().z() );
@@ -440,5 +442,10 @@
update_timer_ = update_rate_;
}
+void TFVisualizer::reset()
+{
+ clear();
+}
+
} // namespace ogre_vis
Modified: pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.h
===================================================================
--- pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.h 2008-10-29 18:28:31 UTC (rev 5924)
+++ pkg/trunk/visualization/ogre_visualizer/src/ogre_visualizer/visualizers/tf_visualizer.h 2008-10-29 18:29:17 UTC (rev 5925)
@@ -118,6 +118,7 @@
virtual void fixedFrameChanged() {}
virtual void createProperties();
virtual bool isObjectPickable( const Ogre::MovableObject* object ) const { return true; }
+ virtual void reset();
static const char* getTypeStatic() { return "TF"; }
virtual const char* getType() { return getTypeStatic(); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|