MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / Deserialize

Method Deserialize

Source/Engine/Physics/Joints/D6Joint.cpp:287–345  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

285}
286
287void D6Joint::Deserialize(DeserializeStream& stream, ISerializeModifier* modifier)
288{
289 // Base
290 Joint::Deserialize(stream, modifier);
291
292 char motionLabel[8] = "Motion?";
293 for (int32 i = 0; i < 6; i++)
294 {
295 motionLabel[6] = '0' + i;
296 JsonTools::GetEnum(_motion[i], stream, motionLabel);
297 }
298 static_assert(ARRAY_COUNT(_motion) == 6, "Invalid motion array size");
299
300 //
301
302 char driveLabel_Stiffness[17] = "Drive?.Stiffness";
303 char driveLabel_Damping[17] = "Drive?.Damping";
304 char driveLabel_ForceLimit[18] = "Drive?.ForceLimit";
305 char driveLabel_Acceleration[20] = "Drive?.Acceleration";
306 for (int32 i = 0; i < 6; i++)
307 {
308 driveLabel_Stiffness[5] = '0' + i;
309 driveLabel_Damping[5] = '0' + i;
310 driveLabel_ForceLimit[5] = '0' + i;
311 driveLabel_Acceleration[5] = '0' + i;
312
313 JsonTools::GetFloat(_drive[i].Stiffness, stream, driveLabel_Stiffness);
314 JsonTools::GetFloat(_drive[i].Damping, stream, driveLabel_Damping);
315 JsonTools::GetFloat(_drive[i].ForceLimit, stream, driveLabel_ForceLimit);
316 JsonTools::GetBool(_drive[i].Acceleration, stream, driveLabel_Acceleration);
317 }
318 static_assert(ARRAY_COUNT(_drive) == 6, "Invalid drive array size");
319
320 //
321
322 JsonTools::GetFloat(_limitLinear.Extent, stream, "LimitLinear.Extent");
323 JsonTools::GetFloat(_limitLinear.Restitution, stream, "LimitLinear.Restitution");
324 JsonTools::GetFloat(_limitLinear.ContactDist, stream, "LimitLinear.ContactDist");
325 JsonTools::GetFloat(_limitLinear.Spring.Stiffness, stream, "LimitLinear.Stiffness");
326 JsonTools::GetFloat(_limitLinear.Spring.Damping, stream, "LimitLinear.Damping");
327
328 //
329
330 JsonTools::GetFloat(_limitTwist.Lower, stream, "LimitTwist.Lower");
331 JsonTools::GetFloat(_limitTwist.Upper, stream, "LimitTwist.Upper");
332 JsonTools::GetFloat(_limitTwist.Restitution, stream, "LimitTwist.Restitution");
333 JsonTools::GetFloat(_limitTwist.ContactDist, stream, "LimitTwist.ContactDist");
334 JsonTools::GetFloat(_limitTwist.Spring.Stiffness, stream, "LimitTwist.Stiffness");
335 JsonTools::GetFloat(_limitTwist.Spring.Damping, stream, "LimitTwist.Damping");
336
337 //
338
339 JsonTools::GetFloat(_limitSwing.YLimitAngle, stream, "LimitSwing.YLimitAngle");
340 JsonTools::GetFloat(_limitSwing.ZLimitAngle, stream, "LimitSwing.ZLimitAngle");
341 JsonTools::GetFloat(_limitSwing.Restitution, stream, "LimitSwing.Restitution");
342 JsonTools::GetFloat(_limitSwing.ContactDist, stream, "LimitSwing.ContactDist");
343 JsonTools::GetFloat(_limitSwing.Spring.Stiffness, stream, "LimitSwing.Stiffness");
344 JsonTools::GetFloat(_limitSwing.Spring.Damping, stream, "LimitSwing.Damping");

Callers

nothing calls this directly

Calls 4

GetEnumFunction · 0.85
DeserializeFunction · 0.50
GetFloatFunction · 0.50
GetBoolFunction · 0.50

Tested by

no test coverage detected