public Sticker(char color, CoordPair Start, double angle, bool cornerSize, SkewbImageProp properties) { /// <summary> /// Constructs corner. /// </summary> Color = properties.ColorScheme.GetFace(color); SetCoord(Start, angle, cornerSize, properties); }
private void SetCoord(CoordPair Start, double angle, bool cornerSize, SkewbImageProp properties) { var tempCoordinates = new List <CoordPair>(); var cornerDist = properties.ShortFaceDist; tempCoordinates.Add(Start); tempCoordinates.Add(CoordPair.CartesianFromPolar(cornerDist, angle, Start)); tempCoordinates.Add(CoordPair.CartesianFromPolar(cornerDist, angle - (cornerSize ? Math.PI * 120 / 180 : Math.PI * 60 / 180), Start)); Coordinates = tempCoordinates.ToArray(); }
public Sticker(char color, Sticker[] corners, SkewbImageProp properties) { /// <summary> /// Constructs center from array of surrounding corners. /// </summary> Color = properties.ColorScheme.GetFace(color); var tempCoordinates = new List <CoordPair>(); foreach (var corner in corners) { tempCoordinates.Add(corner.Coordinates.Last()); } Coordinates = tempCoordinates.ToArray(); }
} // last sticker is the center public Face(char[] stickersColors, double angle, CoordPair start, SkewbImageProp properties) { var tempStickers = new List <Sticker>(); var large = true; foreach (var color in stickersColors.Take(4)) { tempStickers.Add(new Sticker(color, start, angle, large, properties)); start = CoordPair.CartesianFromPolar(properties.LongFaceDist, angle, start); angle -= large ? Math.PI * 120 / 180 : Math.PI * 60 / 180; large = !large; } tempStickers.Add(new Sticker(stickersColors.Last(), tempStickers.ToArray(), properties)); Stickers = tempStickers.ToArray(); }
public SkewbImage(SkewbImageConfiguration configs) { Properties = new SkewbImageProp(configs); CreateFacees(configs); }