public string ItAdjustsFromRelativeTransforms(RelativeOriginTransform dir) { var element = new Mock<IElement>(); element.SetupGet(x => x.Width).Returns(12); element.SetupGet(x => x.Depth).Returns(12); element.SetupGet(x => x.Height).Returns(12); var trans = new Transform(10,10,10) .Adjust(dir, element.Object); return string.Join(",", new[] {trans.X, trans.Z, trans.Y}); }
public Transform Adjust(RelativeOriginTransform direction, IElement element) { switch (direction) { case RelativeOriginTransform.Top: return new Transform(X,Z,element.Height); case RelativeOriginTransform.Bottom: return new Transform(X,Z,0); case RelativeOriginTransform.Right: return new Transform(element.Width,Z,Y); case RelativeOriginTransform.Left: return new Transform(0,Z,Y); case RelativeOriginTransform.Front: return new Transform(X,element.Depth,Y); case RelativeOriginTransform.Back: return new Transform(X,0,Y); default: throw new RuntimeException("Unknown relative transform direction: " + direction); } }
public RelativeTransformInstructions(RelativeOriginTransform direction) { Direction = direction; }