public ObjectsParser(IContainer <SlamInfinitePlane> infinitePlanes, IConnectableObjectsContainer <SlamPoint> points, IConnectableObjectsContainer <SlamObservation> observations, string imagePath) { _infinitePlanes = infinitePlanes; _points = points; _observations = observations; _imagePath = imagePath; }
private ICommand GetCommandForConnectableObjects <TCloudItem, TCloudItemDiff>( IConnectableObjectsContainer <TCloudItem> map, IList <TCloudItemDiff> objects, PacketPb packet) where TCloudItem : struct, ICloudItem where TCloudItemDiff : struct, ICloudItemDiff <TCloudItem> { if (objects is null || objects.Count == 0) { return(null); } switch (packet.Action) { case PacketPb.Types.ActionType.Add: return(new AddCommand <TCloudItem, TCloudItemDiff>(map, objects)); case PacketPb.Types.ActionType.Update: var commands = new List <ICommand>(); if (packet.Connections != null) { var connections = packet.Connections.Data.Select(c => (c.Id1, c.Id2)).ToArray(); switch (packet.Connections.Action) { case PacketPb.Types.Connections.Types.Action.Add: commands.Add(new AddConnectionsCommand <TCloudItem>(map, connections)); break; case PacketPb.Types.Connections.Types.Action.Remove: commands.Add(new RemoveConnectionsCommand <TCloudItem>(map, connections)); break; } } commands.Add(new UpdateCommand <TCloudItem, TCloudItemDiff>(map, objects)); return(new MacroCommand(commands)); case PacketPb.Types.ActionType.Remove: return(new ConnectableRemoveCommand <TCloudItem, TCloudItemDiff>(map, objects)); case PacketPb.Types.ActionType.Clear: return(new ConnectableClearCommand <TCloudItem>(map)); default: return(null); } }
public ProtobufContainerTree(string displayName, ISourceTree image, SlamDataInfoPresenter specialInfo = null) { DisplayName = displayName; Image = image; SpecialInfo = specialInfo; TrackedObjs = new TrackedObjectsContainer("Tracked objects"); Observations = new ConnectableObjectsContainer <SlamObservation>( new CloudContainer <SlamObservation>("Points"), new SlamLinesContainer("Connections"), "Observations"); Points = new ConnectableObjectsContainer <SlamPoint>( new CloudContainer <SlamPoint>("Points"), new SlamLinesContainer("Connections"), "Points"); Connector = new Connector(Points, Observations, "Connections"); Lines = new SlamLinesContainer("Lines"); MeshContainer = new MeshReconstructor(Points, "Mesh"); InfinitePlanes = new CloudContainer <SlamInfinitePlane>("Infinite planes"); var observationsGraph = new VirtualContainer("Observations graph", new List <ISourceTree> { (ISourceTree)Observations, Connector }); var ch = new List <ISourceTree> { (ISourceTree)Points, (ISourceTree)TrackedObjs, (ISourceTree)InfinitePlanes, observationsGraph, (ISourceTree)Lines, MeshContainer, Image, }; if (SpecialInfo != null) { ch.Add(SpecialInfo); } Children = ch.ToArray(); }
public PointsMapManager(IConnectableObjectsContainer <SlamPoint> container, ICSConverter converter) : base(container) { _converter = converter; }
protected ConnectableObjectsMapManager(IConnectableObjectsContainer <TCloudItem> container) : base(container) { _connectableContainer = container; }
public ObservationsMapManager(IConnectableObjectsContainer <SlamObservation> container, ICSConverter converter) : base(container) { _converter = converter; }