public Sq1Image(Sq1ImageConfiguration configs) { var isCubeShape = CheckIfCubeshape(configs); Properties = new Sq1ImageProp(configs, isCubeShape); CreatePieces(configs.StickerDefs); }
static bool CheckIfCubeshape(Sq1ImageConfiguration configs) { var pieceDefsSplit = configs.StickerDefs.Split(';')[0].Split(','); var cubeshapeForm = "cecececeecececec"; for (int i = 0; i < pieceDefsSplit.Length; i++) { if (pieceDefsSplit[i][0] != cubeshapeForm[i]) { return(false); } } return(true); }
public Sq1ImageProp(Sq1ImageConfiguration configs, bool cubeshape) : base(configs) { FaceSpacer = configs.FaceSpacer; XOffset = configs.transform == TransformType.horizontal ? FaceSpacer + ImageLength : 0; YOffset = configs.transform == TransformType.horizontal ? 0 : FaceSpacer + ImageLength; SideSize = cubeshape ? ImageLength : MathHelper.GetHypotenuse(ImageLength); FaceSize = configs.Stage == "cubeshape" || configs.Stage == "obl" || configs.Stage == "eo" || configs.Stage == "co" ? SideSize : SideSize *Math.Min(100, configs.FaceSize) / 100; ImageSize = configs.transform == TransformType.horizontal ? new Tuple <double, double>(2 * (ImageLength) + FaceSpacer, ImageLength) : new Tuple <double, double>(ImageLength, (2 * ImageLength) + FaceSpacer); var sideWidth = SideSize * 0.05; LongSideDist = MathHelper.GetHypotenuse(SideSize); LongFaceDist = FaceSize * Math.Sin(Math.PI * 45 / 180); ShortFaceDist = FaceSize / (Math.Cos(Math.PI * 15 / 180) * 2); ShortSideDist = SideSize / 2 / Math.Cos(Math.PI * 15 / 180); if (configs.ColorScheme != null) { configs.ColorScheme = configs.ColorScheme.Replace(" ", "") .Replace("%20", ""); ColorScheme = new ColorScheme(configs.ColorScheme.Split('-')); } else { ColorScheme = new ColorScheme(); } }
private void InitializePieceDefinitions(Sq1ImageConfiguration configs) { var isValid = true; if (configs.Moves != null) { isValid = MoveSq1.ApplyAlg(configs.Moves, this); } else if (configs.Case != null) { isValid = MoveSq1.ApplyAlg(configs.Case, this, invert: true); } if (configs.StickerDefs == null) { configs.StickerDefs = GetPieceDefs(); } if (!isValid) { CleanSq1(); } }
public VirtualSq1(Sq1ImageConfiguration configs) { CleanSq1(); InitializePieceDefinitions(configs); }