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 }
static Ptr Create(Args &&... args)
Definition: CArrow.h:31
std::shared_ptr< CArrow > Ptr
Definition: CArrow.h:31
std::shared_ptr< CBox > Ptr
Definition: CBox.h:42
std::shared_ptr< CCylinder > Ptr
Definition: CCylinder.h:32
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.
std::shared_ptr< CPolyhedron > Ptr
Definition: CPolyhedron.h:46
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.
std::shared_ptr< CSetOfObjects > Ptr
Definition: CSetOfObjects.h:28
std::shared_ptr< CSetOfTriangles > Ptr
std::shared_ptr< CSimpleLine > Ptr
Definition: CSimpleLine.h:22
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:87
GLsizei GLsizei GLuint * obj
Definition: glext.h:4070
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:6503
GLenum GLsizei GLsizei height
Definition: glext.h:3554
This base provides a set of functions for maths stuff.
CSetOfObjects::Ptr RobotRhodon()
Returns a representation of Rhodon.
CSetOfObjects::Ptr CornerXYZEye()
Returns three arrows representing a X,Y,Z 3D corner.
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).
CSetOfObjects::Ptr Househam_Sprayer()
Returns a simple 3D model of a househam sprayer.
CSetOfObjects::Ptr RobotPioneer()
Returns a representation of a Pioneer II mobile base.
CSetOfObjects::Ptr RobotGiraff()
Returns a representation of RobotGiraff.
CSetOfObjects::Ptr CornerXYZ(float scale=1.0)
Returns three arrows representing a X,Y,Z 3D corner.
CSetOfObjects::Ptr Hokuyo_URG()
Returns a simple 3D model of a Hokuyo URG scanner.
CSetOfObjects::Ptr Hokuyo_UTM()
Returns a simple 3D model of a Hokuyo UTM scanner.
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...
CSetOfObjects::Ptr BumblebeeCamera()
Returns a simple 3D model of a PointGrey Bumblebee stereo camera.
The namespace for 3D scene representation and rendering.
Definition: CGlCanvasBase.h:16
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
double DEG2RAD(const double x)
Degrees to radians.
Lightweight 2D point.
Lightweight 3D point.



Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 814d80880 Fri Aug 24 01:51:28 2018 +0200 at mar 26 may 2026 12:30:59 CEST