MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / exportSequence

Method exportSequence

Engine/source/ts/tsShapeOldRead.cpp:296–425  ·  view source on GitHub ↗

------------------------------------------------- export a single sequence -------------------------------------------------

Source from the content-addressed store, hash-verified

294// export a single sequence
295//-------------------------------------------------
296void TSShape::exportSequence(Stream * s, const TSShape::Sequence& seq, bool saveOldFormat)
297{
298 S32 currentVersion = smVersion;
299 if ( saveOldFormat )
300 smVersion = 24;
301
302 // write version
303 s->write(smVersion);
304
305 // write node names
306 s->write( nodes.size() );
307 for ( S32 i = 0; i < nodes.size(); i++ )
308 writeName( s, nodes[i].nameIndex );
309
310 // legacy write -- write zero objects, don't pretend to support object export anymore
311 s->write( (S32)0 );
312
313 // on import, we will need to adjust keyframe data based on number of
314 // nodes/objects in this shape...number of nodes can be inferred from
315 // above, but number of objects cannot be. Write that quantity here:
316 s->write( objects.size() );
317
318 // write node states -- skip default node states
319 S32 count = seq.rotationMatters.count() * seq.numKeyframes;
320 s->write( count );
321 for ( S32 i = seq.baseRotation; i < seq.baseRotation + count; i++ )
322 {
323 s->write( nodeRotations[i].x );
324 s->write( nodeRotations[i].y );
325 s->write( nodeRotations[i].z );
326 s->write( nodeRotations[i].w );
327 }
328
329 count = seq.translationMatters.count() * seq.numKeyframes;
330 s->write( count );
331 for ( S32 i = seq.baseTranslation; i < seq.baseTranslation + count; i++ )
332 {
333 s->write( nodeTranslations[i].x );
334 s->write( nodeTranslations[i].y );
335 s->write( nodeTranslations[i].z );
336 }
337
338 count = seq.scaleMatters.count() * seq.numKeyframes;
339 if ( seq.animatesUniformScale() )
340 {
341 s->write( count );
342 for ( S32 i = seq.baseScale; i < seq.baseScale + count; i++ )
343 s->write( nodeUniformScales[i] );
344 }
345 else
346 s->write( (S32)0 );
347
348 if ( seq.animatesAlignedScale() )
349 {
350 s->write( count );
351 for ( S32 i = seq.baseScale; i < seq.baseScale + count; i++ )
352 {
353 s->write( nodeAlignedScales[i].x );

Callers 1

TorqueMainFunction · 0.80

Calls 6

writeMethod · 0.45
sizeMethod · 0.45
countMethod · 0.45
animatesUniformScaleMethod · 0.45
animatesAlignedScaleMethod · 0.45

Tested by

no test coverage detected