using System; using System.Collections.Generic; using System.Text; using static CommonUsage.Protocols.VDA5050.Objects.agvGeometry; namespace CommonUsage.Protocols.VDA5050.Objects { public class agvGeometry { // Wheel Definitions public List wheelDefinitions { get; set; } = new List(); // 2D Envelopes public List envelopes2D { get; set; } = new List(); // 3D Envelopes public List envelopes3D { get; set; } = new List(); public class wheelDefinition { public enum WheelType { DRIVE, CASTER, FIXED, MECANUM } public WheelType type { get; set; } public bool isActiveDriven { get; set; } public bool isActiveSteered { get; set; } // Wheel Position public double positionX { get; set; } public double positionY { get; set; } public double positionTheta { get; set; } // Required for fixed wheels // Wheel Properties public double diameter { get; set; } public double width { get; set; } public double centerDisplacement { get; set; } = 0; // Default to 0 if not defined public string constraints { get; set; } } public class envelope2D { public string set { get; set; } public List polygonPoints { get; set; } = new List(); public string description { get; set; } public class polygonPoint { public double x { get; set; } public double y { get; set; } } } public class envelope3D { public string set { get; set; } public string format { get; set; } public object data { get; set; } // JSON object for 3D envelope data public string url { get; set; } public string description { get; set; } } } }