34 ret->setName(
"theRobot");
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;
55 obj->insertTriangle(trian);
65 obj->insertTriangle(trian);
78 obj->insertTriangle(trian);
88 obj->insertTriangle(trian);
99 obj->insertTriangle(trian);
109 obj->insertTriangle(trian);
121 obj->insertTriangle(trian);
131 obj->insertTriangle(trian);
142 obj->insertTriangle(trian);
152 obj->insertTriangle(trian);
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;
168 obj->insertTriangle(trian);
178 obj->insertTriangle(trian);
189 obj->insertTriangle(trian);
199 obj->insertTriangle(trian);
216 obj->setColor(1, 0, 0);
222 obj->setColor(0, 1, 0);
228 obj->setColor(0, 0, 1);
243 vector<TPoint2D> level1;
244 level1.emplace_back(0.31, 0);
245 level1.emplace_back(0.22, 0.24);
246 level1.emplace_back(-0.22, 0.24);
247 level1.emplace_back(-0.31, 0);
248 level1.emplace_back(-0.22, -0.24);
249 level1.emplace_back(0.22, -0.24);
253 obj1->setLocation(0, 0,
height);
255 obj1->setColor(0.6, 0.6, 0.6);
258 vector<TPoint2D> level2;
259 level2.emplace_back(0.16, 0.21);
260 level2.emplace_back(-0.16, 0.21);
261 level2.emplace_back(-0.16, -0.21);
262 level2.emplace_back(0.16, -0.21);
266 obj2->setLocation(0, 0,
height);
268 obj2->setColor(0.2, 0.2, 0.2);
271 vector<TPoint2D> level3;
272 level3.emplace_back(-0.12, 0.12);
273 level3.emplace_back(-0.16, 0.12);
274 level3.emplace_back(-0.16, -0.12);
275 level3.emplace_back(-0.12, -0.12);
278 obj3->setLocation(0, 0,
height);
280 obj3->setColor(0.6, 0.6, 0.6);
284 std::make_shared<opengl::CCylinder>(0.05f, 0.05f, 0.4f, 20, 20);
285 obj4->setLocation(0, 0, 0.73);
286 obj4->setColor(0, 0, 0.9);
290 std::make_shared<opengl::CCylinder>(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);
307 vector<TPoint2D> level1;
308 level1.emplace_back(0.31, 0);
309 level1.emplace_back(0.22, 0.24);
310 level1.emplace_back(-0.22, 0.24);
311 level1.emplace_back(-0.31, 0);
312 level1.emplace_back(-0.22, -0.24);
313 level1.emplace_back(0.22, -0.24);
317 obj1->setLocation(0, 0,
height);
319 obj1->setColor(1.0, 0.6, 0.0);
323 vector<TPoint2D> level2;
324 level2.emplace_back(0.13, 0.1);
325 level2.emplace_back(-0.13, 0.1);
326 level2.emplace_back(-0.13, -0.1);
327 level2.emplace_back(0.13, -0.1);
331 obj2->setLocation(0, 0,
height);
333 obj2->setColor(1.0, 0.6, 0.2);
337 vector<TPoint2D> level3;
338 level3.emplace_back(0.03, 0.03);
339 level3.emplace_back(-0.03, 0.03);
340 level3.emplace_back(-0.03, -0.03);
341 level3.emplace_back(0.03, -0.03);
345 obj3->setLocation(0, 0,
height);
347 obj3->setColor(0.6, 0.6, 0.6);
351 vector<TPoint2D> level4;
352 level4.emplace_back(0.03, 0.11);
353 level4.emplace_back(-0.03, 0.11);
354 level4.emplace_back(-0.03, -0.11);
355 level4.emplace_back(0.03, -0.11);
358 obj4->setLocation(0, 0,
height);
359 obj4->setColor(1.0, 0.6, 0.0);
372 obj->setColor(1, 0, 0);
377 obj->setColor(0, 1, 0);
382 obj->setColor(0, 0, 1);
397 -0.02, 0.14, -0.02, 0.02, 0, -0.04);
398 rect->setColor(1, 0.8, 0);
400 camera->insert(rect);
403 std::make_shared<opengl::CCylinder>(0.01f, 0.01f, 0.003f, 10, 10);
404 lCam->setColor(1, 0, 0);
407 std::make_shared<opengl::CCylinder>(0.01f, 0.01f, 0.003f, 10, 10);
408 rCam->setPose(
CPose3D(0.12, 0, 0));
409 rCam->setColor(0, 0, 0);
411 camera->insert(lCam);
412 camera->insert(rCam);
423 lin->setLineWidth(lineWidth);
424 lin->setColor(1, 0, 0);
425 lin->setLineCoords(0, 0, 0,
scale, 0, 0);
430 lin->setLineWidth(lineWidth);
431 lin->setColor(0, 1, 0);
432 lin->setLineCoords(0, 0, 0, 0,
scale, 0);
437 lin->setLineWidth(lineWidth);
438 lin->setColor(0, 0, 1);
439 lin->setLineCoords(0, 0, 0, 0, 0,
scale);
451 lin->setLineWidth(lineWidth);
452 lin->setColor(1, 0, 0);
453 lin->setLineCoords(0, 0, 0,
scale, 0, 0);
458 lin->setLineWidth(lineWidth);
459 lin->setColor(0, 1, 0);
460 lin->setLineCoords(0, 0, 0, 0,
scale, 0);
473 base->setColor(0.7, 0.7, 0.7);
477 CCylinder::Ptr cyl1 = std::make_shared<CCylinder>(0.02f, 0.02f, 0.01f);
478 cyl1->setColor(0, 0, 0);
479 cyl1->setLocation(0, 0, -0.014);
484 std::make_shared<CCylinder>(0.02f, 0.0175f, 0.01f);
485 cyl2->setColor(0, 0, 0);
486 cyl2->setLocation(0, 0, -0.004);
491 std::make_shared<CCylinder>(0.0175f, 0.0175f, 0.01f);
492 cyl3->setColor(0, 0, 0);
493 cyl3->setLocation(0, 0, 0.004);
507 base->setColor(0, 0, 0);
512 std::make_shared<CCylinder>(0.028f, 0.024f, 0.028f);
513 cyl1->setColor(0, 0, 0);
514 cyl1->setPose(
CPose3D(0, 0, -0.014));
519 std::make_shared<CCylinder>(0.028f, 0.028f, 0.01f);
520 cyl2->setColor(1, 69 / 255.0, 0);
521 cyl2->setLocation(0, 0, 0.014);
526 std::make_shared<CCylinder>(0.028f, 0.028f, 0.01f);
527 cyl3->setColor(0, 0, 0);
528 cyl3->setLocation(0, 0, 0.024);
540 CBox::Ptr cabin = std::make_shared<CBox>(
542 cabin->setColor(0.7, 0.7, 0.7);
548 back->setColor(1, 1, 1);
552 CBox::Ptr boomAxis = std::make_shared<CBox>(
554 boomAxis->setColor(0, 0, 0);
555 ret->insert(boomAxis);
558 CBox::Ptr boom1 = std::make_shared<CBox>(
560 boom1->setColor(0, 1, 0);
564 CBox::Ptr boom2 = std::make_shared<CBox>(
566 boom2->setColor(0, 1, 0);
571 std::make_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
572 cyl1->setColor(0, 0, 0);
578 std::make_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
579 cyl2->setColor(0, 0, 0);
585 std::make_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
586 cyl1->setColor(0, 0, 0);
587 cyl1->setPose(
CPose3D(-0.710, -0.423, -2.480, 0, 0,
DEG2RAD(90)));
592 std::make_shared<CCylinder>(0.716f, 0.716f, 0.387f, 30);
593 cyl2->setColor(0, 0, 0);
594 cyl2->setPose(
CPose3D(-3.937, -0.423, -2.480, 0, 0,
DEG2RAD(90)));
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
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.
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
This base provides a set of functions for maths stuff.
static Ptr Create(Args &&... args)
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).
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.
CSetOfObjects::Ptr CornerXYZEye()
Returns three arrows representing a X,Y,Z 3D corner.
GLenum GLsizei GLsizei height
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.