本文整理汇总了C++中XMLElement::CreateChild方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLElement::CreateChild方法的具体用法?C++ XMLElement::CreateChild怎么用?C++ XMLElement::CreateChild使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLElement
的用法示例。
在下文中一共展示了XMLElement::CreateChild方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SaveXML
bool Animatable::SaveXML(XMLElement& dest) const
{
if (!Serializable::SaveXML(dest))
return false;
// Object animation without name
if (objectAnimation_ && objectAnimation_->GetName().Empty())
{
XMLElement elem = dest.CreateChild("objectanimation");
if (!objectAnimation_->SaveXML(elem))
return false;
}
for (HashMap<String, SharedPtr<AttributeAnimationInfo> >::ConstIterator i = attributeAnimationInfos_.Begin(); i != attributeAnimationInfos_.End(); ++i)
{
ValueAnimation* attributeAnimation = i->second_->GetAnimation();
if (attributeAnimation->GetOwner())
continue;
const AttributeInfo& attr = i->second_->GetAttributeInfo();
XMLElement elem = dest.CreateChild("attributeanimation");
elem.SetAttribute("name", attr.name_);
if (!attributeAnimation->SaveXML(elem))
return false;
elem.SetAttribute("wrapmode", wrapModeNames[i->second_->GetWrapMode()]);
elem.SetFloat("speed", i->second_->GetSpeed());
}
return true;
}
示例2: SaveXML
bool Node::SaveXML(XMLElement& dest)
{
// Write node ID
if (!dest.SetInt("id", id_))
return false;
// Write attributes
if (!Serializable::SaveXML(dest))
return false;
// Write components
for (unsigned i = 0; i < components_.Size(); ++i)
{
Component* component = components_[i];
XMLElement compElem = dest.CreateChild("component");
if (!component->SaveXML(compElem))
return false;
}
// Write child nodes
for (unsigned i = 0; i < children_.Size(); ++i)
{
Node* node = children_[i];
XMLElement childElem = dest.CreateChild("node");
if (!node->SaveXML(childElem))
return false;
}
return true;
}
示例3: SaveXML
bool ValueAnimation::SaveXML(XMLElement& dest) const
{
dest.SetAttribute("interpolationmethod", interpMethodNames[interpolationMethod_]);
if (interpolationMethod_ == IM_SPLINE)
dest.SetFloat("splinetension", splineTension_);
for (unsigned i = 0; i < keyFrames_.Size(); ++i)
{
const VAnimKeyFrame& keyFrame = keyFrames_[i];
XMLElement keyFrameEleme = dest.CreateChild("keyframe");
keyFrameEleme.SetFloat("time", keyFrame.time_);
keyFrameEleme.SetVariant(keyFrame.value_);
}
for (unsigned i = 0; i < eventFrames_.Size(); ++i)
{
const VAnimEventFrame& eventFrame = eventFrames_[i];
XMLElement eventFrameElem = dest.CreateChild("eventframe");
eventFrameElem.SetFloat("time", eventFrame.time_);
eventFrameElem.SetUInt("eventtype", eventFrame.eventType_.Value());
eventFrameElem.CreateChild("eventdata").SetVariantMap(eventFrame.eventData_);
}
return true;
}
示例4: SaveXML
bool Menu::SaveXML(XMLElement& dest)
{
// Write type and internal flag
if (!dest.SetString("type", GetTypeName()))
return false;
if (internal_)
{
if (!dest.SetBool("internal", internal_))
return false;
}
// Write attributes
if (!Serializable::SaveXML(dest))
return false;
// Write child elements
for (unsigned i = 0; i < children_.Size(); ++i)
{
UIElement* element = children_[i];
XMLElement childElem = dest.CreateChild("element");
if (!element->SaveXML(childElem))
return false;
}
// Save the popup element as a "virtual" child element
if (popup_)
{
XMLElement childElem = dest.CreateChild("element");
childElem.SetBool("popup", true);
if (!popup_->SaveXML(childElem))
return false;
}
return true;
}
示例5: SaveConfiguration
/// Save account information to a file
void GameEconomicGameClient::SaveConfiguration(Configuration &configuration)
{
/// Get Resource
ResourceCache * cache = GetSubsystem<ResourceCache>();
FileSystem * fileSystem = GetSubsystem<FileSystem>();
String configFileName;
/// Set directory and path for network file
configFileName.Append(fileSystem->GetProgramDir().CString());
configFileName.Append("");
configFileName.Append("Configuration.xml");
/// Check if the account file information exist
if(fileSystem->FileExists(configFileName.CString()))
{
fileSystem->Delete(configFileName.CString());
}
cout << "It got here "<<endl;
File saveFile(context_, configFileName.CString(), FILE_WRITE);
XMLFile * preferencefileconfig = new XMLFile(context_);
XMLElement configElem = preferencefileconfig -> CreateRoot("Configuration");
XMLElement GameModeConfigurationElement = configElem.CreateChild("GameModeConfiguration");
XMLElement VideoConfigurationElement= configElem.CreateChild("VideoConfiguration");
/// Set true false
if(configuration.GameModeForceTablet==true)
{
GameModeConfigurationElement.SetAttribute("GameModeForceTablet", "true");
}
else
{
GameModeConfigurationElement.SetAttribute("GameModeForceTablet", "false");
}
/// Convert video bloom to float
String VideoBloomParamValue1String(configuration.VideoBloomParam1);
String VideoBloomParamValue2String(configuration.VideoBloomParam2);
/// Copy values testing
VideoConfigurationElement.SetAttribute("BloomParam1",VideoBloomParamValue1String);
VideoConfigurationElement.SetAttribute("BloomParam2",VideoBloomParamValue2String);
preferencefileconfig->Save(saveFile);
return;
}
示例6: SaveXML
bool UnknownComponent::SaveXML(XMLElement& dest) const
{
if (dest.IsNull())
{
LOGERROR("Could not save " + GetTypeName() + ", null destination element");
return false;
}
if (!useXML_)
LOGWARNING("UnknownComponent loaded in binary mode, attributes will be empty for XML save");
// Write type and ID
if (!dest.SetString("type", GetTypeName()))
return false;
if (!dest.SetInt("id", id_))
return false;
for (unsigned i = 0; i < xmlAttributeInfos_.Size(); ++i)
{
XMLElement attrElem = dest.CreateChild("attribute");
attrElem.SetAttribute("name", xmlAttributeInfos_[i].name_);
attrElem.SetAttribute("value", xmlAttributes_[i]);
}
return true;
}
示例7: Save
bool Animation::Save(Serializer& dest) const
{
// Write ID, name and length
dest.WriteFileID("UANI");
dest.WriteString(animationName_);
dest.WriteFloat(length_);
// Write tracks
dest.WriteUInt(tracks_.Size());
for (HashMap<StringHash, AnimationTrack>::ConstIterator i = tracks_.Begin(); i != tracks_.End(); ++i)
{
const AnimationTrack& track = i->second_;
dest.WriteString(track.name_);
dest.WriteUByte(track.channelMask_);
dest.WriteUInt(track.keyFrames_.Size());
// Write keyframes of the track
for (unsigned j = 0; j < track.keyFrames_.Size(); ++j)
{
const AnimationKeyFrame& keyFrame = track.keyFrames_[j];
dest.WriteFloat(keyFrame.time_);
if (track.channelMask_ & CHANNEL_POSITION)
dest.WriteVector3(keyFrame.position_);
if (track.channelMask_ & CHANNEL_ROTATION)
dest.WriteQuaternion(keyFrame.rotation_);
if (track.channelMask_ & CHANNEL_SCALE)
dest.WriteVector3(keyFrame.scale_);
}
}
// If triggers have been defined, write an XML file for them
if (!triggers_.Empty() || HasMetadata())
{
File* destFile = dynamic_cast<File*>(&dest);
if (destFile)
{
String xmlName = ReplaceExtension(destFile->GetName(), ".xml");
SharedPtr<XMLFile> xml(new XMLFile(context_));
XMLElement rootElem = xml->CreateRoot("animation");
for (unsigned i = 0; i < triggers_.Size(); ++i)
{
XMLElement triggerElem = rootElem.CreateChild("trigger");
triggerElem.SetFloat("time", triggers_[i].time_);
triggerElem.SetVariant(triggers_[i].data_);
}
SaveMetadataToXML(rootElem);
File xmlFile(context_, xmlName, FILE_WRITE);
xml->Save(xmlFile);
}
else
ATOMIC_LOGWARNING("Can not save animation trigger data when not saving into a file");
}
return true;
}
示例8:
void ParticleEffect2D::WriteColor(XMLElement& element, const String& name, const Color& color) const
{
XMLElement child = element.CreateChild(name);
child.SetFloat("red", color.r_);
child.SetFloat("green", color.g_);
child.SetFloat("blue", color.b_);
child.SetFloat("alpha", color.a_);
}
示例9: SaveCubemapXML
void CubemapGenerator::SaveCubemapXML()
{
SharedPtr<XMLFile> xmlFile(new XMLFile(context_));
XMLElement rootElem = xmlFile->CreateRoot("cubemap");
String prefix = resourcePath_ + namePrefix_ + "_";
String name = prefix + GetFaceName(FACE_POSITIVE_X) + ".png";
rootElem.CreateChild("face").SetAttribute("name", name);
name = prefix + GetFaceName(FACE_NEGATIVE_X) + ".png";
rootElem.CreateChild("face").SetAttribute("name", name);
name = prefix + GetFaceName(FACE_POSITIVE_Y) + ".png";
rootElem.CreateChild("face").SetAttribute("name", name);
name = prefix + GetFaceName(FACE_NEGATIVE_Y) + ".png";
rootElem.CreateChild("face").SetAttribute("name", name);
name = prefix + GetFaceName(FACE_POSITIVE_Z) + ".png";
rootElem.CreateChild("face").SetAttribute("name", name);
name = prefix + GetFaceName(FACE_NEGATIVE_Z) + ".png";
rootElem.CreateChild("face").SetAttribute("name", name);
String xmlPath = outputPathAbsolute_ + namePrefix_ + ".xml";
SharedPtr<File> file(new File(context_, xmlPath, FILE_WRITE));
xmlFile->Save(*file, " ");
file->Close();
ResourceCache* cache = GetSubsystem<ResourceCache>();
TextureCube* texcube = cache->GetResource<TextureCube>(resourcePath_ + namePrefix_ + ".xml");
if (texcube)
cache->ReloadResource(texcube);
}
示例10: Save
bool Material::Save(XMLElement& dest) const
{
if (dest.IsNull())
{
LOGERROR("Can not save material to null XML element");
return false;
}
// Write techniques
for (unsigned i = 0; i < techniques_.Size(); ++i)
{
const TechniqueEntry& entry = techniques_[i];
if (!entry.technique_)
continue;
XMLElement techniqueElem = dest.CreateChild("technique");
techniqueElem.SetString("name", entry.technique_->GetName());
techniqueElem.SetInt("quality", entry.qualityLevel_);
techniqueElem.SetFloat("loddistance", entry.lodDistance_);
}
// Write texture units
for (unsigned j = 0; j < MAX_MATERIAL_TEXTURE_UNITS; ++j)
{
Texture* texture = GetTexture((TextureUnit)j);
if (texture)
{
XMLElement textureElem = dest.CreateChild("texture");
textureElem.SetString("unit", textureUnitNames[j]);
textureElem.SetString("name", texture->GetName());
}
}
// Write shader parameters
for (HashMap<StringHash, MaterialShaderParameter>::ConstIterator j = shaderParameters_.Begin(); j != shaderParameters_.End(); ++j)
{
XMLElement parameterElem = dest.CreateChild("parameter");
parameterElem.SetString("name", j->second_.name_);
parameterElem.SetVectorVariant("value", j->second_.value_);
}
// Write culling modes
XMLElement cullElem = dest.CreateChild("cull");
cullElem.SetString("value", cullModeNames[cullMode_]);
XMLElement shadowCullElem = dest.CreateChild("shadowcull");
shadowCullElem.SetString("value", cullModeNames[shadowCullMode_]);
// Write depth bias
XMLElement depthBiasElem = dest.CreateChild("depthbias");
depthBiasElem.SetFloat("constant", depthBias_.constantBias_);
depthBiasElem.SetFloat("slopescaled", depthBias_.slopeScaledBias_);
return true;
}
示例11: SaveXML
bool ObjectAnimation::SaveXML(XMLElement& dest) const
{
for (HashMap<String, SharedPtr<ValueAnimationInfo> >::ConstIterator i = attributeAnimationInfos_.Begin(); i != attributeAnimationInfos_.End(); ++i)
{
XMLElement animElem = dest.CreateChild("attributeanimation");
animElem.SetAttribute("name", i->first_);
const ValueAnimationInfo* info = i->second_;
if (!info->GetAnimation()->SaveXML(animElem))
return false;
animElem.SetAttribute("wrapmode", wrapModeNames[info->GetWrapMode()]);
animElem.SetFloat("speed", info->GetSpeed());
}
return true;
}
示例12: xmlFile
bool SpriteSheet2D::Save(Serializer& dest) const
{
if (!texture_)
return false;
SharedPtr<XMLFile> xmlFile(new XMLFile(context_));
XMLElement rootElem = xmlFile->CreateRoot("spritesheet");
rootElem.SetAttribute("texture", texture_->GetName());
for (HashMap<String, SharedPtr<Sprite2D> >::ConstIterator i = spriteMapping_.Begin(); i != spriteMapping_.End(); ++i)
{
XMLElement spriteElem = rootElem.CreateChild("sprite");
spriteElem.SetAttribute("name", i->first_);
Sprite2D* sprite = i->second_;
spriteElem.SetIntRect("rectangle", sprite->GetRectangle());
spriteElem.SetVector2("hotspot", sprite->GetHotSpot());
}
return xmlFile->Save(dest);
}
示例13: xmlFile
bool Animation2D::Save(Serializer& dest) const
{
XMLFile xmlFile(context_);
XMLElement rootElem = xmlFile.CreateRoot("Animation");
float endTime = 0.0f;
for (unsigned i = 0; i < frameSprites_.Size(); ++i)
{
XMLElement frameElem = rootElem.CreateChild("Frame");
frameElem.SetFloat("duration", frameEndTimes_[i] - endTime);
endTime = frameEndTimes_[i];
Sprite2D* sprite = frameSprites_[i];
SpriteSheet2D* spriteSheet = sprite->GetSpriteSheet();
if (!spriteSheet)
frameElem.SetString("sprite", sprite->GetName());
else
frameElem.SetString("sprite", spriteSheet->GetName() + "@" + sprite->GetName());
}
return xmlFile.Save(dest);
}
示例14: SaveXML
bool Menu::SaveXML(XMLElement& dest) const
{
if (!Button::SaveXML(dest))
return false;
// Save the popup element as a "virtual" child element
if (popup_)
{
XMLElement childElem = dest.CreateChild("element");
childElem.SetBool("popup", true);
if (!popup_->SaveXML(childElem))
return false;
// Filter popup implicit attributes
if (!FilterPopupImplicitAttributes(childElem))
{
URHO3D_LOGERROR("Could not remove popup implicit attributes");
return false;
}
}
return true;
}
示例15: Save
bool ParticleEffect::Save(XMLElement& dest) const
{
if (dest.IsNull())
{
URHO3D_LOGERROR("Can not save particle effect to null XML element");
return false;
}
XMLElement childElem = dest.CreateChild("material");
childElem.SetAttribute("name", GetResourceName(material_));
childElem = dest.CreateChild("numparticles");
childElem.SetInt("value", numParticles_);
childElem = dest.CreateChild("updateinvisible");
childElem.SetBool("enable", updateInvisible_);
childElem = dest.CreateChild("relative");
childElem.SetBool("enable", relative_);
childElem = dest.CreateChild("scaled");
childElem.SetBool("enable", scaled_);
childElem = dest.CreateChild("sorted");
childElem.SetBool("enable", sorted_);
childElem = dest.CreateChild("fixedscreensize");
childElem.SetBool("enable", fixedScreenSize_);
childElem = dest.CreateChild("animlodbias");
childElem.SetFloat("value", animationLodBias_);
childElem = dest.CreateChild("emittertype");
childElem.SetAttribute("value", emitterTypeNames[emitterType_]);
childElem = dest.CreateChild("emittersize");
childElem.SetVector3("value", emitterSize_);
childElem = dest.CreateChild("direction");
childElem.SetVector3("min", directionMin_);
childElem.SetVector3("max", directionMax_);
childElem = dest.CreateChild("constantforce");
childElem.SetVector3("value", constantForce_);
childElem = dest.CreateChild("dampingforce");
childElem.SetFloat("value", dampingForce_);
childElem = dest.CreateChild("activetime");
childElem.SetFloat("value", activeTime_);
childElem = dest.CreateChild("inactivetime");
childElem.SetFloat("value", inactiveTime_);
childElem = dest.CreateChild("emissionrate");
childElem.SetFloat("min", emissionRateMin_);
childElem.SetFloat("max", emissionRateMax_);
childElem = dest.CreateChild("particlesize");
childElem.SetVector2("min", sizeMin_);
childElem.SetVector2("max", sizeMax_);
childElem = dest.CreateChild("timetolive");
childElem.SetFloat("min", timeToLiveMin_);
childElem.SetFloat("max", timeToLiveMax_);
childElem = dest.CreateChild("velocity");
childElem.SetFloat("min", velocityMin_);
childElem.SetFloat("max", velocityMax_);
childElem = dest.CreateChild("rotation");
childElem.SetFloat("min", rotationMin_);
childElem.SetFloat("max", rotationMax_);
childElem = dest.CreateChild("rotationspeed");
childElem.SetFloat("min", rotationSpeedMin_);
childElem.SetFloat("max", rotationSpeedMax_);
childElem = dest.CreateChild("sizedelta");
childElem.SetFloat("add", sizeAdd_);
childElem.SetFloat("mul", sizeMul_);
childElem = dest.CreateChild("faceCameraMode");
childElem.SetAttribute("value", faceCameraModeNames[faceCameraMode_]);
if (colorFrames_.Size() == 1)
{
childElem = dest.CreateChild("color");
childElem.SetColor("value", colorFrames_[0].color_);
}
if (colorFrames_.Size() > 1)
{
for (unsigned i = 0; i < colorFrames_.Size(); ++i)
{
childElem = dest.CreateChild("colorfade");
childElem.SetColor("color", colorFrames_[i].color_);
childElem.SetFloat("time", colorFrames_[i].time_);
}
}
//.........这里部分代码省略.........