void Canvas::changeTerrainFile( const std::string& fileName ) { _destroyTerrain(); _clearTerrain(); size_t dotPos = fileName.find('.'); if (dotPos == std::string::npos) { return; } std::string suffix = fileName.substr(dotPos, fileName.size() - dotPos); std::transform(suffix.begin(), suffix.end(), suffix.begin(), std::tolower); if (suffix == ".group") { _group = new Group; } else if (suffix == ".entity") { _group = new Entity; } else if(suffix == ".mesh") { _group = new Geometry; } else if(suffix == ".mz") { _group = new MzModel; } else { return; } _group->decode(fileName); _createTerrain(); }
void Canvas::_clear() { _isOK = false; _material = NULL; _vb = NULL; _fx = NULL; _font = NULL; _fps = 0.0f; _fx = NULL; _fxTerrain = NULL; _clearTerrain(); }
void Canvas::_clear() { _isOK = false; _material = NULL; _vb = NULL; _fx = NULL; for (size_t i = 0; i != Euclid::eFontProperty_Size; ++i) { _font[i] = NULL; } _fps = 0.0f; _fx = NULL; _fxTerrain = NULL; _clearTerrain(); }
void Canvas::changeTerrainFile( const std::string& fileName ) { _destroyTerrain(); _clearTerrain(); _group = new Group; _group->decode(fileName); #if 0 tinyxml2::XMLDocument doc; if (tinyxml2::XML_SUCCESS != doc.LoadFile(fileName.c_str())) { return; } tinyxml2::XMLElement* r = doc.RootElement(); if (NULL == r) { return; } tinyxml2::XMLElement* mes = r->FirstChildElement("entity"); if (NULL == mes) { return; } _terrainMeshName = mes->Attribute("file"); tinyxml2::XMLElement* mat = r->FirstChildElement("material"); if (NULL == mat) { _terrainMaterialName = "shader/aPT.fx"; _terrainMaterialName = "image/00.dds"; } else { _terrainMaterialName = mat->Attribute("shader"); tinyxml2::XMLElement* tex = mat->FirstChildElement("texture"); if (tex) { TextureFilePair p; p.first = tex->Attribute("name"); p.second = tex->Attribute("value"); _textureFiles.push_back(p); } } _terrainFileName = fileName; #endif _createTerrain(); }