Skip to content

Commit 5e57ac9

Browse files
committed
updated interactive_marker_tutorials to work with bullet classes which have moved into tf.
1 parent a4bebcc commit 5e57ac9

File tree

4 files changed

+28
-17
lines changed

4 files changed

+28
-17
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*~
2+
bin
3+
build

interactive_marker_tutorials/src/basic_controls.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ InteractiveMarkerControl& makeBoxControl( InteractiveMarker &msg )
8080
void frameCallback(const ros::TimerEvent&)
8181
{
8282
static uint32_t counter = 0;
83-
static bool make = true;
8483

8584
static tf::TransformBroadcaster br;
8685

interactive_marker_tutorials/src/cube.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,14 @@
3434

3535
#include <math.h>
3636

37-
#include <LinearMath/btVector3.h>
37+
#include <tf/LinearMath/Vector3.h>
3838

3939

4040
using namespace visualization_msgs;
4141

4242
boost::shared_ptr<interactive_markers::InteractiveMarkerServer> server;
4343

44-
std::vector< btVector3 > positions;
44+
std::vector< tf::Vector3 > positions;
4545

4646
void processFeedback( const visualization_msgs::InteractiveMarkerFeedbackConstPtr &feedback )
4747
{
@@ -51,14 +51,14 @@ void processFeedback( const visualization_msgs::InteractiveMarkerFeedbackConstPt
5151
{
5252
//compute difference vector for this cube
5353

54-
btVector3 fb_pos(feedback->pose.position.x, feedback->pose.position.y, feedback->pose.position.z);
54+
tf::Vector3 fb_pos(feedback->pose.position.x, feedback->pose.position.y, feedback->pose.position.z);
5555
unsigned index = atoi( feedback->marker_name.c_str() );
5656

5757
if ( index > positions.size() )
5858
{
5959
return;
6060
}
61-
btVector3 fb_delta = fb_pos - positions[index];
61+
tf::Vector3 fb_delta = fb_pos - positions[index];
6262

6363
// move all markers in that direction
6464
for ( unsigned i=0; i<positions.size(); i++ )
@@ -139,7 +139,7 @@ void makeCube( )
139139
int_marker.pose.position.y = y;
140140
int_marker.pose.position.z = z;
141141

142-
positions.push_back( btVector3(x,y,z) );
142+
positions.push_back( tf::Vector3(x,y,z) );
143143

144144
std::stringstream s;
145145
s << count;

interactive_marker_tutorials/src/selection.cpp

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,25 @@
3535
#include <interactive_markers/interactive_marker_server.h>
3636
#include <interactive_markers/tools.h>
3737

38-
#include <LinearMath/btVector3.h>
39-
#include <LinearMath/btAabbUtil2.h>
38+
#include <tf/LinearMath/Vector3.h>
39+
40+
bool testPointAgainstAabb2(const tf::Vector3 &aabbMin1, const tf::Vector3 &aabbMax1,
41+
const tf::Vector3 &point)
42+
{
43+
bool overlap = true;
44+
overlap = (aabbMin1.getX() > point.getX() || aabbMax1.getX() < point.getX()) ? false : overlap;
45+
overlap = (aabbMin1.getZ() > point.getZ() || aabbMax1.getZ() < point.getZ()) ? false : overlap;
46+
overlap = (aabbMin1.getY() > point.getY() || aabbMax1.getY() < point.getY()) ? false : overlap;
47+
return overlap;
48+
}
4049

4150
namespace vm = visualization_msgs;
4251

4352
class PointCouldSelector
4453
{
4554
public:
4655
PointCouldSelector( boost::shared_ptr<interactive_markers::InteractiveMarkerServer> server,
47-
std::vector<btVector3>& points ) :
56+
std::vector<tf::Vector3>& points ) :
4857
server_( server ),
4958
min_sel_( -1, -1, -1 ),
5059
max_sel_( 1, 1, 1 ),
@@ -82,7 +91,7 @@ class PointCouldSelector
8291
}
8392

8493
vm::Marker makeBox( vm::InteractiveMarker &msg,
85-
btVector3 min_bound, btVector3 max_bound )
94+
tf::Vector3 min_bound, tf::Vector3 max_bound )
8695
{
8796
vm::Marker marker;
8897

@@ -114,7 +123,7 @@ class PointCouldSelector
114123
server_->insert( msg );
115124
}
116125

117-
void updatePointCloud( std::string name, std_msgs::ColorRGBA color, std::vector<btVector3> &points )
126+
void updatePointCloud( std::string name, std_msgs::ColorRGBA color, std::vector<tf::Vector3> &points )
118127
{
119128
// create an interactive marker for our server
120129
vm::InteractiveMarker int_marker;
@@ -152,14 +161,14 @@ class PointCouldSelector
152161

153162
void updatePointClouds()
154163
{
155-
std::vector<btVector3> points_in, points_out;
164+
std::vector<tf::Vector3> points_in, points_out;
156165
points_in.reserve( points_.size() );
157166
points_out.reserve( points_.size() );
158167

159168
// determine which points are selected (i.e. inside the selection box)
160169
for ( unsigned i=0; i<points_.size(); i++ )
161170
{
162-
if ( TestPointAgainstAabb2( min_sel_, max_sel_, points_[i] ) )
171+
if ( testPointAgainstAabb2( min_sel_, max_sel_, points_[i] ) )
163172
{
164173
points_in.push_back( points_[i] );
165174
}
@@ -280,8 +289,8 @@ class PointCouldSelector
280289
private:
281290
boost::shared_ptr<interactive_markers::InteractiveMarkerServer> server_;
282291

283-
btVector3 min_sel_, max_sel_;
284-
std::vector<btVector3> points_;
292+
tf::Vector3 min_sel_, max_sel_;
293+
std::vector<tf::Vector3> points_;
285294

286295
vm::InteractiveMarker sel_points_marker_;
287296
vm::InteractiveMarker unsel_points_marker_;
@@ -297,7 +306,7 @@ double rand( double min, double max )
297306
}
298307

299308

300-
void makePoints( std::vector<btVector3>& points_out, int num_points )
309+
void makePoints( std::vector<tf::Vector3>& points_out, int num_points )
301310
{
302311
double radius = 3;
303312
double scale = 0.2;
@@ -319,7 +328,7 @@ int main(int argc, char** argv)
319328
boost::shared_ptr<interactive_markers::InteractiveMarkerServer> server(
320329
new interactive_markers::InteractiveMarkerServer("selection") );
321330

322-
std::vector<btVector3> points;
331+
std::vector<tf::Vector3> points;
323332
makePoints( points, 10000 );
324333

325334
PointCouldSelector selector( server, points );

0 commit comments

Comments
 (0)