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 InfoCommand(SlamDataInfoPresenter presenter, PacketPb packet, ICSConverter converter)
 {
     _presenter = presenter;
     _packet = packet;
     _converter = converter;
 }
 public InfoParser(SlamDataInfoPresenter presenter)
 {
     _presenter = presenter;
 }