protected override void ChangeNotLikedFragmentToLiked(PaintingFragment fragment)
 {
     if (fragmentLiked != null)
     {
         shapeDrawers[fragment] = new ShapeDrawer(shapeDrawers[fragmentLiked.Value]);
     }
 }
        public ShapeSelfBeautifyingPainting(int w, int h)
            : base(w, h)
        {
            shapeDrawers = new Dictionary<PaintingFragment, ShapeDrawer>();
            foreach (var value in Enum.GetValues(typeof (PaintingFragment)))
            {
                shapeDrawers[(PaintingFragment) value] = new ShapeDrawer();
            }

            UpdatePainting();
        }
 public ShapeDrawer(ShapeDrawer shapeDrawer)
 {
     colorsCDFs = new List<ColorProbabilityPair>(shapeDrawer.colorsCDFs);
     ProbabilitiesOfShapes = new List<ValueProbabilityPair<Shape>>(shapeDrawer.ProbabilitiesOfShapes);
     ProbabilitiesOfShapeCount = new List<ValueProbabilityPair<byte>>(shapeDrawer.ProbabilitiesOfShapeCount);
 }