public override List <IExplicitShape <GridPoint2> > Execute(IEnumerable <IExplicitShape <GridPoint2> > input) { if (input == null) { return(null); } var inputList = input.ToList(); if (inputList.Count == 0) { return(inputList); //leave it empty } if (inputList.Count == 1) { //product of 1 shape with empty is empty. return(new List <IExplicitShape <GridPoint2> >()); } var shape1 = inputList[0]; var shape2 = inputList[1]; var scale = scaleFactor.GetGridPoint(); var shape = shape1.Product(shape2, scale); var storageRect = new GridRect( shape1.Bounds.Point.Mul(scale) - shape2.Bounds.Size, shape1.Bounds.Size.Mul(scale) + shape2.Bounds.Size * 2); return(new List <IExplicitShape <GridPoint2> > { shape.ToExplicit(storageRect) }); }
protected override IExplicitShape <GridPoint2> Generate() { var dimensions1 = dimensions.GetGridPoint(); return(ImplicitShape .Parallelogram(dimensions1) .ToExplicit(new GridRect(GridPoint2.Zero, dimensions1))); }
public override IExplicitShape <GridPoint2> Transform(IExplicitShape <GridPoint2> input) { var offset1 = offset.GetGridPoint(); var shape = input.Translate(offset1); var storageRect = GridRect.Translate(input.Bounds, offset1); return(shape.ToExplicit(storageRect)); }
private Grid2 <SpriteCell> CreateGrid() { var dimensions = gridDimensions.GetGridPoint(); var shape = ExplicitShape.Hex.FlatFatRectangle(dimensions); var grid = new Grid2 <SpriteCell>(shape); return(grid); }
private Grid2 <SpriteCell> CreateGrid() { var dimensions = gridDimensions.GetGridPoint(); var shape = ImplicitShape.Parallelogram(dimensions); var storage = shape.ToExplicit(new GridRect(GridPoint2.Zero, dimensions)); var grid = new Grid2 <SpriteCell>(storage); return(grid); }
private Grid2 <SpriteCell> CreateGrid() { var gridDimensions = new InspectableGridPoint2 { x = radius, y = radius }; var dimensions = gridDimensions.GetGridPoint(); var shape = ImplicitShape.Hexagon(radius); var storage = shape.ToExplicit(new GridRect(GridPoint2.Zero, dimensions)); var grid = new Grid2 <SpriteCell>(storage); return(grid); }
public override List <IExplicitShape <GridPoint2> > Execute(IEnumerable <IExplicitShape <GridPoint2> > input) { var inputList = input.ToList(); var shape1 = inputList[0]; var shape2 = inputList[1]; var scale = scaleFactor.GetGridPoint(); var shape = shape1.Product(shape2, scale); var storageRect = new GridRect( shape1.Bounds.Point.Mul(scale) - shape2.Bounds.Size, shape1.Bounds.Size.Mul(scale) + shape2.Bounds.Size * 2); return(new List <IExplicitShape <GridPoint2> > { shape.ToExplicit(storageRect) }); }
protected override IExplicitShape <GridPoint2> Generate() { var size = dimensions.GetGridPoint(); switch (hexType) { case HexType.Pointy: switch (type) { case RectangleType.Normal: return(ExplicitShape.Hex.PointyRectangle(size)); case RectangleType.Fat: return(ExplicitShape.Hex.PointyFatRectangle(size)); case RectangleType.Thin: return(ExplicitShape.Hex.PointyThinRectangle(size)); default: throw new ArgumentOutOfRangeException(); } case HexType.Flat: switch (type) { case RectangleType.Normal: return(ExplicitShape.Hex.FlatRectangle(size)); case RectangleType.Fat: return(ExplicitShape.Hex.FlatFatRectangle(size)); case RectangleType.Thin: return(ExplicitShape.Hex.FlatThinRectangle(size)); default: throw new ArgumentOutOfRangeException(); } default: throw new ArgumentOutOfRangeException(); } }
protected override IExplicitShape <GridPoint2> Generate() { var dimensions1 = dimensions.GetGridPoint(); return(ExplicitShape.Parallelogram(dimensions1)); }