Any Entity::toAny() const { Any a = m_sourceAny; debugAssert(! a.isNil()); if (a.isNil()) { // Fallback for release mode failure return a; } if (m_movedSinceLoad) { a["frame"] = m_frame; } const shared_ptr<SplineTrack>& splineTrack = dynamic_pointer_cast<SplineTrack>(m_track); if (notNull(splineTrack) && splineTrack->changed()) { // Update the spline const PhysicsFrameSpline& spline = splineTrack->spline(); if (spline.control.size() == 1) { // Write out in short form for the single control point const PhysicsFrame& p = spline.control[0]; if (p.rotation == Quat()) { // No rotation a["track"] = p.translation; } else { // Full coordinate frame a["track"] = CFrame(p); } } else { // Write the full spline a["track"] = spline; } } a.setName("Entity"); return a; }