本文整理汇总了C++中LLTextureEntry::setID方法的典型用法代码示例。如果您正苦于以下问题:C++ LLTextureEntry::setID方法的具体用法?C++ LLTextureEntry::setID怎么用?C++ LLTextureEntry::setID使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类LLTextureEntry
的用法示例。
在下文中一共展示了LLTextureEntry::setID方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addPrim
//.........这里部分代码省略.........
}
}
if(object->isParticleSource())
{
LLViewerPartSourceScript* partSourceScript = object->getPartSourceScript();
prim["particle"] = partSourceScript->mPartSysData.asLLSD();
if (!exportTexture(partSourceScript->mPartSysData.mPartImageID))
{
prim["particle"]["PartImageID"] = LLUUID::null.asString();
}
}
U8 texture_count = object->getNumTEs();
for(U8 i = 0; i < texture_count; ++i)
{
LLTextureEntry *checkTE = object->getTE(i);
LL_DEBUGS("export") << "Checking texture number " << (S32)i
<< ", ID " << checkTE->getID() << LL_ENDL;
if (FSCommon::isDefaultTexture(checkTE->getID())) // <FS:CR> Check against default textures
{
LL_DEBUGS("export") << "...is a default texture." << LL_ENDL;
prim["texture"].append(checkTE->asLLSD());
}
else if (exportTexture(checkTE->getID()))
{
LL_DEBUGS("export") << "...export check passed." << LL_ENDL;
prim["texture"].append(checkTE->asLLSD());
}
else
{
LL_DEBUGS("export") << "...export check failed." << LL_ENDL;
checkTE->setID(LL_DEFAULT_WOOD_UUID); // TODO: use user option of default texture.
prim["texture"].append(checkTE->asLLSD());
}
// [FS:CR] Materials support
if (checkTE->getMaterialParams().notNull())
{
LL_DEBUGS("export") << "found materials. Checking permissions..." << LL_ENDL;
LLSD params = checkTE->getMaterialParams().get()->asLLSD();
/// *TODO: Feeling lazy so I made it check both. This is incorrect and needs to be expanded
/// to retain exportable textures not just failing both when one is non-exportable (or unset).
if (exportTexture(params["NormMap"].asUUID()) &&
exportTexture(params["SpecMap"].asUUID()))
{
LL_DEBUGS("export") << "...passed check." << LL_ENDL;
prim["materials"].append(params);
}
}
}
if (!object->getPhysicsShapeUnknown())
{
prim["ExtraPhysics"]["PhysicsShapeType"] = (S32)object->getPhysicsShapeType();
prim["ExtraPhysics"]["Density"] = (F64)object->getPhysicsDensity();
prim["ExtraPhysics"]["Friction"] = (F64)object->getPhysicsFriction();
prim["ExtraPhysics"]["Restitution"] = (F64)object->getPhysicsRestitution();
prim["ExtraPhysics"]["GravityMultiplier"] = (F64)object->getPhysicsGravity();
}
prim["name"] = node->mName;
prim["description"] = node->mDescription;
prim["creation_date"] = ll_sd_from_U64(node->mCreationDate);
示例2: xmltoprim
// This function takes a pointer to a viewerobject and applys the prim definition that prim_llsd has
void primbackup::xmltoprim(LLSD prim_llsd,LLViewerObject * object)
{
LLUUID id = object->getID();
expecting_update = object->getID();
LLSelectMgr::getInstance()->selectObjectAndFamily(object);
if(prim_llsd.has("parent"))
{
//we are not the root node.
LLVector3 pos=prim_llsd["position"];
LLQuaternion rot=ll_quaternion_from_sd(prim_llsd["rotation"]);
object->setPositionRegion((pos*root_rot)+(root_pos+group_offset));
object->setRotation(rot*root_rot);
}
else
{
object->setPositionRegion(root_pos+group_offset);
LLQuaternion rot=ll_quaternion_from_sd(prim_llsd["rotation"]);
object->setRotation(rot);
}
object->setScale(prim_llsd["scale"]);
if(prim_llsd.has("shadows"))
if(prim_llsd["shadows"].asInteger()==1)
object->setFlags(FLAGS_CAST_SHADOWS,true);
if(prim_llsd.has("phantom"))
if(prim_llsd["phantom"].asInteger()==1)
object->setFlags(FLAGS_PHANTOM,true);
if(prim_llsd.has("physical"))
if(prim_llsd["physical"].asInteger()==1)
object->setFlags(FLAGS_USE_PHYSICS,true);
// Volume params
LLVolumeParams volume_params = object->getVolume()->getParams();
volume_params.fromLLSD(prim_llsd["volume"]) ;
object->updateVolume(volume_params);
if(prim_llsd.has("sculpt"))
{
LLSculptParams* sculpt=new LLSculptParams();
sculpt->fromLLSD(prim_llsd["sculpt"]);
//TODO check if map is valid and only set texture is map is valid and changes
if(assetmap[sculpt->getSculptTexture()].notNull())
{
LLUUID replacment=assetmap[sculpt->getSculptTexture()];
sculpt->setSculptTexture(replacment);
}
object->setParameterEntry(LLNetworkData::PARAMS_SCULPT,(LLNetworkData&)(*sculpt),true);
}
if(prim_llsd.has("light"))
{
LLLightParams * light=new LLLightParams();
light->fromLLSD(prim_llsd["light"]);
object->setParameterEntry(LLNetworkData::PARAMS_LIGHT,(LLNetworkData&)(*light),true);
}
if(prim_llsd.has("flexible"))
{
LLFlexibleObjectData* flex=new LLFlexibleObjectData();
flex->fromLLSD(prim_llsd["flexible"]);
object->setParameterEntry(LLNetworkData::PARAMS_FLEXIBLE,(LLNetworkData&)(*flex),true);
}
// Textures
LLSD te_llsd;
llinfos << "Processing textures for prim" << llendl;
te_llsd=prim_llsd["textures"];
LLSD::array_iterator text_it;
U8 i=0;
i=0;
for(text_it=te_llsd.beginArray(); text_it !=te_llsd.endArray(); text_it++)
{
LLSD the_te;
the_te=(*text_it);
LLTextureEntry te;
te.fromLLSD(the_te);
if(assetmap[te.getID()].notNull())
{
LLUUID replacment=assetmap[te.getID()];
te.setID(replacment);
}
object->setTE(i,te); //
i++;
}
llinfos << "Textures done!" << llendl;
//.........这里部分代码省略.........
示例3: xmlToPrim
//.........这里部分代码省略.........
LLSculptParams sculpt;
sculpt.fromLLSD(prim_llsd["sculpt"]);
// TODO: check if map is valid and only set texture if map is valid and
// changes
LLUUID t_id = sculpt.getSculptTexture();
if (mAssetMap.count(t_id))
{
sculpt.setSculptTexture(mAssetMap[t_id], sculpt.getSculptType());
}
object->setParameterEntry(LLNetworkData::PARAMS_SCULPT, sculpt, true);
}
if (prim_llsd.has("light"))
{
LLLightParams light;
light.fromLLSD(prim_llsd["light"]);
object->setParameterEntry(LLNetworkData::PARAMS_LIGHT, light, true);
}
if (prim_llsd.has("light_texture"))
{
// Light image
LLLightImageParams lightimg;
lightimg.fromLLSD(prim_llsd["light_texture"]);
LLUUID t_id = lightimg.getLightTexture();
if (mAssetMap.count(t_id))
{
lightimg.setLightTexture(mAssetMap[t_id]);
}
object->setParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE, lightimg,
true);
}
if (prim_llsd.has("flexible"))
{
LLFlexibleObjectData flex;
flex.fromLLSD(prim_llsd["flexible"]);
object->setParameterEntry(LLNetworkData::PARAMS_FLEXIBLE, flex, true);
}
// Textures
// Check both for "textures" and "texture" since the second (buggy) case
// has already been seen in some exported prims XML files...
LL_INFOS() << "Processing textures for prim" << id << LL_ENDL;
LLSD& te_llsd = prim_llsd.has("textures") ? prim_llsd["textures"]
: prim_llsd["texture"];
U8 i = 0;
for (LLSD::array_iterator it = te_llsd.beginArray();
it != te_llsd.endArray(); ++it)
{
LLSD the_te = *it;
LLTextureEntry te;
te.fromLLSD(the_te);
LLUUID t_id = te.getID();
if (mAssetMap.count(t_id))
{
te.setID(mAssetMap[t_id]);
}
object->setTE(i++, te);
}
LL_INFOS() << "Textures done !" << LL_ENDL;
// Materials
if (prim_llsd.has("materials"))
{
LL_INFOS() << "Processing materials for prim " << id << LL_ENDL;
te_llsd = prim_llsd["materials"];
i = 0;
for (LLSD::array_iterator it = te_llsd.beginArray();
it != te_llsd.endArray(); ++it)
{
LLSD the_mat = *it;
LLMaterialPtr mat = new LLMaterial(the_mat);
LLUUID t_id = mat->getNormalID();
if (id.notNull() && mAssetMap.count(t_id))
{
mat->setNormalID(mAssetMap[t_id]);
}
t_id = mat->getSpecularID();
if (id.notNull() && mAssetMap.count(t_id))
{
mat->setSpecularID(mAssetMap[t_id]);
}
LLMaterialMgr::getInstance()->put(id, i++, *mat);
}
LL_INFOS() << "Materials done !" << LL_ENDL;
}
object->sendRotationUpdate();
object->sendTEUpdate();
object->sendShapeUpdate();
LLSelectMgr::getInstance()->sendMultipleUpdate(UPD_SCALE | UPD_POSITION);
LLSelectMgr::getInstance()->deselectAll();
}