/// <summary>
        /// Select a new Orientation.
        /// </summary>
        /// <param name="orientation">COrientation: Collates nesting orientation constraints.</param>
        public void SetNewOrientation(COrientation orientation)
        {
            try
            {
                RecordPersistentDataEvent("Set orientation");
                PersistentData.Clear();

                if (orientation != null)
                {
                    PersistentData.Append(new OrientationGoo(orientation), new GH_Path(0));
                }
            }
            finally
            {
                ExpireSolution(true);
            }
        }
        /// <summary>
        /// Make a function for Fixed option from ToolStripMenu
        /// </summary>
        /// <param name="sender">>object: Support all classes in the .NET Framework class hierachy and provides low-level service to derived classes.</param>
        /// <param name="e">RhinoNestEventArgs: Class used in events.</param>
        private void MenuClick(object sender, EventArgs e)
        {
            var send = sender as ToolStripMenuItem;

            if (send == null)
            {
                return;
            }

            if (((ObjectOrientation)send.Tag == ObjectOrientation.Fixed) || ((ObjectOrientation)send.Tag == ObjectOrientation.Free))
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 1));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Angle15)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 15));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Angle30)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 30));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Angle45)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 45));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Angle60)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 60));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Angle90)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 90));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Positive90Negative90)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, -90));
            }
            else if ((ObjectOrientation)send.Tag == ObjectOrientation.Mirror)
            {
                SetNewOrientation(COrientation.CreateOrientation((ObjectOrientation)send.Tag, 180));
            }
        }
 /// <summary>
 /// Constructor Empty
 /// </summary>
 public Orientation()
     : base("Orientation", "Orient", "Orientation data for nesting", "RhinoNest", "Nesting")
 {
     SetNewOrientation(COrientation.CreateFixedOrientation());
 }