Using static NamedPipeClient? PipeClient { get; set; } in Vector3DebuggerVisualizerProvider works.

new VisualizerTargetType("Frame Array Visualizer", "Num.Roto.Visualization.Math.Geometry.Frame[]
This commit is contained in:
Matthias Heil
2026-04-01 15:47:54 +02:00
parent cce0740f72
commit 406a0f4067
12 changed files with 111 additions and 41 deletions

View File

@@ -1,12 +1,13 @@
using System.Runtime.Serialization;
using System.Numerics;
using System.Runtime.Serialization;
namespace Vector3VisualizerSource;
[DataContract]
public class Vector3Model
{
[DataMember]
public string Vector3 { get; set; } = "Null";
public Vector3? Vector3 { get; set; }
[DataMember]
public string Quaternion { get; set; } = "Null";
public Quaternion? Quaternion { get; set;}
}

View File

@@ -1,42 +1,35 @@
using Microsoft.VisualStudio.DebuggerVisualizers;
using NamedPipes;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Numerics;
namespace Vector3VisualizerSource;
public class Vector3ObjectSource : VisualizerObjectSource
{
private static NamedPipeClient? PipeClient { get; set; }
private static void Send(Vector3Model vector3Model)
{
PipeClient ??= new NamedPipeClient("testPipe");
PipeClient.SetMessageAsync($"Hello from {nameof(Vector3ObjectSource)}").GetAwaiter().GetResult();
}
public Vector3ObjectSource()
{
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.ToString();
vector3Model.Vector3 = vector3;
break;
case IEnumerable<Vector3> vector3List:
vector3Model.Vector3 = vector3List.Last().ToString();
vector3Model.Vector3 = vector3List.Last();
break;
case Quaternion quaternion:
vector3Model.Quaternion = quaternion.ToString();
vector3Model.Quaternion = quaternion;
break;
}
Send(vector3Model);
SerializeAsJson(outgoingData, vector3Model);
}
}