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


C++ XMLParser::writeToXML方法代码示例

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


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

示例1: main

int main(int argc, char* argv[]){

	XMLParser* xml = new XMLParser();

	try{
		xml->loadXML(".\\settings.xml");
	} catch(std::exception& e){
		std::cout << e.what() <<std::endl;
		std::cout << "Default values will be applied" <<std::endl;
		loadDefaultValues(xml);

		xml->writeToXML(".\\settings.xml");
	}

	GLFWWindow* wnd;

	try{
		wnd = new GLFWWindow(xml->get<int>("Window", "width"),
							 xml->get<int>("Window", "height"),
							 "RayTracer",
							 xml->get<bool>("Window", "windowed"));
	} catch(std::exception& e){
		std::cout << e.what() << std::endl;
		std::cin.get();
		delete xml;
		
		return -1;
	}

	std::cout << "OpenGL Version: " << glGetString(GL_VERSION) <<std::endl;

	if(glewInit() != GLEW_OK){
		std::cout << "Could not initialize GLEW!" <<std::endl;
		std::cin.get();

		delete wnd;
		delete xml;

		return -1;
	} else {
		std::cout << "GLEW Version: " << glewGetString(GLEW_VERSION) <<std::endl;
	}


	GLFWInput* input = new GLFWInput();
	GLFWTimer* timer = new GLFWTimer();
	int maxFPS = xml->get<int>("Window", "maxFPS");
	int width = xml->get<int>("Window", "width");
	int height = xml->get<int>("Window", "height");
	boost::shared_ptr<TextureRenderer>	texRenderer;
	boost::shared_ptr<OpenGLRaytracer>	ort;
	boost::shared_ptr<Texture>			tex;
	boost::shared_ptr<Scene>			scene;
	boost::shared_ptr<SceneReader>		sceneReader;
	boost::shared_ptr<SceneLoader>		sceneLoader;
	boost::shared_ptr<InputControl>		inputControl;
	boost::shared_ptr<Camera>			camera;

	int frameCounter = 0, fps = 0;
	int reflectionDepth = xml->get<int>("Raytracing", "reflectionDepth"); 
	bool running = true;
	char i = 0;
	
	try{
		camera = boost::shared_ptr<Camera>(new Camera(xml->get<int>("Window", "width"), xml->get<int>("Window", "height"), xml->get<float>("Camera", "fovY"), 
													  glm::vec3(xml->get<float>("Camera", "posX"), xml->get<float>("Camera", "posY"),xml->get<float>("Camera", "posZ")), 
													  glm::vec3(xml->get<float>("Camera", "dirX"), xml->get<float>("Camera", "dirY"), xml->get<float>("Camera", "dirZ")),
													  glm::vec3(xml->get<float>("Camera", "upX"), xml->get<float>("Camera", "upY"), xml->get<float>("Camera", "upZ"))));

		tex = boost::shared_ptr<Texture>(new Texture(xml->get<int>("Window", "width"), xml->get<int>("Window", "height"), GL_RGBA8));
		texRenderer = boost::shared_ptr<TextureRenderer>(new TextureRenderer(xml->get<int>("Window", "width"), xml->get<int>("Window", "height"), tex));
		ort = boost::shared_ptr<OpenGLRaytracer>(new OpenGLRaytracer(tex, (*camera.get()), reflectionDepth));
		inputControl = boost::shared_ptr<InputControl>(new InputControl(xml->get<float>("Camera", "velocityRotate"), xml->get<float>("Camera", "velocityTranslate")));
		scene = boost::shared_ptr<Scene>(new Scene());
		sceneReader = boost::shared_ptr<SceneReader>(new SceneReader());
		sceneLoader = boost::shared_ptr<SceneLoader>(new SceneLoader((*ort.get())));

		for(int i = 0; i < argc; ++i){
			sceneReader->readScene((std::string(".\\")+std::string(argv[i])).c_str(), (*scene.get()));
			sceneLoader->loadScene((*scene.get()), (*ort.get()));
			scene->clear();
		}

		while(running){
			glGetError();
			if(timer->getTimeDiffWithoutActualization() > static_cast<double>(1.0)/static_cast<double>(maxFPS)){
				timer->getTimeDiff();

				inputControl->processInput((*camera.get()), reflectionDepth);
				camera->update();
			    
				ort->renderScene((*camera.get()), width, height, reflectionDepth);
				texRenderer->draw();
				wnd->swapBuffers();

				if(input->isKeyPressed(GLFW_KEY_ESC)){
					running = false;
				}

				frameCounter++;
//.........这里部分代码省略.........
开发者ID:DreadIsBack,项目名称:OpenGL_Raytracing,代码行数:101,代码来源:main.cpp

示例2: main

int main() {

    LPTSTR path = new TCHAR[100];
    GetModuleFileName(HINST_THISCOMPONENT,path, 100);

    std::cout << "Executing: " << path  << std::endl;

    XMLParser* xml = new XMLParser();

    try {
        xml->loadXML(".\\particles.xml");

    } catch(std::exception& e) {
        std::cout << e.what() <<std::endl;
        std::cout << "Default values will be applied!" <<std::endl;

        loadDefaultValues(xml);

        try {
            xml->writeToXML(".\\particles.xml");
        } catch(std::exception& e) {
            std::cout << e.what() <<std::endl;
        }
    }


    GLFWWindow* wnd;

    try {

        wnd = new GLFWWindow(xml->get<int>("Window", "width"),
                             xml->get<int>("Window", "height"),
                             "OpenGL_4.3_Particle_System",
                             xml->get<bool>("Window", "windowed"));

    } catch(std::exception& e) {
        std::cout << e.what() <<std::endl;
        std::cin.get();

        delete xml;

        return -1;
    }

    std::cout << "OpenGL Version: " << glGetString(GL_VERSION) << std::endl;

    if(glewInit() != GLEW_OK) {
        std::cout << "Could not initialize GLEW!" <<std::endl;
        std::cin.get();

        delete wnd;
        delete xml;

        return -1;
    } else {
        std::cout << "GLEW Version: " <<glewGetString(GLEW_VERSION) <<std::endl;
    }

    ParticleSystem* ps;

    try {
        ps = new ParticleSystem(xml->get<int>("Particles", "maxParticles"),
                                xml->get<int>("Particles", "iniRadius"),
                                xml->get<float>("Particles", "quadLength"),
                                xml->get<int>("Window", "maxFPS"),
                                xml->get<float>("Camera", "translation_velocity"),
                                xml->get<float>("Camera", "rotation_velocity"));

    } catch(std::exception& e) {
        std::cout << e.what() <<std::endl;
        std::cin.get();

        delete wnd;
        delete xml;

        return -1;
    }

    delete xml;

    try {
        ps->run(wnd);
    } catch(std::exception& e) {
        std::cout << e.what() <<std::endl;
        std::cin.get();
    }

    delete ps;
    delete wnd;

    return 0;
}
开发者ID:revkusz,项目名称:OpenGL_ParticleSystem,代码行数:92,代码来源:main.cpp


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