Example #1
0
        public void TranslatePnt2dPnt2d()
        {
            var res = new Ax22d(new Pnt2d(-1, -1), new Dir2d(1, 0));
            var p2  = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));

            Assert.AreEqual(res, p2.Translated(new Pnt2d(3, 5), new Pnt2d(1, 2)));
            p2.Translate(new Pnt2d(3, 5), new Pnt2d(1, 2));
            Assert.AreEqual(res, p2);
        }
Example #2
0
        public void MirrorAx2d()
        {
            var res = new Ax22d(new Pnt2d(-1, 2), new Dir2d(-1, 0), new Dir2d(0, 1));
            var m2  = new Ax2d(new Pnt2d(0, 1), new Dir2d(0, 1));
            var p2  = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));

            Assert.AreEqual(res, p2.Mirrored(m2));
            p2.Mirror(m2);
        }
Example #3
0
        public void Scale()
        {
            var res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(1, 0));
            var p2  = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));

            Assert.AreEqual(res, p2.Scaled(new Pnt2d(2, 3), 3));
            p2.Scale(new Pnt2d(2, 3), 3);
            Assert.AreEqual(res, p2);
        }
Example #4
0
        public void Rotate()
        {
            var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));
            var p3 = p2.Rotated(new Pnt2d(1, 2), Math.PI / 2);

            Assert.That(new Pnt2d(1, 2).IsEqual(p3.Location, 0.000001));
            Assert.That(new Dir2d(0, 1).IsEqual(p3.XDirection, 0.000001));
            Assert.That(new Dir2d(-1, 0).IsEqual(p3.YDirection, 0.000001));

            p2.Rotate(new Pnt2d(1, 2), Math.PI / 2);
            Assert.That(new Pnt2d(1, 2).IsEqual(p2.Location, 0.000001));
            Assert.That(new Dir2d(0, 1).IsEqual(p2.XDirection, 0.000001));
            Assert.That(new Dir2d(-1, 0).IsEqual(p2.YDirection, 0.000001));
        }
Example #5
0
        public void Transform()
        {
            Trsf2d t1 = new Trsf2d();

            t1.SetRotation(new Pnt2d(1, 2), Math.PI / 2);
            var p2 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));
            var p3 = p2.Transformed(t1);

            Assert.That(new Pnt2d(1, 2).IsEqual(p3.Location, 0.000001));
            Assert.That(new Dir2d(0, 1).IsEqual(p3.XDirection, 0.000001));
            Assert.That(new Dir2d(-1, 0).IsEqual(p3.YDirection, 0.000001));
            p2.Transform(t1);
            Assert.That(new Pnt2d(1, 2).IsEqual(p2.Location, 0.000001));
            Assert.That(new Dir2d(0, 1).IsEqual(p2.XDirection, 0.000001));
            Assert.That(new Dir2d(-1, 0).IsEqual(p2.YDirection, 0.000001));
        }
Example #6
0
        public void Components()
        {
            var p1 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));
            var p2 = new Ax22d(new Pnt2d(2, 3), new Dir2d(0, 1));

            Assert.AreEqual(new Pnt2d(1, 2), p1.Location);
            Assert.AreEqual(new Dir2d(1, 0), p1.XDirection);
            Assert.AreEqual(new Dir2d(0, 1), p1.YDirection);

            p2.Location = new Pnt2d(3, 2);
            Assert.AreEqual(new Pnt2d(3, 2), p2.Location);
            p2.XDirection = new Dir2d(0, -1);
            Assert.AreEqual(new Dir2d(0, -1), p2.XDirection);
            p2.YDirection = new Dir2d(1, 0);
            Assert.AreEqual(new Dir2d(1, 0), p2.YDirection);
        }
        public void ValueType_Ax22d()
        {
            var s1 = new Ax22d(new Pnt2d(1, 2), new Dir2d(1, 0));
            var s2 = new Ax22d(new Pnt2d(2, 3), new Dir2d(0, 1));

            Assert.AreEqual(new Pnt2d(1, 2), s1.Location);
            Assert.AreEqual(new Dir2d(1, 0), s1.XDirection);
            Assert.AreEqual(new Dir2d(0, 1), s1.YDirection);

            var p2 = s2;

            p2.Location = new Pnt2d(3, 2);
            Assert.AreEqual(new Pnt2d(3, 2), p2.Location);
            p2.XDirection = new Dir2d(0, -1);
            Assert.AreEqual(new Dir2d(0, -1), p2.XDirection);
            p2.YDirection = new Dir2d(1, 0);
            Assert.AreEqual(new Dir2d(1, 0), p2.YDirection);

            var res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(-1, 0));

            p2 = s1;
            Assert.AreEqual(res, p2.Mirrored(new Pnt2d(0, 1)));
            p2.Mirror(new Pnt2d(0, 1));
            Assert.AreEqual(res, p2);

            res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(-1, 0));
            p2  = s1;
            Assert.AreEqual(res, p2.Mirrored(new Pnt2d(0, 1)));
            p2.Mirror(new Pnt2d(0, 1));
            Assert.AreEqual(res, p2);

            res = new Ax22d(new Pnt2d(-1, 2), new Dir2d(-1, 0), new Dir2d(0, 1));
            var m2 = new Ax2d(new Pnt2d(0, 1), new Dir2d(0, 1));

            p2 = s1;
            Assert.AreEqual(res, p2.Mirrored(m2));
            p2.Mirror(m2);

            p2 = s1;
#if DEBUG
            Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.Rotated(new Pnt2d(1, 2), Math.PI / 2).ToString());
            p2.Rotate(new Pnt2d(1, 2), Math.PI / 2);
            Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.ToString());
#else
            Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.Rotated(new Pnt2d(1, 2), Math.PI / 2).ToString());
            p2.Rotate(new Pnt2d(1, 2), Math.PI / 2);
            Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.ToString());
#endif

            res = new Ax22d(new Pnt2d(-1, 0), new Dir2d(1, 0));
            p2  = s1;
            Assert.AreEqual(res, p2.Scaled(new Pnt2d(2, 3), 3));
            p2.Scale(new Pnt2d(2, 3), 3);
            Assert.AreEqual(res, p2);

            res = new Ax22d(new Pnt2d(-1, -1), new Dir2d(1, 0));
            p2  = s1;
            Assert.AreEqual(res, p2.Translated(new Pnt2d(3, 5), new Pnt2d(1, 2)));
            p2.Translate(new Pnt2d(3, 5), new Pnt2d(1, 2));
            Assert.AreEqual(res, p2);

            res = new Ax22d(new Pnt2d(3, 5), new Dir2d(1, 0));
            p2  = s1;
            Assert.AreEqual(res, p2.Translated(new Vec2d(2, 3)));
            p2.Translate(new Vec2d(2, 3));
            Assert.AreEqual(res, p2);

            //gp2.Scaled(new gp_Pnt2d(2, 3, 2), 3);
            //TestContext.WriteLine(string.Format(CultureInfo.InvariantCulture, $"({gp2.Location().x},{gp2.Location().y},{gp2.Location().z}), ({gp2.XDir2dection().x},{gp2.XDir2dection().y},{gp2.XDir2dection().z}), ({gp2.YDir2dection().x},{gp2.YDir2dection().y},{gp2.YDir2dection().z}), ({gp2.Dir2dection().x},{gp2.Dir2dection().y},{gp2.Dir2dection().z})"));

            //gp_Trsf gt1 = new gp_Trsf();
            //gt1.SetRotation(gp.OZ(), Math.PI / 2);
            //gp2.Transform(gt1);
            //TestContext.WriteLine(string.Format(CultureInfo.InvariantCulture, $"({gp2.Location().x},{gp2.Location().y},{gp2.Location().z}), ({gp2.XDir2dection().x},{gp2.XDir2dection().y},{gp2.XDir2dection().z}), ({gp2.YDir2dection().x},{gp2.YDir2dection().y},{gp2.YDir2dection().z}), ({gp2.Dir2dection().x},{gp2.Dir2dection().y},{gp2.Dir2dection().z})"));

            Trsf2d t1 = new Trsf2d();
            t1.SetRotation(new Pnt2d(1, 2), Math.PI / 2);
            p2 = s1;
#if DEBUG
            Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.Transformed(t1).ToString());
            p2.Transform(t1);
            Assert.AreEqual("(1,2),(6.12323399573677E-17,1),(-1,6.12323399573677E-17)", p2.ToString());
#else
            Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.Transformed(t1).ToString());
            p2.Transform(t1);
            Assert.AreEqual("(1,2),(6.12303176911189E-17,1),(-1,6.12303176911189E-17)", p2.ToString());
#endif
        }
        //--------------------------------------------------------------------------------------------------

        #endregion

        #region gp_Ax22d

        public static int Sense(this Ax22d ax)
        {
            return(ax.YAxis.Angle(ax.XAxis) > 0 ? 1 : -1);
        }