void CGeneralizedCylinder::getEnd(CPolyhedronPtr &poly) const { if (!meshUpToDate) updateMesh(); if (axis.size()<2||generatrix.size()<3) throw std::logic_error("Not enough points."); size_t i=(fullyVisible?axis.size():lastSection)-1; generatePolygon(poly,generatrix,axis[i]); poly->setPose(this->m_pose); poly->setColor(getColor()); }
/*--------------------------------------------------------------- BumblebeeCamera ---------------------------------------------------------------*/ CSetOfObjectsPtr stock_objects::BumblebeeCamera() { CSetOfObjectsPtr camera = opengl::CSetOfObjects::Create(); CPolyhedronPtr rect = opengl::CPolyhedron::CreateCubicPrism( -0.02, 0.14, -0.02, 0.02, 0, -0.04 ); rect->setColor( 1, 0.8, 0 ); camera->insert( rect ); CCylinderPtr lCam = opengl::CCylinder::Create( 0.01,0.01, 0.003, 10, 10 ); lCam->setColor( 1,0,0 ); CCylinderPtr rCam = opengl::CCylinder::Create( 0.01,0.01, 0.003, 10, 10 ); rCam->setPose( CPose3D(0.12,0,0) ); rCam->setColor( 0,0,0 ); camera->insert( lCam ); camera->insert( rCam ); return camera; }