Initial commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using RobotNet.VDA5050.Type;
|
||||
|
||||
namespace RobotNet10.MapEditor.Shared.DTOs.Edge;
|
||||
|
||||
/// <summary>
|
||||
/// Corridor data transfer object for VDA5050 Order
|
||||
/// Maps to: edge.corridor
|
||||
/// Definition of boundaries in which a vehicle can deviate from its trajectory, e.g. to avoid obstacles.
|
||||
/// </summary>
|
||||
public class CorridorDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the width of the corridor in meters to the left related to the trajectory of the vehicle.
|
||||
/// Minimum: 0.0
|
||||
/// </summary>
|
||||
public double? LeftWidth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Defines the width of the corridor in meters to the right related to the trajectory of the vehicle.
|
||||
/// Minimum: 0.0
|
||||
/// </summary>
|
||||
public double? RightWidth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Defines whether the boundaries are valid for the kinematic center or the contour of the vehicle.
|
||||
/// Optional: KINEMATICCENTER, CONTOUR
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public CorridorRefPoint? CorridorRefPoint { get; set; }
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
namespace RobotNet10.MapEditor.Shared.DTOs.Edge;
|
||||
|
||||
/// <summary>
|
||||
/// Edge data transfer object with full details including vehicle properties
|
||||
/// </summary>
|
||||
public class EdgeDto
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid LevelId { get; set; }
|
||||
public string EdgeId { get; set; } = string.Empty;
|
||||
public string? EdgeName { get; set; }
|
||||
public string? EdgeDescription { get; set; }
|
||||
|
||||
public Guid StartNodeId { get; set; }
|
||||
public Guid EndNodeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Start node details (for convenience)
|
||||
/// </summary>
|
||||
public Node.NodeDto? StartNode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// End node details (for convenience)
|
||||
/// </summary>
|
||||
public Node.NodeDto? EndNode { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Vehicle-specific properties for this edge
|
||||
/// </summary>
|
||||
public List<EdgeVehiclePropertyDto>? VehicleProperties { get; set; }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
using System.Text.Json.Serialization;
|
||||
using RobotNet.VDA5050.Type;
|
||||
|
||||
namespace RobotNet10.MapEditor.Shared.DTOs.Edge;
|
||||
|
||||
/// <summary>
|
||||
/// Edge vehicle property data transfer object
|
||||
/// </summary>
|
||||
public class EdgeVehiclePropertyDto
|
||||
{
|
||||
public Guid Id { get; set; }
|
||||
public Guid EdgeId { get; set; }
|
||||
public Guid VehicleTypeId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Vehicle type identifier (for reference)
|
||||
/// </summary>
|
||||
public string? VehicleTypeIdString { get; set; }
|
||||
|
||||
public double? VehicleOrientation { get; set; }
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public OrientationType? OrientationType { get; set; }
|
||||
public bool? RotationAllowed { get; set; }
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public RotationDirection? RotationAtStartNodeAllowed { get; set; }
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public RotationDirection? RotationAtEndNodeAllowed { get; set; }
|
||||
public double? MaxSpeed { get; set; }
|
||||
public double? MaxRotationSpeed { get; set; }
|
||||
public double? MinHeight { get; set; }
|
||||
public double? MaxHeight { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Load restriction for this edge (VDMA LIF: loadRestriction)
|
||||
/// </summary>
|
||||
public LoadRestrictionDto? LoadRestriction { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Trajectory degree (NURBS curve degree) - Optional
|
||||
/// Values: 1 (linear), 2 (quadratic), 3 (cubic)
|
||||
/// </summary>
|
||||
public int? TrajectoryDegree { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Trajectory control point 1 X coordinate (meters) - Optional
|
||||
/// Used for degree 2 and 3 curves
|
||||
/// </summary>
|
||||
public double? TrajectoryControlPoint1X { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Trajectory control point 1 Y coordinate (meters) - Optional
|
||||
/// Used for degree 2 and 3 curves
|
||||
/// </summary>
|
||||
public double? TrajectoryControlPoint1Y { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Trajectory control point 2 X coordinate (meters) - Optional
|
||||
/// Used for degree 3 curves only
|
||||
/// </summary>
|
||||
public double? TrajectoryControlPoint2X { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Trajectory control point 2 Y coordinate (meters) - Optional
|
||||
/// Used for degree 3 curves only
|
||||
/// </summary>
|
||||
public double? TrajectoryControlPoint2Y { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Actions as JSON array (VDMA LIF format)
|
||||
/// </summary>
|
||||
public string? Actions { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Corridor left width (meters) - Optional
|
||||
/// Defines the width of the corridor to the left related to the trajectory
|
||||
/// </summary>
|
||||
public double? CorridorLeftWidth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Corridor right width (meters) - Optional
|
||||
/// Defines the width of the corridor to the right related to the trajectory
|
||||
/// </summary>
|
||||
public double? CorridorRightWidth { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Corridor reference point (VDA5050: corridorRefPoint) - Optional
|
||||
/// Defines whether the boundaries are valid for the kinematic center or the contour of the vehicle
|
||||
/// Values: KINEMATICCENTER, CONTOUR
|
||||
/// </summary>
|
||||
[JsonConverter(typeof(JsonStringEnumConverter))]
|
||||
public CorridorRefPoint? CorridorRefPoint { get; set; }
|
||||
}
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
namespace RobotNet10.MapEditor.Shared.DTOs.Edge;
|
||||
|
||||
/// <summary>
|
||||
/// Load restriction data transfer object for VDMA LIF
|
||||
/// Maps to: edge.vehicleTypeEdgeProperties[].loadRestriction
|
||||
/// </summary>
|
||||
public class LoadRestrictionDto
|
||||
{
|
||||
/// <summary>
|
||||
/// Indicates if the edge can be traversed without a load
|
||||
/// </summary>
|
||||
public bool? Unloaded { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the edge can be traversed with a load
|
||||
/// </summary>
|
||||
public bool? Loaded { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Names of the load sets allowed on this edge (optional)
|
||||
/// </summary>
|
||||
public List<string>? LoadSetNames { get; set; }
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user