コード例 #1
0
        public async Task AabbCalculatedCorrectlyForCurvedFitObjects()
        {
            AggContext.StaticData = new FileSystemStaticData(TestContext.CurrentContext.ResolveProjectPath(4, "StaticData"));
            MatterControlUtilities.OverrideAppDataLocation(TestContext.CurrentContext.ResolveProjectPath(4));

            // Automation runner must do as much as program.cs to spin up platform
            string platformFeaturesProvider = "MatterHackers.MatterControl.WindowsPlatformsFeatures, MatterControl.Winforms";

            AppContext.Platform = AggContext.CreateInstanceFrom <INativePlatformFeatures>(platformFeaturesProvider);
            AppContext.Platform.ProcessCommandline();

            var root = new Object3D();
            var cube = await CubeObject3D.Create(20, 20, 20);

            var fit = await FitToBoundsObject3D_2.Create(cube);

            fit.SizeX = 50;
            fit.SizeY = 20;
            fit.SizeZ = 20;

            Assert.IsTrue(fit.GetAxisAlignedBoundingBox().Equals(new AxisAlignedBoundingBox(new Vector3(-25, -10, -10), new Vector3(25, 10, 10)), 1.0));

            var curve = new CurveObject3D_2();

            curve.Children.Add(fit);
            await curve.Rebuild();

            var curveAabb = curve.GetAxisAlignedBoundingBox();

            root.Children.Add(curve);
            var rootAabb = root.GetAxisAlignedBoundingBox();

            Assert.IsTrue(rootAabb.Equals(new AxisAlignedBoundingBox(new Vector3(-17.5, -9.9, -10), new Vector3(17.5, 11.97, 10)), 1.0));
        }
コード例 #2
0
        public async void DoAabbCalculatedCorrectlyForCurvedFitObjects()
        {
            var root = new Object3D();
            var cube = CubeObject3D.Create(20, 20, 20);
            var fit  = FitToBoundsObject3D_2.Create(cube).Result;

            fit.SizeX = 50;
            fit.SizeY = 20;
            fit.SizeZ = 20;

            Assert.IsTrue(fit.GetAxisAlignedBoundingBox().Equals(new AxisAlignedBoundingBox(new Vector3(-25, -10, -10), new Vector3(25, 10, 10)), 1.0));

            var curve = new CurveObject3D_2();

            curve.Children.Add(fit);
            await curve.Rebuild();

            var curveAabb = curve.GetAxisAlignedBoundingBox();

            root.Children.Add(curve);
            var rootAabb = root.GetAxisAlignedBoundingBox();

            Assert.IsTrue(rootAabb.Equals(new AxisAlignedBoundingBox(new Vector3(-17.5, -9.2, -10), new Vector3(17.5, 9.2, 10)), 1.0));
        }