public void RotateCounterclockwise() { switch (m_objType) { case Types.SQUARE: break; case Types.I: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X -= 2; m_objPoints[0].Y += 2; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; m_objPoints[2].X -= 1; m_objPoints[2].Y += 1; m_objPoints[3].X -= 2; m_objPoints[3].Y += 2; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 2; m_objPoints[0].Y -= 2; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X -= 2; m_objPoints[3].Y -= 2; m_objPoints[2].X -= 1; m_objPoints[2].Y -= 1; m_objPoints[0].X += 1; m_objPoints[0].Y += 1; } break; case Types.T: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 1; m_objPoints[0].Y += 1; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; } break; case Types.S: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; m_objPoints[2].X += 1; m_objPoints[2].Y -= 1; m_objPoints[0].X += 2; m_objPoints[0].Y += 0; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 2; m_objPoints[3].Y += 0; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 0; m_objPoints[3].Y -= 2; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; m_objPoints[2].X -= 1; m_objPoints[2].Y -= 1; m_objPoints[0].X += 0; m_objPoints[0].Y -= 2; } break; case Types.Z: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[3].X -= 0; m_objPoints[3].Y -= 2; m_objPoints[2].X += 1; m_objPoints[2].Y -= 1; m_objPoints[0].X += 1; m_objPoints[0].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[0].X -= 0; m_objPoints[0].Y -= 2; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 2; m_objPoints[0].Y += 0; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X -= 2; m_objPoints[3].Y += 0; m_objPoints[2].X -= 1; m_objPoints[2].Y -= 1; m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; } break; case Types.J: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[0].X -= 0; m_objPoints[0].Y += 2; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[0].X += 0; m_objPoints[0].Y -= 2; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 2; m_objPoints[0].Y -= 0; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[0].X += 2; m_objPoints[0].Y -= 0; } break; case Types.L: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 1; m_objPoints[0].Y += 1; m_objPoints[2].X -= 1; m_objPoints[2].Y -= 1; m_objPoints[3].X -= 2; m_objPoints[3].Y += 0; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[3].X += 2; m_objPoints[3].Y += 0; m_objPoints[2].X += 1; m_objPoints[2].Y += 1; m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[3].X -= 0; m_objPoints[3].Y -= 2; m_objPoints[2].X += 1; m_objPoints[2].Y -= 1; m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; m_objPoints[2].X -= 1; m_objPoints[2].Y += 1; m_objPoints[3].X -= 0; m_objPoints[3].Y += 2; } break; } switch (m_objCurrentRotation) { case ClockwiseRotations.INITIAL: m_objCurrentRotation = ClockwiseRotations.TWOSEVENTY; break; case ClockwiseRotations.NINETY: m_objCurrentRotation = ClockwiseRotations.INITIAL; break; case ClockwiseRotations.ONEEIGHTY: m_objCurrentRotation = ClockwiseRotations.NINETY; break; case ClockwiseRotations.TWOSEVENTY: m_objCurrentRotation = ClockwiseRotations.ONEEIGHTY; break; } }
public void RotateClockwise(int intMinLeft, int intMaxRight) { Point[] objTestPoints = new Point[] { new Point(), new Point(), new Point(), new Point() }; switch (m_objType) { case Types.SQUARE: break; case Types.I: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 2; m_objPoints[0].Y += 2; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[3].X += 2; m_objPoints[3].Y += 2; m_objPoints[2].X += 1; m_objPoints[2].Y += 1; m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; m_objPoints[2].X += 1; m_objPoints[2].Y -= 1; m_objPoints[3].X += 2; m_objPoints[3].Y -= 2; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[0].X += 2; m_objPoints[0].Y -= 2; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; } break; case Types.T: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X += 1; m_objPoints[0].Y += 1; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[3].X += 1; m_objPoints[3].Y += 1; } break; case Types.S: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 0; m_objPoints[3].Y += 2; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; m_objPoints[2].X += 1; m_objPoints[2].Y += 1; m_objPoints[0].X -= 0; m_objPoints[0].Y += 2; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X += 1; m_objPoints[0].Y += 1; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 2; m_objPoints[3].Y -= 0; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X += 1; m_objPoints[3].Y += 1; m_objPoints[2].X -= 1; m_objPoints[2].Y += 1; m_objPoints[0].X -= 2; m_objPoints[0].Y -= 0; } break; case Types.Z: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 2; m_objPoints[0].Y -= 0; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[3].X += 2; m_objPoints[3].Y -= 0; m_objPoints[2].X += 1; m_objPoints[2].Y += 1; m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X += 0; m_objPoints[0].Y += 2; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X += 0; m_objPoints[3].Y += 2; m_objPoints[2].X -= 1; m_objPoints[2].Y += 1; m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; } break; case Types.J: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[0].X += 2; m_objPoints[0].Y += 0; m_objPoints[1].X += 1; m_objPoints[1].Y -= 1; m_objPoints[3].X -= 1; m_objPoints[3].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[3].X += 1; m_objPoints[3].Y -= 1; m_objPoints[1].X -= 1; m_objPoints[1].Y += 1; m_objPoints[0].X -= 2; m_objPoints[0].Y += 0; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[0].X -= 0; m_objPoints[0].Y += 2; m_objPoints[1].X += 1; m_objPoints[1].Y += 1; m_objPoints[3].X -= 1; m_objPoints[3].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[3].X += 1; m_objPoints[3].Y += 1; m_objPoints[1].X -= 1; m_objPoints[1].Y -= 1; m_objPoints[0].X += 0; m_objPoints[0].Y -= 2; } break; case Types.L: if (m_objCurrentRotation == ClockwiseRotations.INITIAL) { m_objPoints[3].X += 0; m_objPoints[3].Y += 2; m_objPoints[2].X -= 1; m_objPoints[2].Y += 1; m_objPoints[0].X += 1; m_objPoints[0].Y -= 1; } else if (m_objCurrentRotation == ClockwiseRotations.ONEEIGHTY) { m_objPoints[0].X -= 1; m_objPoints[0].Y += 1; m_objPoints[2].X += 1; m_objPoints[2].Y -= 1; m_objPoints[3].X += 0; m_objPoints[3].Y -= 2; } else if (m_objCurrentRotation == ClockwiseRotations.NINETY) { m_objPoints[3].X -= 2; m_objPoints[3].Y -= 0; m_objPoints[2].X -= 1; m_objPoints[2].Y -= 1; m_objPoints[0].X += 1; m_objPoints[0].Y += 1; } else if (m_objCurrentRotation == ClockwiseRotations.TWOSEVENTY) { m_objPoints[0].X -= 1; m_objPoints[0].Y -= 1; m_objPoints[2].X += 1; m_objPoints[2].Y += 1; m_objPoints[3].X += 2; m_objPoints[3].Y -= 0; } break; } switch (m_objCurrentRotation) { case ClockwiseRotations.INITIAL: m_objCurrentRotation = ClockwiseRotations.NINETY; break; case ClockwiseRotations.NINETY: m_objCurrentRotation = ClockwiseRotations.ONEEIGHTY; break; case ClockwiseRotations.ONEEIGHTY: m_objCurrentRotation = ClockwiseRotations.TWOSEVENTY; break; case ClockwiseRotations.TWOSEVENTY: m_objCurrentRotation = ClockwiseRotations.INITIAL; break; } }