public void TransformedPolysurface_Vertex_points_result_from_original_IPolysurface_Vertex_points_by_applying_RotoTranslation3()
        {
            var origSurface    = MockPolysurface();
            var transformation = new RotoTranslation3(new Rotation3(new Quaternion(1.1, -2.2, 3.3, -4.4)), new Vector3(4.1, -2.4, 1.3));

            var transSurface = new TransformedPolysurface(origSurface, transformation);

            var point = transSurface.Vertices.ElementAt(1).Point;

            Expect(Vector3.Distance(point, transformation.Apply(MockVertexPoint(1))), Is.LessThan(_tolerance));
        }
        public void TransformedPolysurface_Face_polygons_result_from_original_IPolysurface_Face_polygons_by_applying_RotoTranslation3()
        {
            var origSurface    = MockPolysurface();
            var transformation = new RotoTranslation3(new Rotation3(new Quaternion(1.1, -2.2, 3.3, -4.4)), new Vector3(4.1, -2.4, 1.3));

            var transSurface = new TransformedPolysurface(origSurface, transformation);

            var polygon = transSurface.Faces.ElementAt(1).Polygon;

            var actualVertex   = polygon.Contours().First().Vertices.First();
            var expectedVertex = transformation.Apply(MockFacePolygon(1)).Contours().First().Vertices.First();

            Expect(Vector3.Distance(actualVertex, expectedVertex), Is.LessThan(_tolerance));
        }
예제 #3
0
        public void CropVisible_returns_correct_result_when_LocalModel_CropVisible_returns_not_null()
        {
            var point = new Vector3(3.141, 0.577, 2.718);

            var localModelMock = new Mock <IImageModel>();

            localModelMock.Setup(model => model.CropVisible(It.IsAny <Segment3>())).Returns((Segment3 s) => new Segment3(s.Start, point));

            var localToGlobal = new RotoTranslation3((Rotation3) new Quaternion(1.1, 2.2, 3.3, 4.4), new Vector3(1.23, 4.56, 2.56));

            var globalModel = new TransformedImageModel(localModelMock.Object, localToGlobal);

            var segment = new Segment3(new Vector3(7, 8, 9), new Vector3(-1, -2, -4));

            var crop = globalModel.CropVisible(segment);

            var transPoint = localToGlobal.Apply(point);

            Expect(crop != null);
            Expect(Vector3.Distance(crop.Value.Start, segment.Start), Is.LessThan(_tolerance));
            Expect(Vector3.Distance(crop.Value.End, transPoint), Is.LessThan(_tolerance));
        }