Pangolin 6: Simple Scene

Share:
# Prepare https://github.com/uoip/pangolin/blob/master/include/pangolin/scene/renderable.h: ```cpp Renderable& Add(const std::shared_ptr& child) { if(child) { children[child->guid] = child; }; return *this; } ``` # Source code ```cpp #include <pangolin/pangolin.h> #include <pangolin/scene/axis.h> #include <pangolin/scene/scenehandler.h> int main( int /*argc*/, char** /*argv*/ ) { pangolin::CreateWindowAndBind("Main",640,480); glEnable(GL_DEPTH_TEST); // Define Projection and initial ModelView matrix pangolin::OpenGlRenderState s_cam( pangolin::ProjectionMatrix(640,480,420,420,320,240,0.2,100), pangolin::ModelViewLookAt(-2,2,-2, 0,0,0, pangolin::AxisY) ); pangolin::Renderable tree; tree.Add( std::make_shared() ); // Create Interactive View in window pangolin::SceneHandler handler(tree, s_cam); pangolin::View& d_cam = pangolin::CreateDisplay() .SetBounds(0.0, 1.0, 0.0, 1.0, -640.0f/480.0f) .SetHandler(&handler); d_cam.SetDrawFunction([&](pangolin::View& view){ view.Activate(s_cam); tree.Render(); }); while( !pangolin::ShouldQuit() ) { // Clear screen and activate view to render into glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Swap frames and Process Events pangolin::FinishFrame(); } return 0; } ``` # Result ![image-20200607203644188](https://raw.githubusercontent.com/yubaoliu/assets/image/image-20200607203644188.png)

No comments