Main MRPT website > C++ reference for MRPT 1.9.9
StockObjects.cpp
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 
10 #include "opengl-precomp.h" // Precompiled header
11 
15 #include <mrpt/opengl/CArrow.h>
16 #include <mrpt/opengl/CCylinder.h>
17 #include <mrpt/opengl/CBox.h>
21 
22 using namespace mrpt::opengl;
23 using namespace mrpt::poses;
24 using namespace mrpt::math;
25 using namespace std;
26 
27 /*---------------------------------------------------------------
28  RobotPioneer
29  ---------------------------------------------------------------*/
31 {
32  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
33 
34  ret->setName("theRobot");
35 
36  CSetOfTriangles::Ptr obj = mrpt::make_aligned_shared<CSetOfTriangles>();
37 
38  // Add triangles:
40 
41  trian.r[0] = trian.r[1] = trian.r[2] = 1;
42  trian.g[0] = trian.g[1] = trian.g[2] = 0;
43  trian.b[0] = trian.b[1] = trian.b[2] = 0;
44  trian.a[0] = trian.a[1] = trian.a[2] = 1;
45 
46  trian.x[0] = 0.10f;
47  trian.x[1] = -0.20f;
48  trian.x[2] = -0.20f;
49  trian.y[0] = -0.10f;
50  trian.y[1] = 0.10f;
51  trian.y[2] = -0.10f;
52  trian.z[0] = 0.20f;
53  trian.z[1] = 0.25f;
54  trian.z[2] = 0.25f;
55  obj->insertTriangle(trian); // 0
56  trian.x[0] = 0.10f;
57  trian.x[1] = 0.10f;
58  trian.x[2] = -0.20f;
59  trian.y[0] = -0.10f;
60  trian.y[1] = 0.10f;
61  trian.y[2] = 0.10f;
62  trian.z[0] = 0.20f;
63  trian.z[1] = 0.20f;
64  trian.z[2] = 0.25f;
65  obj->insertTriangle(trian); // 1
66 
67  // trian.r = 0.9f; trian.g = 0; trian.b = 0; trian.a = 1;
68 
69  trian.x[0] = 0.10f;
70  trian.x[1] = 0.10f;
71  trian.x[2] = 0.10f;
72  trian.y[0] = -0.10f;
73  trian.y[1] = -0.10f;
74  trian.y[2] = 0.10f;
75  trian.z[0] = 0.05f;
76  trian.z[1] = 0.20f;
77  trian.z[2] = 0.20f;
78  obj->insertTriangle(trian); // 2
79  trian.x[0] = 0.10f;
80  trian.x[1] = 0.10f;
81  trian.x[2] = 0.10f;
82  trian.y[0] = -0.10f;
83  trian.y[1] = 0.10f;
84  trian.y[2] = 0.10f;
85  trian.z[0] = 0.05f;
86  trian.z[1] = 0.05f;
87  trian.z[2] = 0.20f;
88  obj->insertTriangle(trian); // 3
89 
90  trian.x[0] = -0.20f;
91  trian.x[1] = -0.20f;
92  trian.x[2] = -0.20f;
93  trian.y[0] = -0.10f;
94  trian.y[1] = -0.10f;
95  trian.y[2] = 0.10f;
96  trian.z[0] = 0.05f;
97  trian.z[1] = 0.25f;
98  trian.z[2] = 0.25f;
99  obj->insertTriangle(trian); // 2b
100  trian.x[0] = -0.20f;
101  trian.x[1] = -0.20f;
102  trian.x[2] = -0.20f;
103  trian.y[0] = -0.10f;
104  trian.y[1] = 0.10f;
105  trian.y[2] = 0.10f;
106  trian.z[0] = 0.05f;
107  trian.z[1] = 0.05f;
108  trian.z[2] = 0.25f;
109  obj->insertTriangle(trian); // 3b
110 
111  // trian.r = 0.8f; trian.g = 0; trian.b = 0; trian.a = 1;
112  trian.x[0] = 0.10f;
113  trian.x[1] = -0.20f;
114  trian.x[2] = -0.20f;
115  trian.y[0] = -0.10f;
116  trian.y[1] = -0.10f;
117  trian.y[2] = -0.10f;
118  trian.z[0] = 0.20f;
119  trian.z[1] = 0.25f;
120  trian.z[2] = 0.05f;
121  obj->insertTriangle(trian); // 4
122  trian.x[0] = 0.10f;
123  trian.x[1] = 0.10f;
124  trian.x[2] = -0.20f;
125  trian.y[0] = -0.10f;
126  trian.y[1] = -0.10f;
127  trian.y[2] = -0.10f;
128  trian.z[0] = 0.20f;
129  trian.z[1] = 0.05f;
130  trian.z[2] = 0.05f;
131  obj->insertTriangle(trian); // 5
132 
133  trian.x[0] = 0.10f;
134  trian.x[1] = -0.20f;
135  trian.x[2] = -0.20f;
136  trian.y[0] = 0.10f;
137  trian.y[1] = 0.10f;
138  trian.y[2] = 0.10f;
139  trian.z[0] = 0.20f;
140  trian.z[1] = 0.25f;
141  trian.z[2] = 0.05f;
142  obj->insertTriangle(trian); // 6
143  trian.x[0] = 0.10f;
144  trian.x[1] = 0.10f;
145  trian.x[2] = -0.20f;
146  trian.y[0] = 0.10f;
147  trian.y[1] = 0.10f;
148  trian.y[2] = 0.10f;
149  trian.z[0] = 0.20f;
150  trian.z[1] = 0.05f;
151  trian.z[2] = 0.05f;
152  obj->insertTriangle(trian); // 7
153 
154  trian.r[0] = trian.r[1] = trian.r[2] = 0.05f;
155  trian.g[0] = trian.g[1] = trian.g[2] = 0.05f;
156  trian.b[0] = trian.b[1] = trian.b[2] = 0.05f;
157  trian.a[0] = trian.a[1] = trian.a[2] = 1;
158 
159  trian.x[0] = 0.00f;
160  trian.x[1] = 0.00f;
161  trian.x[2] = 0.05f;
162  trian.y[0] = 0.11f;
163  trian.y[1] = 0.11f;
164  trian.y[2] = 0.11f;
165  trian.z[0] = 0.00f;
166  trian.z[1] = 0.10f;
167  trian.z[2] = 0.05f;
168  obj->insertTriangle(trian); // 8
169  trian.x[0] = 0.00f;
170  trian.x[1] = 0.00f;
171  trian.x[2] = -0.05f;
172  trian.y[0] = 0.11f;
173  trian.y[1] = 0.11f;
174  trian.y[2] = 0.11f;
175  trian.z[0] = 0.00f;
176  trian.z[1] = 0.10f;
177  trian.z[2] = 0.05f;
178  obj->insertTriangle(trian); // 9
179 
180  trian.x[0] = 0.00f;
181  trian.x[1] = 0.00f;
182  trian.x[2] = 0.05f;
183  trian.y[0] = -0.11f;
184  trian.y[1] = -0.11f;
185  trian.y[2] = -0.11f;
186  trian.z[0] = 0.00f;
187  trian.z[1] = 0.10f;
188  trian.z[2] = 0.05f;
189  obj->insertTriangle(trian); // 10
190  trian.x[0] = 0.00f;
191  trian.x[1] = 0.00f;
192  trian.x[2] = -0.05f;
193  trian.y[0] = -0.11f;
194  trian.y[1] = -0.11f;
195  trian.y[2] = -0.11f;
196  trian.z[0] = 0.00f;
197  trian.z[1] = 0.10f;
198  trian.z[2] = 0.05f;
199  obj->insertTriangle(trian); // 11
200 
201  ret->insert(obj);
202 
203  return ret;
204 }
205 
206 /*---------------------------------------------------------------
207  CornerXYZ
208  ---------------------------------------------------------------*/
210 {
211  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
212 
214  0, 0, 0, scale, 0, 0, 0.25f * scale, 0.02f * scale, 0.05f * scale);
215 
216  obj->setColor(1, 0, 0);
217 
218  ret->insert(obj);
219 
221  0, 0, 0, 0, scale, 0, 0.25f * scale, 0.02f * scale, 0.05f * scale);
222  obj->setColor(0, 1, 0);
223 
224  ret->insert(obj);
225 
227  0, 0, 0, 0, 0, scale, 0.25f * scale, 0.02f * scale, 0.05f * scale);
228  obj->setColor(0, 0, 1);
229 
230  ret->insert(obj);
231 
232  return ret;
233 }
234 
235 /*---------------------------------------------------------------
236  RobotRhodon
237  ---------------------------------------------------------------*/
239 {
240  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
241  float height = 0;
242 
243  vector<TPoint2D> level1;
244  level1.push_back(TPoint2D(0.31, 0));
245  level1.push_back(TPoint2D(0.22, 0.24));
246  level1.push_back(TPoint2D(-0.22, 0.24));
247  level1.push_back(TPoint2D(-0.31, 0));
248  level1.push_back(TPoint2D(-0.22, -0.24));
249  level1.push_back(TPoint2D(0.22, -0.24));
250 
251  CPolyhedron::Ptr obj1 =
253  obj1->setLocation(0, 0, height);
254  height += 0.38f;
255  obj1->setColor(0.6, 0.6, 0.6);
256  ret->insert(obj1);
257 
258  vector<TPoint2D> level2;
259  level2.push_back(TPoint2D(0.16, 0.21));
260  level2.push_back(TPoint2D(-0.16, 0.21));
261  level2.push_back(TPoint2D(-0.16, -0.21));
262  level2.push_back(TPoint2D(0.16, -0.21));
263 
264  CPolyhedron::Ptr obj2 =
266  obj2->setLocation(0, 0, height);
267  height += 0.35f;
268  obj2->setColor(0.2, 0.2, 0.2);
269  ret->insert(obj2);
270 
271  vector<TPoint2D> level3;
272  level3.push_back(TPoint2D(-0.12, 0.12));
273  level3.push_back(TPoint2D(-0.16, 0.12));
274  level3.push_back(TPoint2D(-0.16, -0.12));
275  level3.push_back(TPoint2D(-0.12, -0.12));
276 
278  obj3->setLocation(0, 0, height);
279  // height+=1;
280  obj3->setColor(0.6, 0.6, 0.6);
281  ret->insert(obj3);
282 
283  opengl::CCylinder::Ptr obj4 = mrpt::make_aligned_shared<opengl::CCylinder>(
284  0.05f, 0.05f, 0.4f, 20, 20);
285  obj4->setLocation(0, 0, 0.73);
286  obj4->setColor(0, 0, 0.9);
287  ret->insert(obj4);
288 
289  opengl::CCylinder::Ptr obj5 = mrpt::make_aligned_shared<opengl::CCylinder>(
290  0.05f, 0.05f, 0.4f, 20, 20);
291  obj5->setPose(CPose3D(0.32, 0, 0.89, 0, -1, 0));
292  obj5->setColor(0, 0, 0.9);
293  ret->insert(obj5);
294 
295  return ret;
296 }
297 
298 /*---------------------------------------------------------------
299  RobotGiraff
300  ---------------------------------------------------------------*/
302 {
303  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
304  float height = 0;
305 
306  // Base
307  vector<TPoint2D> level1;
308  level1.push_back(TPoint2D(0.31, 0));
309  level1.push_back(TPoint2D(0.22, 0.24));
310  level1.push_back(TPoint2D(-0.22, 0.24));
311  level1.push_back(TPoint2D(-0.31, 0));
312  level1.push_back(TPoint2D(-0.22, -0.24));
313  level1.push_back(TPoint2D(0.22, -0.24));
314 
315  CPolyhedron::Ptr obj1 =
317  obj1->setLocation(0, 0, height);
318  height += 0.23f;
319  obj1->setColor(1.0, 0.6, 0.0);
320  ret->insert(obj1);
321 
322  // Electronic's cage
323  vector<TPoint2D> level2;
324  level2.push_back(TPoint2D(0.13, 0.1));
325  level2.push_back(TPoint2D(-0.13, 0.1));
326  level2.push_back(TPoint2D(-0.13, -0.1));
327  level2.push_back(TPoint2D(0.13, -0.1));
328 
329  CPolyhedron::Ptr obj2 =
331  obj2->setLocation(0, 0, height);
332  height += 0.45f;
333  obj2->setColor(1.0, 0.6, 0.2);
334  ret->insert(obj2);
335 
336  // Neck
337  vector<TPoint2D> level3;
338  level3.push_back(TPoint2D(0.03, 0.03));
339  level3.push_back(TPoint2D(-0.03, 0.03));
340  level3.push_back(TPoint2D(-0.03, -0.03));
341  level3.push_back(TPoint2D(0.03, -0.03));
342 
343  CPolyhedron::Ptr obj3 =
345  obj3->setLocation(0, 0, height);
346  height += 0.55f;
347  obj3->setColor(0.6, 0.6, 0.6);
348  ret->insert(obj3);
349 
350  // Screen
351  vector<TPoint2D> level4;
352  level4.push_back(TPoint2D(0.03, 0.11));
353  level4.push_back(TPoint2D(-0.03, 0.11));
354  level4.push_back(TPoint2D(-0.03, -0.11));
355  level4.push_back(TPoint2D(0.03, -0.11));
356 
358  obj4->setLocation(0, 0, height);
359  height += 0.4f;
360  obj4->setColor(1.0, 0.6, 0.0);
361  ret->insert(obj4);
362 
363  return ret;
364 }
365 
367 {
368  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
369  CPose3D rotation;
370 
371  CArrow::Ptr obj = CArrow::Create(0, 0, 0, 1.0, 0, 0, 0.25f, 0.02f, 0.05f);
372 
373  obj->setColor(1, 0, 0);
374 
375  ret->insert(obj);
376 
377  obj = CArrow::Create(0, 0, 0, 0, 1.0, 0, 0.25f, 0.02f, 0.05f);
378  obj->setColor(0, 1, 0);
379 
380  ret->insert(obj);
381 
382  obj = CArrow::Create(0, 0, -1.0, 0, 0, 0, 0.25f, 0.02f, 0.05f);
383  obj->setColor(0, 0, 1);
384 
385  ret->insert(obj);
386 
387  return ret;
388 }
389 
390 /*---------------------------------------------------------------
391  BumblebeeCamera
392  ---------------------------------------------------------------*/
394 {
395  CSetOfObjects::Ptr camera =
396  mrpt::make_aligned_shared<opengl::CSetOfObjects>();
397 
399  -0.02, 0.14, -0.02, 0.02, 0, -0.04);
400  rect->setColor(1, 0.8, 0);
401 
402  camera->insert(rect);
403 
404  CCylinder::Ptr lCam = mrpt::make_aligned_shared<opengl::CCylinder>(
405  0.01f, 0.01f, 0.003f, 10, 10);
406  lCam->setColor(1, 0, 0);
407 
408  CCylinder::Ptr rCam = mrpt::make_aligned_shared<opengl::CCylinder>(
409  0.01f, 0.01f, 0.003f, 10, 10);
410  rCam->setPose(CPose3D(0.12, 0, 0));
411  rCam->setColor(0, 0, 0);
412 
413  camera->insert(lCam);
414  camera->insert(rCam);
415 
416  return camera;
417 }
418 
420 {
421  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
422 
423  {
424  CSimpleLine::Ptr lin = mrpt::make_aligned_shared<CSimpleLine>();
425  lin->setLineWidth(lineWidth);
426  lin->setColor(1, 0, 0);
427  lin->setLineCoords(0, 0, 0, scale, 0, 0);
428  ret->insert(lin);
429  }
430  {
431  CSimpleLine::Ptr lin = mrpt::make_aligned_shared<CSimpleLine>();
432  lin->setLineWidth(lineWidth);
433  lin->setColor(0, 1, 0);
434  lin->setLineCoords(0, 0, 0, 0, scale, 0);
435  ret->insert(lin);
436  }
437  {
438  CSimpleLine::Ptr lin = mrpt::make_aligned_shared<CSimpleLine>();
439  lin->setLineWidth(lineWidth);
440  lin->setColor(0, 0, 1);
441  lin->setLineCoords(0, 0, 0, 0, 0, scale);
442  ret->insert(lin);
443  }
444  return ret;
445 }
446 
448 {
449  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
450 
451  {
452  CSimpleLine::Ptr lin = mrpt::make_aligned_shared<CSimpleLine>();
453  lin->setLineWidth(lineWidth);
454  lin->setColor(1, 0, 0);
455  lin->setLineCoords(0, 0, 0, scale, 0, 0);
456  ret->insert(lin);
457  }
458  {
459  CSimpleLine::Ptr lin = mrpt::make_aligned_shared<CSimpleLine>();
460  lin->setLineWidth(lineWidth);
461  lin->setColor(0, 1, 0);
462  lin->setLineCoords(0, 0, 0, 0, scale, 0);
463  ret->insert(lin);
464  }
465  return ret;
466 }
467 
469 {
470  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
471 
472  {
473  CBox::Ptr base = mrpt::make_aligned_shared<CBox>(
474  TPoint3D(-0.025, -0.025, -0.0575), TPoint3D(0.025, 0.025, -0.0185));
475  base->setColor(0.7, 0.7, 0.7);
476  ret->insert(base);
477  }
478  {
479  CCylinder::Ptr cyl1 =
480  mrpt::make_aligned_shared<CCylinder>(0.02f, 0.02f, 0.01f);
481  cyl1->setColor(0, 0, 0);
482  cyl1->setLocation(0, 0, -0.014);
483  ret->insert(cyl1);
484  }
485  {
486  CCylinder::Ptr cyl2 =
487  mrpt::make_aligned_shared<CCylinder>(0.02f, 0.0175f, 0.01f);
488  cyl2->setColor(0, 0, 0);
489  cyl2->setLocation(0, 0, -0.004);
490  ret->insert(cyl2);
491  }
492  {
493  CCylinder::Ptr cyl3 =
494  mrpt::make_aligned_shared<CCylinder>(0.0175f, 0.0175f, 0.01f);
495  cyl3->setColor(0, 0, 0);
496  cyl3->setLocation(0, 0, 0.004);
497  ret->insert(cyl3);
498  }
499 
500  return ret;
501 }
502 
504 {
505  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
506 
507  {
508  CBox::Ptr base = mrpt::make_aligned_shared<CBox>(
509  TPoint3D(-0.03, -0.03, -0.055), TPoint3D(0.03, 0.03, -0.014));
510  base->setColor(0, 0, 0);
511  ret->insert(base);
512  }
513  {
514  CCylinder::Ptr cyl1 =
515  mrpt::make_aligned_shared<CCylinder>(0.028f, 0.024f, 0.028f);
516  cyl1->setColor(0, 0, 0);
517  cyl1->setPose(CPose3D(0, 0, -0.014));
518  ret->insert(cyl1);
519  }
520  {
521  CCylinder::Ptr cyl2 =
522  mrpt::make_aligned_shared<CCylinder>(0.028f, 0.028f, 0.01f);
523  cyl2->setColor(1, 69 / 255.0, 0);
524  cyl2->setLocation(0, 0, 0.014);
525  ret->insert(cyl2);
526  }
527  {
528  CCylinder::Ptr cyl3 =
529  mrpt::make_aligned_shared<CCylinder>(0.028f, 0.028f, 0.01f);
530  cyl3->setColor(0, 0, 0);
531  cyl3->setLocation(0, 0, 0.024);
532  ret->insert(cyl3);
533  }
534 
535  return ret;
536 }
537 
539 {
540  CSetOfObjects::Ptr ret = mrpt::make_aligned_shared<CSetOfObjects>();
541 
542  {
543  CBox::Ptr cabin = mrpt::make_aligned_shared<CBox>(
544  TPoint3D(0.878, 0.723, -0.12), TPoint3D(-0.258, -0.723, -1.690));
545  cabin->setColor(0.7, 0.7, 0.7);
546  ret->insert(cabin);
547  }
548  {
549  CBox::Ptr back = mrpt::make_aligned_shared<CBox>(
550  TPoint3D(-0.258, 0.723, -0.72), TPoint3D(-5.938, -0.723, -1.690));
551  back->setColor(1, 1, 1);
552  ret->insert(back);
553  }
554  {
555  CBox::Ptr boomAxis = mrpt::make_aligned_shared<CBox>(
556  TPoint3D(-5.938, 0.723, -1.0), TPoint3D(-6.189, -0.723, -1.690));
557  boomAxis->setColor(0, 0, 0);
558  ret->insert(boomAxis);
559  }
560  {
561  CBox::Ptr boom1 = mrpt::make_aligned_shared<CBox>(
562  TPoint3D(-5.938, 0.723, -1.0), TPoint3D(-6.189, 11.277, -1.620));
563  boom1->setColor(0, 1, 0);
564  ret->insert(boom1);
565  }
566  {
567  CBox::Ptr boom2 = mrpt::make_aligned_shared<CBox>(
568  TPoint3D(-5.938, -0.723, -1.0), TPoint3D(-6.189, -11.277, -1.620));
569  boom2->setColor(0, 1, 0);
570  ret->insert(boom2);
571  }
572  {
573  CCylinder::Ptr cyl1 =
574  mrpt::make_aligned_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
575  cyl1->setColor(0, 0, 0);
576  cyl1->setPose(CPose3D(-0.710, 0.923, -2.480, 0, 0, DEG2RAD(90)));
577  ret->insert(cyl1);
578  }
579  {
580  CCylinder::Ptr cyl2 =
581  mrpt::make_aligned_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
582  cyl2->setColor(0, 0, 0);
583  cyl2->setPose(CPose3D(-3.937, 0.923, -2.480, 0, 0, DEG2RAD(90)));
584  ret->insert(cyl2);
585  }
586  {
587  CCylinder::Ptr cyl1 =
588  mrpt::make_aligned_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
589  cyl1->setColor(0, 0, 0);
590  cyl1->setPose(CPose3D(-0.710, -0.423, -2.480, 0, 0, DEG2RAD(90)));
591  ret->insert(cyl1);
592  }
593  {
594  CCylinder::Ptr cyl2 =
595  mrpt::make_aligned_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
596  cyl2->setColor(0, 0, 0);
597  cyl2->setPose(CPose3D(-3.937, -0.423, -2.480, 0, 0, DEG2RAD(90)));
598  ret->insert(cyl2);
599  }
600  return ret;
601 }
CSetOfObjects::Ptr Hokuyo_UTM()
Returns a simple 3D model of a Hokuyo UTM scanner.
CSetOfObjects::Ptr CornerXYSimple(float scale=1.0, float lineWidth=1.0)
Returns two arrows representing a X,Y 2D corner (just thick lines, fast to render).
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:6502
double DEG2RAD(const double x)
Degrees to radians.
CSetOfObjects::Ptr RobotGiraff()
Returns a representation of RobotGiraff.
CSetOfObjects::Ptr RobotRhodon()
Returns a representation of Rhodon.
CSetOfObjects::Ptr Househam_Sprayer()
Returns a simple 3D model of a househam sprayer.
STL namespace.
static CPolyhedron::Ptr CreateCubicPrism(double x1, double x2, double y1, double y2, double z1, double z2)
Creates a cubic prism, given the coordinates of two opposite vertices.
GLsizei GLsizei GLuint * obj
Definition: glext.h:4070
This base provides a set of functions for maths stuff.
static Ptr Create(Args &&... args)
Definition: CArrow.h:33
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
CSetOfObjects::Ptr RobotPioneer()
Returns a representation of a Pioneer II mobile base.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:88
CSetOfObjects::Ptr CornerXYZ(float scale=1.0)
Returns three arrows representing a X,Y,Z 3D corner.
CSetOfObjects::Ptr CornerXYZSimple(float scale=1.0, float lineWidth=1.0)
Returns three arrows representing a X,Y,Z 3D corner (just thick lines instead of complex arrows for f...
The namespace for 3D scene representation and rendering.
Definition: CGlCanvasBase.h:15
CSetOfObjects::Ptr CornerXYZEye()
Returns three arrows representing a X,Y,Z 3D corner.
Lightweight 3D point.
GLenum GLsizei GLsizei height
Definition: glext.h:3554
Lightweight 2D point.
CSetOfObjects::Ptr BumblebeeCamera()
Returns a simple 3D model of a PointGrey Bumblebee stereo camera.
static CPolyhedron::Ptr CreateCustomPrism(const std::vector< mrpt::math::TPoint2D > &baseVertices, double height)
Creates a custom prism with vertical edges, given any base which will lie on the XY plane...
CSetOfObjects::Ptr Hokuyo_URG()
Returns a simple 3D model of a Hokuyo URG scanner.



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at lun oct 28 00:14:14 CET 2019