using Microsoft.VisualStudio.DebuggerVisualizers; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Numerics; namespace NrxVisualizerObjectSource; public class NrxVisualizerObjectSource : VisualizerObjectSource { public NrxVisualizerObjectSource() { Debug.WriteLine("new Vector3ObjectSource"); } public override void GetData(object target, Stream outgoingData) { Debug.WriteLine("GetData: objectType is: " + target.GetType().FullName); Vector3Model vector3Model = new(); switch (target) { case Vector3 vector3: vector3Model.Vector3 = vector3; break; case IEnumerable vector3List: vector3Model.Vector3 = vector3List.Last(); break; case Quaternion quaternion: vector3Model.Quaternion = quaternion; break; } SerializeAsJson(outgoingData, vector3Model); } public override object CreateReplacementObject(object target, Stream incomingData) { return base.CreateReplacementObject(target, incomingData); } public override void TransferData(object target, Stream incomingData, Stream outgoingData) { base.TransferData(target, incomingData, outgoingData); } }