本文整理汇总了C++中XmlDocument::first_node方法的典型用法代码示例。如果您正苦于以下问题:C++ XmlDocument::first_node方法的具体用法?C++ XmlDocument::first_node怎么用?C++ XmlDocument::first_node使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XmlDocument
的用法示例。
在下文中一共展示了XmlDocument::first_node方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadFromXml
void XmlParser::loadFromXml(const char * fileName, int * argc, char ** argv) {
XmlFile xmlFile(fileName);
XmlDocument doc;
doc.parse<0>(xmlFile.data());
int W, H;
XmlNode * rtNode = doc.first_node("ge");
/*** Read window information ***/
XmlNode * windowNode = rtNode->first_node("window");
if (windowNode) {
// Try to read window name
XmlNode * name;
xmlElement(name, windowNode);
// Read width and height
XmlNode * width, *height;
xmlElement(width, windowNode);
xmlElement(height, windowNode);
W = atoi(width->value());
H = atoi(height->value());
// Set window parameters
GameWindow::setWindow((name) ? name->value() : "GE", W, H);
} else {
W = 512;
H = 512;
GameWindow::setWindow("GE", W, H);
}
// Init gamewindow and light
GameWindow::init(argc, argv);
Light::init();
Material::init();
Input::init();
GBuffer::init(W,H);
// Load noise texture
glActiveTexture(GL_TEXTURE11);
LoadTexBMP("textures/noise.bmp");
/*** Read Scene ***/
// Reference to scene node
XmlNode * sceneNode = rtNode->first_node("scene");
// Instantiate scene
Scene * scene = new Scene();
// Instantiate renderer
Renderer * renderer = new Renderer();
// Set renderer
GameWindow::setRenderer(renderer);
renderer->setScene(scene);
// Create camera
Camera * camera = new Camera();
// Set camera
renderer->setCamera(camera);
camera->setAspectRatio(W/H);
// Read Camera
XmlNode * cameraNode = rtNode->first_node("camera");
if (cameraNode) {
readModel(camera, cameraNode->first_node("model"));
// // Set position
// XmlNode * position = cameraNode->first_node("position");
// if (position) {
// // Get coordinates
// XmlAttr * x, *y, *z;
// xmlAttribute(x, position);
// xmlAttribute(y, position);
// xmlAttribute(z, position);
// camera->setPosition(atof(x->value()), atof(y->value()), atof(z->value()));
// }
//
// // Set direction
// XmlNode * direction= cameraNode->first_node("direction");
// if (direction) {
// // Get coordinates
// XmlAttr * x, *y, *z;
// xmlAttribute(x, direction);
// xmlAttribute(y, direction);
// xmlAttribute(z, direction);
// camera->setDirection(atof(x->value()), atof(y->value()),
// atof(z->value()));
// }
//
//
// // Set direction
// XmlNode * up = cameraNode->first_node("up");
// if (up) {
// // Get coordinates
// XmlAttr * x, *y, *z;
// xmlAttribute(x, up);
// xmlAttribute(y, up);
// xmlAttribute(z, up);
// camera->setUp(atof(x->value()), atof(y->value()),
// atof(z->value()));
// }
// Read scripts
XmlNode * scriptsNode = cameraNode->first_node("scripts");
readScripts(scene, camera, scriptsNode);
//.........这里部分代码省略.........