Example #1
0
        public AffineMesh ToZoom(AffineZoom Zoom)
        {
            var n = new AffineMesh();

            foreach (var p in this.Points)
            {
                n.Add(p.Zoom(Zoom));
            }

            var v = new List <AffineVertex>();

            foreach (var k in this.Vertecies)
            {
                var kn = new AffineVertex
                {
                    Element       = k.Element,
                    ElementWidth  = k.ElementWidth,
                    ElementHeight = k.ElementHeight,
                    A             = k.A.Zoom(Zoom),
                    B             = k.B.Zoom(Zoom),
                    C             = k.C.Zoom(Zoom),
                    //Tag = k.Tag
                };

                v.Add(kn);
            }

            n.Vertecies = v;


            return(n);
        }
        public AffineMesh ToTranslation(AffinePoint Translation)
        {
            var n = new AffineMesh();

            foreach (var p in this.Points)
            {
                n.Points.Add(p.Translation(Translation));
            }


            foreach (var k in this.Vertecies)
            {
                var kn = new AffineVertex
                {
                    Element       = k.Element,
                    ElementWidth  = k.ElementWidth,
                    ElementHeight = k.ElementHeight,
                    A             = k.A.Translation(Translation),
                    B             = k.B.Translation(Translation),
                    C             = k.C.Translation(Translation),
                    //Tag = k.Tag
                };

                n.Vertecies.Add(kn);
            }


            foreach (var p in this.Meshes)
            {
                n.Meshes.Add(p.ToTranslation(Translation));
            }


            return(n);
        }
Example #3
0
        public AffineMesh ToRotation(AffineRotation Rotation)
        {
            //var yawn = Math.Cos(Yawn);
            //var yawn2 = Math.Sin(Yawn);

            var n = new AffineMesh();

            foreach (var p in this.Points)
            {
                n.Add(p.Rotate(Rotation));
            }

            var v = new List <AffineVertex>();

            foreach (var k in this.Vertecies)
            {
                var kn = new AffineVertex
                {
                    Element       = k.Element,
                    ElementWidth  = k.ElementWidth,
                    ElementHeight = k.ElementHeight,
                    A             = k.A.Rotate(Rotation),
                    B             = k.B.Rotate(Rotation),
                    C             = k.C.Rotate(Rotation),
                    //Tag = k.Tag
                };

                v.Add(kn);
            }

            n.Vertecies = v.OrderBy(k => k.Center.Z).ToList();
            //n.Vertecies = v;

            return(n);
        }
        public void MergeTo(AffineMesh n)
        {
            foreach (var p in this.Points)
            {
                n.Points.Add(p);
            }


            foreach (var k in this.Vertecies)
            {
                var kn = new AffineVertex
                {
                    Element       = k.Element,
                    ElementWidth  = k.ElementWidth,
                    ElementHeight = k.ElementHeight,
                    A             = k.A,
                    B             = k.B,
                    C             = k.C,
                    //Tag = k.Tag
                };

                n.Vertecies.Add(kn);
            }


            foreach (var p in this.Meshes)
            {
                p.MergeTo(n);
            }
        }
        public AffineVertex[] GetSortedCombinedVertices()
        {
            // da buffer
            var a = new AffineVertex[SortBuffer];

            GetSortedCombinedVertices(this, a);

            return(a);
        }
Example #6
0
        private void AddCubeFace(AffineMesh a, ImageSource Source, ImageSource Source2, AffinePoint A, AffinePoint B, AffinePoint C, AffinePoint D)
        {
            var v1 =
                new AffineVertex
            {
                A = A,
                B = B,
                C = C,

                Element = new Image
                {
                    Width  = 100,
                    Height = 100,
                    Source = Source
                }.AttachTo(AffineContent),
                ElementWidth  = 100,
                ElementHeight = 100
            };



            a.Vertecies.Add(v1);

            var v2 =
                new AffineVertex
            {
                A = D,
                B = C,
                C = B,

                Element = new Image
                {
                    Width  = 100,
                    Height = 100,
                    Source = Source2
                }.AttachTo(AffineContent),
                ElementWidth  = 100,
                ElementHeight = 100
            };



            a.Vertecies.Add(v2);
        }
Example #7
0
        private void AddCubeFace(AffineMesh a, string t, AffinePoint A, AffinePoint B, AffinePoint C, AffinePoint D)
        {
            var v1 =
                new AffineVertex
            {
                A = A,
                B = B,
                C = C,

                Element = new Avalon.Images._17
                {
                    Width  = 100,
                    Height = 100,
                }.AttachTo(AffineContent),
                ElementWidth  = 100,
                ElementHeight = 100
            };

            a.Vertecies.Add(v1);

            var v2 =
                new AffineVertex
            {
                A = D,
                B = C,
                C = B,

                Element = new Avalon.Images._17g
                {
                    Width  = 100,
                    Height = 100,
                }.AttachTo(AffineContent),
                ElementWidth  = 100,
                ElementHeight = 100
            };



            a.Vertecies.Add(v2);
        }
        public AffineMesh ToRotation(AffineRotation Rotation)
        {
            //var yawn = Math.Cos(Yawn);
            //var yawn2 = Math.Sin(Yawn);

            var n = new AffineMesh();

            foreach (var p in this.Points)
            {
                n.Points.Add(p.Rotate(Rotation));
            }


            foreach (var k in this.Vertecies)
            {
                var kn = new AffineVertex
                {
                    Element       = k.Element,
                    ElementWidth  = k.ElementWidth,
                    ElementHeight = k.ElementHeight,
                    A             = k.A.Rotate(Rotation),
                    B             = k.B.Rotate(Rotation),
                    C             = k.C.Rotate(Rotation),
                    //Tag = k.Tag
                };

                n.Vertecies.Add(kn);
            }



            foreach (var p in this.Meshes)
            {
                n.Meshes.Add(p.ToRotation(Rotation));
            }

            return(n);
        }
Example #9
0
 public void Add(AffineVertex v)
 {
     Vertecies.Add(v);
 }
        private void AddCubeFace18(
            AffineMesh a, string t, AffinePoint A, AffinePoint B, AffinePoint C, AffinePoint D)
        {
            var v1 =
                new AffineVertex
            {
                A = A,
                B = B,
                C = C,

                Element = new Avalon.Images._18
                {
                    Width  = 100,
                    Height = 100,
                }.AttachTo(AffineContent),
                ElementWidth  = 100,
                ElementHeight = 100
            };

            //var t1 = new TextBox { Text = t, Foreground = Brushes.Blue }.AttachTo(InfoContent);

            //v1.Tag = new Action<AffineVertex>(
            //    k =>
            //    {
            //        t1.Text = t + " " + Convert.ToInt32(k.Center.Z);
            //        t1.MoveTo(k.Center.X + DefaultWidth / 2, k.Center.Y + DefaultHeight / 2);

            //    }
            //);

            a.Add(v1);

            //var v2 =
            //    new AffineVertex
            //    {
            //        A = D,
            //        B = C,
            //        C = B,

            //        Element = new Avalon.Images._18.AffineTriangle2
            //        {
            //            Width = 100,
            //            Height = 100,
            //        }.AttachTo(AffineContent),
            //        ElementWidth = 100,
            //        ElementHeight = 100
            //    };

            ////v2.Element.Opacity = 0.5;

            ////var t2 = new TextBox { Text = t }.AttachTo(InfoContent);

            ////v2.Tag = new Action<AffineVertex>(
            ////    k =>
            ////    {
            ////        t2.Text = t + " " + Convert.ToInt32(k.Center.Z);
            ////        t2.MoveTo(k.Center.X + DefaultWidth / 2, k.Center.Y + DefaultHeight / 2);

            ////    }
            ////);

            //a.Add(v2);
        }