Example #1
0
    public override int GetHashCode()
    {
        int hash = 1;

        if (header_ != null)
        {
            hash ^= Header.GetHashCode();
        }
        if (leftImage_ != null)
        {
            hash ^= LeftImage.GetHashCode();
        }
        if (rightImage_ != null)
        {
            hash ^= RightImage.GetHashCode();
        }
        if (pointCloud_ != null)
        {
            hash ^= PointCloud.GetHashCode();
        }
        if (navSatFix_ != null)
        {
            hash ^= NavSatFix.GetHashCode();
        }
        if (odometry_ != null)
        {
            hash ^= Odometry.GetHashCode();
        }
        return(hash);
    }
Example #2
0
 public StereoImage <TColor, TDepth> Copy()
 {
     return(new StereoImage <TColor, TDepth>
     {
         Name = Name,
         LeftImage = LeftImage.Copy(),
         RightImage = RightImage.Copy()
     });
 }
Example #3
0
 public StereoImage <TOtherColor, TOtherDepth> Convert <TOtherColor, TOtherDepth>()
     where TOtherColor : struct, IColor
     where TOtherDepth : new()
 {
     return(new StereoImage <TOtherColor, TOtherDepth>
     {
         LeftImage = LeftImage.Convert <TOtherColor, TOtherDepth>(),
         RightImage = RightImage.Convert <TOtherColor, TOtherDepth>()
     });
 }
Example #4
0
 public void MergeFrom(SEVData other)
 {
     if (other == null)
     {
         return;
     }
     if (other.header_ != null)
     {
         if (header_ == null)
         {
             header_ = new global::Header();
         }
         Header.MergeFrom(other.Header);
     }
     if (other.leftImage_ != null)
     {
         if (leftImage_ == null)
         {
             leftImage_ = new global::Image();
         }
         LeftImage.MergeFrom(other.LeftImage);
     }
     if (other.rightImage_ != null)
     {
         if (rightImage_ == null)
         {
             rightImage_ = new global::Image();
         }
         RightImage.MergeFrom(other.RightImage);
     }
     if (other.pointCloud_ != null)
     {
         if (pointCloud_ == null)
         {
             pointCloud_ = new global::PointCloud2();
         }
         PointCloud.MergeFrom(other.PointCloud);
     }
     if (other.navSatFix_ != null)
     {
         if (navSatFix_ == null)
         {
             navSatFix_ = new global::NavSatFix();
         }
         NavSatFix.MergeFrom(other.NavSatFix);
     }
     if (other.odometry_ != null)
     {
         if (odometry_ == null)
         {
             odometry_ = new global::Odometry();
         }
         Odometry.MergeFrom(other.Odometry);
     }
 }
Example #5
0
        protected override SizeF ArrangeOverride(SizeF finalSize)
        {
            float x = (finalSize.Width - DesiredSize.Width) / 2;
            float y = (finalSize.Height - DesiredSize.Height) / 2;

            CenterBackgroundImage.Arrange(GetImageRect(x, y, CenterBackgroundImage));
            LeftImage.Arrange(GetImageRect(x, y, LeftImage));
            RightImage.Arrange(GetImageRect(x, y, RightImage));
            TopImage.Arrange(GetImageRect(x, y, TopImage));
            BottomImage.Arrange(GetImageRect(x, y, BottomImage));
            FillImage.Arrange(GetImageRect(x, y, FillImage));

            return(finalSize);
        }
Example #6
0
        void ReleaseDesignerOutlets()
        {
            if (LeftImage != null)
            {
                LeftImage.Dispose();
                LeftImage = null;
            }

            if (rootView != null)
            {
                rootView.Dispose();
                rootView = null;
            }

            if (TitleLable != null)
            {
                TitleLable.Dispose();
                TitleLable = null;
            }
        }
Example #7
0
    private void Window_Loaded(object sender, RoutedEventArgs e)
    {
        #region Size check

        var left  = NewList[0].Path.SourceFrom();
        var right = CurrentList[0].Path.SourceFrom();

        //Left: New, Right: Current
        LeftImage.Source  = left;
        RightImage.Source = right;

        //The image should be displayed based on the scale of the screen.
        _leftScale  = Math.Round(left.DpiX / 96d, 2);
        _rightScale = Math.Round(right.DpiX / 96d, 2);
        var scale = this.Scale();

        _leftDpi  = left.DpiX;
        _rightDpi = right.DpiX;

        _leftScaleDiff  = Math.Round(scale / _leftScale, 2);
        _rightScaleDiff = Math.Round(scale / _rightScale, 2);

        LeftImage.Width  = _leftWidth = left.Width / _leftScaleDiff;
        LeftImage.Height = _leftHeight = left.Height / _leftScaleDiff;

        RightImage.Width  = _rightWidth = right.Width / _rightScaleDiff;
        RightImage.Height = _rightHeight = right.Height / _rightScaleDiff;

        #endregion

        CanvasSizeTextBlock.Text     = $"{right.PixelWidth} × {right.PixelHeight} • {Math.Round(left.DpiX, 0)} {LocalizationHelper.Get("S.Resize.Dpi")}";
        LeftImageSizeTextBlock.Text  = $"{left.PixelWidth} × {left.PixelHeight} • {Math.Round(left.DpiX, 0)} {LocalizationHelper.Get("S.Resize.Dpi")}";
        RightImageSizeTextBlock.Text = $"{right.PixelWidth} × {right.PixelHeight} • {Math.Round(right.DpiX, 0)} {LocalizationHelper.Get("S.Resize.Dpi")}";

        #region Initial sizing

        LeftImage.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
        LeftImage.Arrange(new Rect(new Point(0, 0), LeftImage.DesiredSize));
        RightImage.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
        RightImage.Arrange(new Rect(new Point(0, 0), RightImage.DesiredSize));

        if (Math.Abs(LeftImage.ActualWidth - RightImage.ActualWidth) > 0.01 || Math.Abs(LeftImage.ActualHeight - RightImage.ActualHeight) > 0.01)
        {
            StatusBand.Warning(LocalizationHelper.Get("S.InsertFrames.DifferentSizes"));
        }

        LeftCanvas.Width  = LeftImage.ActualWidth;
        LeftCanvas.Height = LeftImage.ActualHeight;

        RightCanvas.Width  = RightImage.ActualWidth;
        RightCanvas.Height = RightImage.ActualHeight;

        EqualizeSizes();

        #endregion

        MouseLeftButtonDown += Unselect_MouseLeftButtonDown;

        LeftImage.MouseLeftButtonDown  += Select_PreviewMouseLeftButtonDown;
        LeftCanvas.MouseLeftButtonDown += Select_PreviewMouseLeftButtonDown;

        RightImage.MouseLeftButtonDown  += Select_PreviewMouseLeftButtonDown;
        RightCanvas.MouseLeftButtonDown += Select_PreviewMouseLeftButtonDown;

        LeftCanvas.SizeChanged  += Canvas_SizeChanged;
        RightCanvas.SizeChanged += Canvas_SizeChanged;

        UpdateLayout();
    }
Example #8
0
        public void PrepareSources(WhoIs w, Side s)
        {
            if (CurrentType == DecalType.Rock && w == WhoIs.Ground)
            {
                Vector3 v3 = new Vector3();
                switch (s)
                {
                //x и -y указывают на ячейку Sand левый верхний угол
                case Side.Down:

                    //rght h=hor t=top

                    v3.x           = (float)x / 10;
                    v3.y           = (float)-y / 10;
                    v3.z           = 0;
                    DownImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    DownImage.name = x + "_" + y + "DecalDownImage_";
                    DownImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[29];
                    DownImage.GetComponent <SpriteRenderer>().sortingOrder = 1;

                    break;

                case Side.Left:
                    //rgvl v=vert l=left
                    v3.x           = (float)x / 10;
                    v3.y           = (float)-y / 10;
                    v3.z           = 0;
                    LeftImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    LeftImage.name = x + "_" + y + "DecalLeftImage_";

                    LeftImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[37];
                    LeftImage.GetComponent <SpriteRenderer>().sortingOrder = 1;
                    break;

                case Side.Right:
                    //rgvr
                    v3.x            = (float)x / 10 + 0.06f;
                    v3.y            = (float)-y / 10;
                    v3.z            = 0;
                    RightImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    RightImage.name = x + "_" + y + "DecalRightImage_";
                    RightImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[28];
                    RightImage.GetComponent <SpriteRenderer>().sortingOrder = 1;
                    break;

                case Side.Up:
                    //rghd
                    v3.x         = (float)x / 10;
                    v3.y         = (float)-y / 10 - 0.07f;
                    v3.z         = 0;
                    UpImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    UpImage.name = x + "_" + y + "DecalUpImage_";
                    UpImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[34];
                    UpImage.GetComponent <SpriteRenderer>().sortingOrder = 1;
                    break;
                }
            }
            if (CurrentType == DecalType.Sand && w == WhoIs.Ground)
            {
                Vector3 v3 = new Vector3();
                switch (s)
                {
                //x и -y указывают на ячейку Sand левый верхний угол
                case Side.Down:

                    //gght h=hor t=top

                    v3.x           = (float)x / 10;
                    v3.y           = (float)-y / 10;
                    v3.z           = 0;
                    DownImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    DownImage.name = x + "_" + y + "DecalDownImage_";
                    DownImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[36];
                    DownImage.GetComponent <SpriteRenderer>().sortingOrder = 1;

                    break;

                case Side.Left:
                    //ggvl v=vert l=left
                    v3.x           = (float)x / 10;
                    v3.y           = (float)-y / 10;
                    v3.z           = 0;
                    LeftImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    LeftImage.name = x + "_" + y + "DecalLeftImage_";

                    LeftImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[35];
                    LeftImage.GetComponent <SpriteRenderer>().sortingOrder = 1;
                    break;

                case Side.Right:
                    //ggvr
                    v3.x            = (float)x / 10 + 0.06f;
                    v3.y            = (float)-y / 10;
                    v3.z            = 0;
                    RightImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    RightImage.name = x + "_" + y + "DecalRightImage_";
                    RightImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[25];
                    RightImage.GetComponent <SpriteRenderer>().sortingOrder = 1;
                    break;

                case Side.Up:
                    //gghd
                    v3.x         = (float)x / 10;
                    v3.y         = (float)-y / 10 - 0.07f;
                    v3.z         = 0;
                    UpImage      = (GameObject)MonoBehaviour.Instantiate(prefab, v3, Quaternion.identity);
                    UpImage.name = x + "_" + y + "DecalUpImage_";
                    UpImage.GetComponent <SpriteRenderer>().sprite       = StaticSpriteCache.sprites[26];
                    UpImage.GetComponent <SpriteRenderer>().sortingOrder = 1;
                    break;
                }
            }
            //switch (CurrentType)
            //{
            //    case DecalType.Rock & w == WhoIs.Bomb:
            //        switch (s)
            //        {
            //            case Side.Down:
            //                DownImage.Source = ResCache.Brick(18, 4);
            //                break;
            //            case Side.Left:
            //                LeftImage.Source = ResCache.Brick(18, 5);
            //                break;
            //            case Side.Right:
            //                RightImage.Source = ResCache.Brick(18, 6);
            //                break;
            //            case Side.Up:
            //                UpImage.Source = ResCache.Brick(18, 3);
            //                break;
            //        }
            //        break;
            //    //SetUpImagesRockBlack()
            //    case DecalType.Sand && w == WhoIs.Bomb:
            //        switch (s)
            //        {
            //            case Side.Down:
            //                DownImage.Source = ResCache.Brick(18, 2);
            //                break;
            //            case Side.Left:
            //                LeftImage.Source = ResCache.Brick(17, 10);
            //                break;
            //            case Side.Right:
            //                RightImage.Source = ResCache.Brick(18, 1);
            //                break;
            //            case Side.Up:
            //                UpImage.Source = ResCache.Brick(17, 9);
            //                break;
            //        }
            //        break;
            //    //SetUpImagesSandBlack()
            //    case DecalType.Rock & w == WhoIs.Ground:
            //        switch (s)
            //        {
            //            case Side.Down:
            //                DownImage.Source = ResCache.Brick(17, 5);
            //                break;
            //            case Side.Left:
            //                LeftImage.Source = ResCache.Brick(17, 6);
            //                break;
            //            case Side.Right:
            //                RightImage.Source = ResCache.Brick(17, 7);
            //                break;
            //            case Side.Up:
            //                UpImage.Source = ResCache.Brick(17, 4);
            //                break;
            //        }
            //        break;
            //    //SetUpImagesRock()
            //    case DecalType.Sand & w == WhoIs.Ground:
            //        switch (s)
            //        {
            //            case Side.Down:
            //                DownImage.Source = ResCache.Brick(17, 3);
            //                break;
            //            case Side.Left:
            //                LeftImage.Source = ResCache.Brick(17, 1);
            //                break;
            //            case Side.Right:
            //                RightImage.Source = ResCache.Brick(17, 2);
            //                break;
            //            case Side.Up:
            //                UpImage.Source = ResCache.Brick(17, 0);
            //                break;
            //        }
            //        break;
            //    //SetUpImagesSand()
            //}
        }
Example #9
0
 private void LeftImageButtonClick(object sender, EventArgs e)
 {
     LeftImage?.Invoke(sender, e);
     SetPictureBoxImage();
 }