本文整理汇总了C++中OutStream::Insert方法的典型用法代码示例。如果您正苦于以下问题:C++ OutStream::Insert方法的具体用法?C++ OutStream::Insert怎么用?C++ OutStream::Insert使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OutStream
的用法示例。
在下文中一共展示了OutStream::Insert方法的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Copy
//----------------------------------------------------------------------------
Object* Object::Copy(const std::string& uniqueNameAppend)
{
// Save the object to a memory buffer.
OutStream saveStream;
saveStream.Insert((Object*)this);
int bufferSize = 0;
char* buffer = 0;
saveStream.Save(bufferSize, buffer, BufferIO::BM_DEFAULT_WRITE);
// Load the object from the memory buffer.
InStream loadStream;
loadStream.Load(bufferSize, buffer, BufferIO::BM_DEFAULT_READ);
delete1(buffer);
if (uniqueNameAppend != "")
{
int numObjects = loadStream.GetNumObjects();
for (int i = 0; i < numObjects; i++)
{
PX2::Object *obj = loadStream.GetObjectAt(i);
std::string name = obj->GetName();
if (name.length() > 0)
{
name += uniqueNameAppend;
obj->SetName(name);
}
}
}
return loadStream.GetObjectAt(0);
}
示例2: SaveCachedResource
//----------------------------------------------------------------------------
bool ResourceManager::SaveCachedResource (const std::string &filename)
{
ScopedCS scopeCS(mResTableMutex);
OutStream outPut;
ResTable::iterator it = mResTable.begin();
for (; it!=mResTable.end(); it++)
{
Object *obj = it->second.Obj;
if (obj)
{
outPut.Insert(obj);
}
}
return outPut.Save(filename);
}
示例3: SaveSceneAs
//----------------------------------------------------------------------------
bool EditMap::SaveSceneAs (const char *pathname)
{
if (!mScene)
return false;
OutStream outStream;
outStream.Insert(mScene);
if (outStream.Save(pathname))
{
Event *event = EditorEventSpace::CreateEventX(
EditorEventSpace::SavedScene);
EventWorld::GetSingleton().BroadcastingLocalEvent(event);
return true;
}
return false;
}
示例4: Save
//----------------------------------------------------------------------------
bool Project::Save(const std::string &filename)
{
if (!SaveConfig(filename))
return false;
std::string outPath;
std::string outBaseName;
std::string outExt;
StringHelp::SplitFullFilename(filename, outPath, outBaseName, outExt);
if (mUIFrame)
{
std::string outName = outPath + outBaseName + "_ui.px2obj";
OutStream output;
output.Insert(mUIFrame);
output.Save(outName);
}
return false;
}
示例5: Copy
//----------------------------------------------------------------------------
Object* Object::Copy (const std::string& uniqueNameAppend) const
{
// Save the object to a memory buffer.
OutStream saveStream;
saveStream.Insert((Object*)this);
int bufferSize = 0;
char* buffer = 0;
saveStream.Save(bufferSize, buffer, BufferIO::BM_DEFAULT_WRITE);
// Load the object from the memory buffer.
InStream loadStream;
loadStream.Load(bufferSize, buffer, BufferIO::BM_DEFAULT_READ);
delete1(buffer);
if (uniqueNameAppend != "")
{
// The names of the input scene were copied as is. Generate unique
// names for the output scene.
int numObjects = loadStream.GetNumObjects();
for (int i=0; i<numObjects; i++)
{
PX2::Object *obj = loadStream.GetObjectAt(i);
std::string name = obj->GetName();
if (name.length() > 0)
{
// The object has a name. Append a string to make the name
// unique. TODO: This code does not ensure that the
// appended name is some other name in the copied scene. To
// do this would require building a set of names and verifying
// that the appended names are not in this set. For now we
// think this is not worth the effort, but maybe later we can
// add code to do this.
name += uniqueNameAppend;
obj->SetName(name);
}
}
}
return loadStream.GetObjectAt(0);
}
示例6: CreateScene
//.........这里部分代码省略.........
Node* leftUpperArm = GetNode("L_UpperArm");
Node* leftForeArm = GetNode("L_Forearm");
Node* leftHand = GetNode("L_Hand");
Node* rightClavicle = GetNode("R_Clavicle");
Node* rightUpperArm = GetNode("R_UpperArm");
Node* rightForeArm = GetNode("R_Forearm");
Node* rightHand = GetNode("R_Hand");
Node* leftThigh = GetNode("L_Thigh");
Node* leftCalf = GetNode("L_Calf");
Node* leftFoot = GetNode("L_Foot");
Node* leftToe = GetNode("L_Toe");
Node* rightThigh = GetNode("R_Thigh");
Node* rightCalf = GetNode("R_Calf");
Node* rightFoot = GetNode("R_Foot");
Node* rightToe = GetNode("R_Toe");
biped->AttachChild(pelvis);
pelvis->AttachChild(spine);
spine->AttachChild(spine1);
spine1->AttachChild(spine2);
spine2->AttachChild(spine3);
spine3->AttachChild(neck);
neck->AttachChild(head);
// head->AttachChild(hair);
neck->AttachChild(leftClavicle);
leftClavicle->AttachChild(leftUpperArm);
leftUpperArm->AttachChild(leftForeArm);
leftForeArm->AttachChild(leftHand);
// leftUpperArm->AttachChild(leftArm);
neck->AttachChild(rightClavicle);
rightClavicle->AttachChild(rightUpperArm);
rightUpperArm->AttachChild(rightForeArm);
rightForeArm->AttachChild(rightHand);
// rightUpperArm->AttachChild(rightArm);
// spine3->AttachChild(face);
pelvis->AttachChild(leftThigh);
leftThigh->AttachChild(leftCalf);
leftCalf->AttachChild(leftFoot);
leftFoot->AttachChild(leftToe);
// leftCalf->AttachChild(leftShoe);
// leftThigh->AttachChild(leftLeg);
// leftThigh->AttachChild(leftAngle);
pelvis->AttachChild(rightThigh);
rightThigh->AttachChild(rightCalf);
rightCalf->AttachChild(rightFoot);
rightFoot->AttachChild(rightToe);
// rightCalf->AttachChild(rightShoe);
// rightThigh->AttachChild(rightLeg);
// rightThigh->AttachChild(rightAnkle);
// pelvis->AttachChild(shirt);
// pelvis->AttachChild(pants);
// The vertex format is shared among all the triangle meshes.
mVFormat = VertexFormat::Create(2,
VertexFormat::AU_POSITION, VertexFormat::AT_FLOAT3, 0,
VertexFormat::AU_NORMAL, VertexFormat::AT_FLOAT3, 0);
// The TriMesh objects must be created after the Node tree is built,
// because the TriMesh objects have to find the "bones" that correspond
// to them.
TriMesh* hair = GetMesh("Hair",biped);
TriMesh* leftArm = GetMesh("L_Arm",biped);
TriMesh* rightArm = GetMesh("R_Arm",biped);
TriMesh* face = GetMesh("Face",biped);
TriMesh* leftShoe = GetMesh("L_Shoe",biped);
TriMesh* leftLeg = GetMesh("L_Leg",biped);
TriMesh* leftAngle = GetMesh("L_Ankle",biped);
TriMesh* rightShoe = GetMesh("R_Shoe",biped);
TriMesh* rightLeg = GetMesh("R_Leg",biped);
TriMesh* rightAnkle = GetMesh("R_Ankle",biped);
TriMesh* shirt = GetMesh("Shirt",biped);
TriMesh* pants = GetMesh("Pants",biped);
head->AttachChild(hair);
leftUpperArm->AttachChild(leftArm);
rightUpperArm->AttachChild(rightArm);
spine3->AttachChild(face);
leftCalf->AttachChild(leftShoe);
leftThigh->AttachChild(leftLeg);
leftThigh->AttachChild(leftAngle);
rightCalf->AttachChild(rightShoe);
rightThigh->AttachChild(rightLeg);
rightThigh->AttachChild(rightAnkle);
pelvis->AttachChild(shirt);
pelvis->AttachChild(pants);
mScene = new0 Node();
mScene->LocalTransform.SetRotate(HMatrix(AVector::UNIT_Z,
0.25f*Mathf::PI));
mScene->AttachChild(biped);
mScene->Update();
#if 0
// For regenerating the biped WMOF whenever engine streaming changes.
OutStream target;
target.Insert(mScene);
target.Save("SkinnedBipedPN.wmof");
#endif
}