//---------------------------------------------------------------------------- void KeyframeController::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); TransformController::Save(target); target.Write(mNumCommonTimes); if (mNumCommonTimes > 0) { target.WriteN(mNumCommonTimes, mCommonTimes); target.WriteAggregateW(mNumTranslations, mTranslations); target.WriteAggregateW(mNumRotations, mRotations); target.WriteW(mNumScales, mScales); } else { target.WriteW(mNumTranslations, mTranslationTimes); target.WriteAggregateN(mNumTranslations, mTranslations); target.WriteW(mNumRotations, mRotationTimes); target.WriteAggregateN(mNumRotations, mRotations); target.WriteW(mNumScales, mScaleTimes); target.WriteN(mNumScales, mScales); } WM5_END_DEBUG_STREAM_SAVE(KeyframeController, target); }
//---------------------------------------------------------------------------- void FloatArray::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); Object::Save(target); target.WriteW(mNumElements, mElements); WM5_END_DEBUG_STREAM_SAVE(FloatArray, target); }
//---------------------------------------------------------------------------- void PlanarReflectionEffect::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); GlobalEffect::Save(target); target.WriteW(mNumPlanes, mReflectances); target.WritePointerN(mNumPlanes, mPlanes); WM5_END_DEBUG_STREAM_SAVE(PlanarReflectionEffect, target); }
//---------------------------------------------------------------------------- void ShaderFloat::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); Object::Save(target); target.WriteW(mNumElements, mData); target.WriteBool(mAllowUpdater); WM5_END_DEBUG_STREAM_SAVE(ShaderFloat, target); }
//---------------------------------------------------------------------------- void Particles::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); TriMesh::Save(target); target.WriteW(mNumParticles, mPositionSizes); target.Write(mSizeAdjust); target.Write(mNumActive); WM5_END_DEBUG_STREAM_SAVE(Particles, target); }
//---------------------------------------------------------------------------- void Buffer::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); Object::Save(target); target.Write(mNumElements); target.Write(mElementSize); target.WriteEnum(mUsage); target.WriteW(mNumBytes, mData); WM5_END_DEBUG_STREAM_SAVE(Buffer, target); }
//---------------------------------------------------------------------------- void DlodNode::Save (OutStream& target) const { PX2_BEGIN_DEBUG_STREAM_SAVE(target); SwitchNode::Save(target); target.WriteAggregate(mModelLodCenter); target.WriteW(mNumLevelsOfDetail, mModelMinDist); target.WriteN(mNumLevelsOfDetail, mModelMaxDist); target.WriteN(mNumLevelsOfDetail, mWorldMinDist); target.WriteN(mNumLevelsOfDetail, mWorldMaxDist); // 模型世界中心为实时计算,不需要存储。 PX2_END_DEBUG_STREAM_SAVE(DlodNode, target); }
//---------------------------------------------------------------------------- void Portal::Save (OutStream& target) const { WM5_BEGIN_DEBUG_STREAM_SAVE(target); Object::Save(target); target.WriteW(mNumVertices, mModelVertices); target.WriteAggregate(mModelPlane); target.WriteBool(Open); target.WritePointer(AdjacentRegion); // World vertices are computed form model vertices in the update call, // so no need to save them. The world plane is also computed in the // update call, so no need to save it. WM5_END_DEBUG_STREAM_SAVE(Portal, target); }