本文整理汇总了C++中XMLElement::GetNext方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLElement::GetNext方法的具体用法?C++ XMLElement::GetNext怎么用?C++ XMLElement::GetNext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLElement
的用法示例。
在下文中一共展示了XMLElement::GetNext方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: LoadXML
bool ValueAnimation::LoadXML(const XMLElement& source)
{
valueType_ = VAR_NONE;
eventFrames_.Clear();
String interpMethodString = source.GetAttribute("interpolationmethod");
InterpMethod method = IM_LINEAR;
for (int i = 0; i <= IM_SPLINE; ++i)
{
if (interpMethodString == interpMethodNames[i])
{
method = (InterpMethod)i;
break;
}
}
SetInterpolationMethod(method);
if (interpolationMethod_ == IM_SPLINE)
splineTension_ = source.GetFloat("splinetension");
XMLElement keyFrameElem = source.GetChild("keyframe");
while (keyFrameElem)
{
float time = keyFrameElem.GetFloat("time");
Variant value = keyFrameElem.GetVariant();
SetKeyFrame(time, value);
keyFrameElem = keyFrameElem.GetNext("keyframe");
}
XMLElement eventFrameElem = source.GetChild("eventframe");
while (eventFrameElem)
{
float time = eventFrameElem.GetFloat("time");
unsigned eventType = eventFrameElem.GetUInt("eventtype");
VariantMap eventData = eventFrameElem.GetChild("eventdata").GetVariantMap();
SetEventFrame(time, StringHash(eventType), eventData);
eventFrameElem = eventFrameElem.GetNext("eventframe");
}
return true;
}
示例2: FilterImplicitAttributes
bool ListView::FilterImplicitAttributes(XMLElement& dest) const
{
if (!ScrollView::FilterImplicitAttributes(dest))
return false;
XMLElement childElem = dest.GetChild("element"); // Horizontal scroll bar
if (!childElem)
return false;
childElem = childElem.GetNext("element"); // Vertical scroll bar
if (!childElem)
return false;
childElem = childElem.GetNext("element"); // Scroll panel
if (!childElem)
return false;
XMLElement containerElem = childElem.GetChild("element"); // Item container
if (!containerElem)
return false;
if (!RemoveChildXML(containerElem, "Name", "LV_ItemContainer"))
return false;
if (!RemoveChildXML(containerElem, "Is Enabled", "true"))
return false;
if (!RemoveChildXML(containerElem, "Layout Mode", "Vertical"))
return false;
if (!RemoveChildXML(containerElem, "Size"))
return false;
if (hierarchyMode_)
{
containerElem = childElem.GetNext("element"); // Overlay container
if (!containerElem)
return false;
if (!RemoveChildXML(containerElem, "Name", "LV_OverlayContainer"))
return false;
if (!RemoveChildXML(containerElem, "Clip Children", "true"))
return false;
if (!RemoveChildXML(containerElem, "Size"))
return false;
}
return true;
}
示例3: Load
bool TextureCube::Load(Deserializer& source)
{
PROFILE(LoadTextureCube);
ResourceCache* cache = GetSubsystem<ResourceCache>();
// In headless mode, do not actually load the texture, just return success
Graphics* graphics = GetSubsystem<Graphics>();
if (!graphics)
return true;
// If device is lost, retry later
if (graphics_->IsDeviceLost())
{
LOGWARNING("Texture load while device is lost");
dataPending_ = true;
return true;
}
// If over the texture budget, see if materials can be freed to allow textures to be freed
CheckTextureBudget(GetTypeStatic());
String texPath, texName, texExt;
SplitPath(GetName(), texPath, texName, texExt);
SharedPtr<XMLFile> xml(new XMLFile(context_));
if (!xml->Load(source))
return false;
LoadParameters(xml);
XMLElement textureElem = xml->GetRoot();
XMLElement faceElem = textureElem.GetChild("face");
unsigned faces = 0;
while (faceElem && faces < MAX_CUBEMAP_FACES)
{
String name = faceElem.GetAttribute("name");
String faceTexPath, faceTexName, faceTexExt;
SplitPath(name, faceTexPath, faceTexName, faceTexExt);
// If path is empty, add the XML file path
if (faceTexPath.Empty())
name = texPath + name;
SharedPtr<Image> image(cache->GetResource<Image>(name));
Load((CubeMapFace)faces, image);
++faces;
faceElem = faceElem.GetNext("face");
}
return true;
}
示例4: GetVariantVector
VariantVector XMLElement::GetVariantVector() const
{
VariantVector ret;
XMLElement variantElem = GetChild("variant");
while (variantElem)
{
ret.push_back(variantElem.GetVariant());
variantElem = variantElem.GetNext("variant");
}
return ret;
}
示例5: GetStringVector
StringVector XMLElement::GetStringVector() const
{
StringVector ret;
XMLElement stringElem = GetChild("string");
while (stringElem)
{
ret.push_back(stringElem.GetAttributeCString("value"));
stringElem = stringElem.GetNext("string");
}
return ret;
}
示例6: GetVariantMap
VariantMap XMLElement::GetVariantMap() const
{
VariantMap ret;
XMLElement variantElem = GetChild("variant");
while (variantElem)
{
StringHash key(variantElem.GetInt("hash"));
ret[key] = variantElem.GetVariant();
variantElem = variantElem.GetNext("variant");
}
return ret;
}
示例7: LoadShaders
void ShaderPrecache::LoadShaders(Graphics* graphics, Deserializer& source)
{
LOGDEBUG("Begin precaching shaders");
XMLFile xmlFile(graphics->GetContext());
xmlFile.Load(source);
XMLElement shader = xmlFile.GetRoot().GetChild("shader");
while (shader)
{
String vsDefines = shader.GetAttribute("vsdefines");
String psDefines = shader.GetAttribute("psdefines");
// Check for illegal variations on OpenGL ES and skip them
#ifdef GL_ES_VERSION_2_0
if (
#ifndef __EMSCRIPTEN__
vsDefines.Contains("INSTANCED") ||
#endif
(psDefines.Contains("POINTLIGHT") && psDefines.Contains("SHADOW")))
{
shader = shader.GetNext("shader");
continue;
}
#endif
ShaderVariation* vs = graphics->GetShader(VS, shader.GetAttribute("vs"), vsDefines);
ShaderVariation* ps = graphics->GetShader(PS, shader.GetAttribute("ps"), psDefines);
// Set the shaders active to actually compile them
graphics->SetShaders(vs, ps);
shader = shader.GetNext("shader");
}
LOGDEBUG("End precaching shaders");
}
示例8: LoadDict
bool PListFile::LoadDict(PListValueMap& dict, const XMLElement& dictElem)
{
if (!dictElem)
return false;
XMLElement keyElem = dictElem.GetChild("key");
XMLElement valueElem = keyElem.GetNext();
while (keyElem && valueElem)
{
String key = keyElem.GetValue();
valueElem = keyElem.GetNext();
PListValue value;
if (!LoadValue(value, valueElem))
return false;
dict[key] = value;
keyElem = valueElem.GetNext("key");
valueElem = keyElem.GetNext();
}
return true;
}
示例9: SetParameters
void Texture::SetParameters(const XMLElement& element)
{
XMLElement paramElem = element.GetChild();
while (paramElem)
{
String name = paramElem.GetName();
if (name == "address")
{
String coord = paramElem.GetAttributeLower("coord");
if (coord.Length() >= 1)
{
TextureCoordinate coordIndex = (TextureCoordinate)(coord[0] - 'u');
String mode = paramElem.GetAttributeLower("mode");
SetAddressMode(coordIndex, (TextureAddressMode)GetStringListIndex(mode.CString(), addressModeNames, ADDRESS_WRAP));
}
}
if (name == "border")
SetBorderColor(paramElem.GetColor("color"));
if (name == "filter")
{
String mode = paramElem.GetAttributeLower("mode");
SetFilterMode((TextureFilterMode)GetStringListIndex(mode.CString(), filterModeNames, FILTER_DEFAULT));
}
if (name == "mipmap")
SetNumLevels(paramElem.GetBool("enable") ? 0 : 1);
if (name == "quality")
{
if (paramElem.HasAttribute("low"))
SetMipsToSkip(QUALITY_LOW, paramElem.GetInt("low"));
if (paramElem.HasAttribute("med"))
SetMipsToSkip(QUALITY_MEDIUM, paramElem.GetInt("med"));
if (paramElem.HasAttribute("medium"))
SetMipsToSkip(QUALITY_MEDIUM, paramElem.GetInt("medium"));
if (paramElem.HasAttribute("high"))
SetMipsToSkip(QUALITY_HIGH, paramElem.GetInt("high"));
}
if (name == "srgb")
SetSRGB(paramElem.GetBool("enable"));
paramElem = paramElem.GetNext();
}
}
示例10: LoadAsyncXML
bool Scene::LoadAsyncXML(File* file)
{
if (!file)
{
LOGERROR("Null file for async loading");
return false;
}
StopAsyncLoading();
SharedPtr<XMLFile> xml(new XMLFile(context_));
if (!xml->Load(*file))
return false;
LOGINFO("Loading scene from " + file->GetName());
Clear();
XMLElement rootElement = xml->GetRoot();
// Store own old ID for resolving possible root node references
unsigned nodeID = rootElement.GetInt("id");
resolver_.AddNode(nodeID, this);
// Load the root level components first
if (!Node::LoadXML(rootElement, resolver_, false))
return false;
// Then prepare for loading all root level child nodes in the async update
XMLElement childNodeElement = rootElement.GetChild("node");
asyncLoading_ = true;
asyncProgress_.file_ = file;
asyncProgress_.xmlFile_ = xml;
asyncProgress_.xmlElement_ = childNodeElement;
asyncProgress_.loadedNodes_ = 0;
asyncProgress_.totalNodes_ = 0;
// Count the amount of child nodes
while (childNodeElement)
{
++asyncProgress_.totalNodes_;
childNodeElement = childNodeElement.GetNext("node");
}
return true;
}
示例11: LoadInfo
bool TmxTileLayer2D::Load(const XMLElement& element, const TileMapInfo2D& info)
{
LoadInfo(element);
XMLElement dataElem = element.GetChild("data");
if (!dataElem)
{
URHO3D_LOGERROR("Could not find data in layer");
return false;
}
if (dataElem.HasAttribute("encoding") && dataElem.GetAttribute("encoding") != "xml")
{
URHO3D_LOGERROR("Encoding not support now");
return false;
}
XMLElement tileElem = dataElem.GetChild("tile");
tiles_.Resize((unsigned)(width_ * height_));
for (int y = 0; y < height_; ++y)
{
for (int x = 0; x < width_; ++x)
{
if (!tileElem)
return false;
int gid = tileElem.GetInt("gid");
if (gid > 0)
{
SharedPtr<Tile2D> tile(new Tile2D());
tile->gid_ = gid;
tile->sprite_ = tmxFile_->GetTileSprite(gid);
tile->propertySet_ = tmxFile_->GetTilePropertySet(gid);
tiles_[y * width_ + x] = tile;
}
tileElem = tileElem.GetNext("tile");
}
}
if (element.HasChild("properties"))
LoadPropertySet(element.GetChild("properties"));
return true;
}
示例12: LoadArray
bool PListFile::LoadArray(PListValueVector& array, const XMLElement& arrayElem)
{
if (!arrayElem)
return false;
for (XMLElement valueElem = arrayElem.GetChild(); valueElem; valueElem = valueElem.GetNext())
{
PListValue value;
if (!LoadValue(value, valueElem))
return false;
array.Push(value);
}
return true;
}
示例13: rectangle
bool SpriteSheet2D::EndLoadFromXMLFile()
{
ResourceCache* cache = GetSubsystem<ResourceCache>();
texture_ = cache->GetResource<Texture2D>(loadTextureName_);
if (!texture_)
{
URHO3D_LOGERROR("Could not load texture " + loadTextureName_);
loadXMLFile_.Reset();
loadTextureName_.Clear();
return false;
}
XMLElement rootElem = loadXMLFile_->GetRoot("TextureAtlas");
XMLElement subTextureElem = rootElem.GetChild("SubTexture");
while (subTextureElem)
{
String name = subTextureElem.GetAttribute("name");
int x = subTextureElem.GetInt("x");
int y = subTextureElem.GetInt("y");
int width = subTextureElem.GetInt("width");
int height = subTextureElem.GetInt("height");
IntRect rectangle(x, y, x + width, y + height);
Vector2 hotSpot(0.5f, 0.5f);
IntVector2 offset(0, 0);
if (subTextureElem.HasAttribute("frameWidth") && subTextureElem.HasAttribute("frameHeight"))
{
offset.x_ = subTextureElem.GetInt("frameX");
offset.y_ = subTextureElem.GetInt("frameY");
int frameWidth = subTextureElem.GetInt("frameWidth");
int frameHeight = subTextureElem.GetInt("frameHeight");
hotSpot.x_ = ((float)offset.x_ + frameWidth / 2) / width;
hotSpot.y_ = 1.0f - ((float)offset.y_ + frameHeight / 2) / height;
}
DefineSprite(name, rectangle, hotSpot, offset);
subTextureElem = subTextureElem.GetNext("SubTexture");
}
loadXMLFile_.Reset();
loadTextureName_.Clear();
return true;
}
示例14: LoadXML
bool Animatable::LoadXML(const XMLElement& source, bool setInstanceDefault)
{
if (!Serializable::LoadXML(source, setInstanceDefault))
return false;
SetObjectAnimation(0);
attributeAnimationInfos_.Clear();
XMLElement elem = source.GetChild("objectanimation");
if (elem)
{
SharedPtr<ObjectAnimation> objectAnimation(new ObjectAnimation(context_));
if (!objectAnimation->LoadXML(elem))
return false;
SetObjectAnimation(objectAnimation);
}
elem = source.GetChild("attributeanimation");
while (elem)
{
String name = elem.GetAttribute("name");
SharedPtr<ValueAnimation> attributeAnimation(new ValueAnimation(context_));
if (!attributeAnimation->LoadXML(elem))
return false;
String wrapModeString = source.GetAttribute("wrapmode");
WrapMode wrapMode = WM_LOOP;
for (int i = 0; i <= WM_CLAMP; ++i)
{
if (wrapModeString == wrapModeNames[i])
{
wrapMode = (WrapMode)i;
break;
}
}
float speed = elem.GetFloat("speed");
SetAttributeAnimation(name, attributeAnimation, wrapMode, speed);
elem = elem.GetNext("attributeanimation");
}
return true;
}
示例15: GetVariantMap
VariantMap XMLElement::GetVariantMap() const
{
VariantMap ret;
XMLElement variantElem = GetChild("variant");
while (variantElem)
{
// If this is a manually edited map, user can not be expected to calculate hashes manually. Also accept "name" attribute
if (variantElem.HasAttribute("name"))
ret[StringHash(variantElem.GetAttribute("name"))] = variantElem.GetVariant();
else if (variantElem.HasAttribute("hash"))
ret[StringHash(variantElem.GetUInt("hash"))] = variantElem.GetVariant();
variantElem = variantElem.GetNext("variant");
}
return ret;
}