public void Clone() { Pose poseA = new Pose(new Vector3(1, 2, 3)); PointShape pointA = new PointShape(3, 4, 5); GeometricObject geometryA = new GeometricObject(pointA, poseA); Pose poseB = new Pose(new Vector3(1, 2, 3)); PointShape pointB = new PointShape(3, 4, 5); GeometricObject geometryB = new GeometricObject(pointB, poseB); MinkowskiSumShape minkowskiSumShape = new MinkowskiSumShape(geometryA, geometryB); MinkowskiSumShape clone = minkowskiSumShape.Clone() as MinkowskiSumShape; Assert.IsNotNull(clone); Assert.IsNotNull(clone.ObjectA); Assert.IsNotNull(clone.ObjectB); Assert.AreNotSame(geometryA, clone.ObjectA); Assert.AreNotSame(geometryB, clone.ObjectB); Assert.IsTrue(clone.ObjectA is GeometricObject); Assert.IsTrue(clone.ObjectB is GeometricObject); Assert.AreEqual(poseA, clone.ObjectA.Pose); Assert.AreEqual(poseB, clone.ObjectB.Pose); Assert.IsNotNull(clone.ObjectA.Shape); Assert.IsNotNull(clone.ObjectB.Shape); Assert.AreNotSame(pointA, clone.ObjectA.Shape); Assert.AreNotSame(pointB, clone.ObjectB.Shape); Assert.IsTrue(clone.ObjectA.Shape is PointShape); Assert.IsTrue(clone.ObjectB.Shape is PointShape); Assert.AreEqual(pointA.Position, ((PointShape)clone.ObjectA.Shape).Position); Assert.AreEqual(pointB.Position, ((PointShape)clone.ObjectB.Shape).Position); Assert.AreEqual(minkowskiSumShape.GetAabb(Pose.Identity).Minimum, clone.GetAabb(Pose.Identity).Minimum); Assert.AreEqual(minkowskiSumShape.GetAabb(Pose.Identity).Maximum, clone.GetAabb(Pose.Identity).Maximum); }
public void Clone() { Pose poseA = new Pose(new Vector3F(1, 2, 3)); PointShape pointA = new PointShape(3, 4, 5); GeometricObject geometryA = new GeometricObject(pointA, poseA); Pose poseB = new Pose(new Vector3F(1, 2, 3)); PointShape pointB = new PointShape(3, 4, 5); GeometricObject geometryB = new GeometricObject(pointB, poseB); MinkowskiSumShape minkowskiSumShape = new MinkowskiSumShape(geometryA, geometryB); MinkowskiSumShape clone = minkowskiSumShape.Clone() as MinkowskiSumShape; Assert.IsNotNull(clone); Assert.IsNotNull(clone.ObjectA); Assert.IsNotNull(clone.ObjectB); Assert.AreNotSame(geometryA, clone.ObjectA); Assert.AreNotSame(geometryB, clone.ObjectB); Assert.IsTrue(clone.ObjectA is GeometricObject); Assert.IsTrue(clone.ObjectB is GeometricObject); Assert.AreEqual(poseA, clone.ObjectA.Pose); Assert.AreEqual(poseB, clone.ObjectB.Pose); Assert.IsNotNull(clone.ObjectA.Shape); Assert.IsNotNull(clone.ObjectB.Shape); Assert.AreNotSame(pointA, clone.ObjectA.Shape); Assert.AreNotSame(pointB, clone.ObjectB.Shape); Assert.IsTrue(clone.ObjectA.Shape is PointShape); Assert.IsTrue(clone.ObjectB.Shape is PointShape); Assert.AreEqual(pointA.Position, ((PointShape)clone.ObjectA.Shape).Position); Assert.AreEqual(pointB.Position, ((PointShape)clone.ObjectB.Shape).Position); Assert.AreEqual(minkowskiSumShape.GetAabb(Pose.Identity).Minimum, clone.GetAabb(Pose.Identity).Minimum); Assert.AreEqual(minkowskiSumShape.GetAabb(Pose.Identity).Maximum, clone.GetAabb(Pose.Identity).Maximum); }