当前位置: 首页>>代码示例>>C++>>正文


C++ Viewer::Show方法代码示例

本文整理汇总了C++中Viewer::Show方法的典型用法代码示例。如果您正苦于以下问题:C++ Viewer::Show方法的具体用法?C++ Viewer::Show怎么用?C++ Viewer::Show使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Viewer的用法示例。


在下文中一共展示了Viewer::Show方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: main

int main(int argc, char **argv)
{
	Viewer *myViewer = new Viewer();
	myViewer->Init(argc, argv);
	myViewer->InitWorld();
	myViewer->SetValue(BUFFER, MDOUBLE);
	myViewer->CreateWin("AIEFG Assignment", 1000, 700);
	myViewer->InitCamera();
	myViewer->Show();

	return 0;
}
开发者ID:Emorgas,项目名称:AI-Pathfinding,代码行数:12,代码来源:Program.cpp

示例2: OnToolMovie

/**
 * @function OnToolMovie
 * @brief
 * @date 2011-10-13
 */
void GRIPFrame::OnToolMovie(wxCommandEvent& event){
    wxString dirname = wxDirSelector(wxT("Choose output directory for movie pictures:")); // , "", wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST

    if ( dirname.empty() ){ // filename
        std::cout << "No Directory Selected" << std::endl;
	return;
    }

    string path = string(dirname.mb_str());

    char *buf = new char[1000];

	//Create a new Viewer Window
	wxFrame *movieFrame = new wxFrame(NULL,wxID_ANY, wxT("MovieWindow"),wxPoint(0, 0), wxSize(renderW,renderH),wxDEFAULT_FRAME_STYLE & ~ (wxRESIZE_BORDER | wxMAXIMIZE_BOX));
	//#ifndef WIN32 // Weird hack to make wxWidgets work in Linux
	movieFrame->Show();
	//#endif

	int attrib[] = {WX_GL_DOUBLEBUFFER,WX_GL_RGBA,	WX_GL_DEPTH_SIZE, 16,0};
	Viewer *movieViewer = new Viewer(movieFrame, viewer, wxID_ANY, wxPoint(0, 0), wxSize(renderW, renderH), 0, _T("MovieWindow"), attrib);
	movieViewer->backColor = viewer->backColor;
	movieViewer->gridColor = viewer->gridColor;	

	//movieFrame.AddChild(
	#ifdef WIN32  // Weird hack to make wxWidgets work with VC++ debug
	movieViewer->MSWSetOldWndProc((WXFARPROC)DefWindowProc);
	#endif

	int w,h;

	movieViewer->Show(true);
    movieViewer->Freeze();
    wxClientDC dc2(movieViewer);
    dc2.GetSize(&w, &h);
    movieViewer->InitGL();
    movieViewer->Thaw();
	movieViewer->handleEvents = false;
	movieViewer->Show(true);

	movieViewer->camT = viewer->camT;
	movieViewer->camRotT = viewer->camRotT;
	movieViewer->camRadius = viewer->camRadius;
	movieViewer->worldV = viewer->worldV;

    double curTargetTime = 0.0;
    std::vector<GRIPTimeSlice>::iterator it = timeVector.begin();
    int framesWritten = 0;

    double framerate = 30.0;

    do {
        if (it == timeVector.end()) break; // call it done
        while((*it).time < curTargetTime) it++;

		// Issue 122 from DART
        //mWorld->setState((*it).state);
		Eigen::VectorXd newState = (*it).state;   
    	setState_Issue122( newState );

        movieViewer->DrawGLScene();
        wxYield();

        unsigned char* imageData = (unsigned char*) malloc(w * h * 3);
        glReadPixels(0, 0, w, h, GL_RGB, GL_UNSIGNED_BYTE, imageData);
        wxImage img_ud(w,h,imageData);
        wxImage img = img_ud.Mirror(false);

        sprintf(buf, "%s/%06d.png",path.c_str(), framesWritten);

        wxString fname = wxString(buf,wxConvUTF8);
        cout << "Saving frame at t = " << (*it).time << " (targeting " << curTargetTime << ") into " << buf << "" << endl;
        img.SaveFile(fname, wxBITMAP_TYPE_PNG);

        framesWritten++;

        curTargetTime += 1.0 / framerate;
    } while (curTargetTime < timeVector.back().time);


	delete movieViewer;
	delete movieFrame;
	viewer->InitGL();

    delete buf;
    event.Skip();
}
开发者ID:Sosi,项目名称:grip,代码行数:91,代码来源:GRIPFrame.cpp


注:本文中的Viewer::Show方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。