Exemplo n.º 1
0
        public void Lofted_Surface_Throws_An_Exception_If_Curves_Count_Are_Less_Than_Two()
        {
            // Arrange
            NurbsBase[] crvs = { NurbsCurveCollection.OpenCurves()[0] };

            // Act
            Func <NurbsSurface> func = () => NurbsSurface.FromLoft(crvs);

            // Assert
            func.Should().Throw <Exception>()
            .WithMessage("An invalid number of curves to perform the loft.");
        }
Exemplo n.º 2
0
        public void It_Returns_A_Normal_Lofted_Surface_By_Opened_Curves(double u, double v, double[] pt)
        {
            // Arrange
            Point3 expectedPt = new Point3(pt[0], pt[1], pt[2]);

            // Act
            NurbsSurface surface = NurbsSurface.FromLoft(NurbsCurveCollection.OpenCurves());
            Point3       evalPt  = surface.PointAt(u, v);

            // Assert
            surface.Should().NotBeNull();
            evalPt.EpsilonEquals(expectedPt, GSharkMath.MinTolerance).Should().BeTrue();
        }
Exemplo n.º 3
0
        public void Lofted_Surface_Throws_An_Exception_If_The_All_Curves_Are_Not_Closed_Or_Open()
        {
            // Arrange
            List <NurbsBase> crvs = NurbsCurveCollection.OpenCurves();

            crvs[1] = crvs[1].Close();

            // Act
            Func <NurbsSurface> func = () => NurbsSurface.FromLoft(crvs);

            // Assert
            func.Should().Throw <Exception>()
            .WithMessage("Loft only works if all curves are open, or all curves are closed.");
        }
Exemplo n.º 4
0
        public void Lofted_Surface_Throws_An_Exception_If_There_Are_Null_Curves()
        {
            // Arrange
            List <NurbsBase> crvs = NurbsCurveCollection.OpenCurves();

            crvs.Add(null);

            // Act
            Func <NurbsSurface> func = () => NurbsSurface.FromLoft(crvs);

            // Assert
            func.Should().Throw <Exception>()
            .WithMessage("The input set contains null curves.");
        }