// Add objects at your will to check results void generateObjects(CSetOfObjects::Ptr& world) { // create object, give it a random pose/color, insert it in the world CDisk::Ptr dsk = mrpt::make_aligned_shared<CDisk>(); dsk->setDiskRadius(MYRANDG(5, 5), MYRANDG(5)); configRandom(dsk); world->insert(dsk); CSphere::Ptr sph = mrpt::make_aligned_shared<CSphere>(MYRANDG(5, 1)); configRandom(sph); world->insert(sph); CTexturedPlane::Ptr pln = mrpt::make_aligned_shared<CTexturedPlane>( MYRANDG(10, -10), MYRANDG(10), MYRANDG(10, -10), MYRANDG(10)); configRandom(pln); world->insert(pln); for (size_t i = 0; i < 5; i++) { CPolyhedron::Ptr poly = CPolyhedron::CreateRandomPolyhedron(MYRANDG(2, 2)); configRandom(poly); world->insert(poly); } CCylinder::Ptr cil = mrpt::make_aligned_shared<CCylinder>( MYRANDG(3.0, 3.0), MYRANDG(3.0, 1.0), MYRANDG(2.0f, 3.0f), 50, 1); configRandom(cil); world->insert(cil); CEllipsoid::Ptr ell = mrpt::make_aligned_shared<CEllipsoid>(); CMatrixDouble md = CMatrixDouble(3, 3); for (size_t i = 0; i < 3; i++) md(i, i) = MYRANDG(8.0, 1.0); for (size_t i = 0; i < 3; i++) { size_t ii = (i + 1) % 3; md(i, ii) = md(ii, i) = MYRANDG(sqrt(md(i, i) * md(ii, ii))); } ell->setCovMatrix(md); configRandom(std::dynamic_pointer_cast<CRenderizable>(ell)); world->insert(ell); }
/** * Generate 3 objects to work with - 1 sphere, 2 disks */ void generateObjects(CSetOfObjects::Ptr& world) { CSphere::Ptr sph = mrpt::make_aligned_shared<CSphere>(0.5); sph->setLocation(0, 0, 0); sph->setColor(1, 0, 0); world->insert(sph); CDisk::Ptr pln = mrpt::make_aligned_shared<opengl::CDisk>(); pln->setDiskRadius(2); pln->setPose(CPose3D(0, 0, 0, 0, DEG2RAD(5), DEG2RAD(5))); pln->setColor(0.8, 0, 0); world->insert(pln); { CDisk::Ptr pln = mrpt::make_aligned_shared<opengl::CDisk>(); pln->setDiskRadius(2); pln->setPose(CPose3D(0, 0, 0, DEG2RAD(30), DEG2RAD(-20), DEG2RAD(-2))); pln->setColor(0.9, 0, 0); world->insert(pln); } }