public void AddDrawingInfo(DrawingInfo drInfo)
 {
     this.DrawingItems [drInfo.DrawingID] = drInfo;
 }
        public static LayerInfo Clone(LayerInfo layerInfo, bool withoutTransitions)
        {
            Dictionary<int, TransitionInfo> transitions = new Dictionary<int, TransitionInfo> ();

            if (!withoutTransitions) {

                foreach (KeyValuePair<int, TransitionInfo> eachTransition in layerInfo.Transitions) {

                    TransitionInfo trObj = new TransitionInfo (eachTransition.Value.ID);
                    trObj.SetEndFadeValue (eachTransition.Value.FadeOpacity);
                    trObj.SetEndLocation (eachTransition.Value.EndLocation);
                    trObj.SetEndScaleValue (eachTransition.Value.EndSize);
                    trObj.SetRotationValue (eachTransition.Value.RotationAngle);
                    //					trObj.EffectType = eachTransition.Value.EffectType;
                    foreach (KeyValuePair<TransitionEffectType, TransitionEffectSettings> eachItem in eachTransition.Value.Settings) {
                        trObj.Settings [eachItem.Key] = eachItem.Value;
                    }//end foreach

                    transitions.Add (trObj.ID, trObj);

                }//end foreach

            }//end if

            LayerInfo toReturn = new LayerInfo (layerInfo.ID, layerInfo.CanvasSize, transitions);

            foreach (KeyValuePair<int, DrawingInfo> eachDrawingItem in layerInfo.DrawingItems) {

                DrawingInfo drawingItem = null;
                if (eachDrawingItem.Value.DrawingType == DrawingLayerType.Drawing) {

                    drawingItem =
                        new DrawingInfo (eachDrawingItem.Key,
                                        new List<PointF> (eachDrawingItem.Value.PathPoints),
                                        eachDrawingItem.Value.Brush, eachDrawingItem.Value.LineColor);

                } else {

                    drawingItem =
                        new DrawingInfo (eachDrawingItem.Key, eachDrawingItem.Value.Image, eachDrawingItem.Value.ImageFrame);

                }//end if else

                switch (eachDrawingItem.Value.DrawingType) {

                case DrawingLayerType.Drawing:

                    drawingItem =
                        new DrawingInfo (eachDrawingItem.Key,
                                        new List<PointF> (eachDrawingItem.Value.PathPoints),
                                        eachDrawingItem.Value.Brush, eachDrawingItem.Value.LineColor);

                    break;

                case DrawingLayerType.Image:

                    drawingItem =
                        new DrawingInfo (eachDrawingItem.Key, eachDrawingItem.Value.Image, eachDrawingItem.Value.ImageFrame);
                    drawingItem.RotationAngle = eachDrawingItem.Value.RotationAngle;
                    drawingItem.RotatedImageBox = eachDrawingItem.Value.RotatedImageBox;

                    break;

                case DrawingLayerType.Callout:
                case DrawingLayerType.Comix:
                case DrawingLayerType.Stamp:

                    drawingItem =
                        new DrawingInfo (eachDrawingItem.Key,
                                        eachDrawingItem.Value.ContentPackItemID,
                                        eachDrawingItem.Value.DrawingType,
                                        eachDrawingItem.Value.Image,
                                        eachDrawingItem.Value.ImageFrame,
                                        eachDrawingItem.Value.LineColor);
                    drawingItem.RotationAngle = eachDrawingItem.Value.RotationAngle;
                    drawingItem.RotatedImageBox = eachDrawingItem.Value.RotatedImageBox;
                    drawingItem.CalloutText = eachDrawingItem.Value.CalloutText;
                    drawingItem.CalloutTextRect = eachDrawingItem.Value.CalloutTextRect;

                    break;

                }//end switch

                toReturn.AddDrawingInfo (drawingItem);

            }//end foreach

            return toReturn;
        }