///<summary> This gets called when when the user runs this command.</summary>
        public override IRhinoCommand.result RunCommand(IRhinoCommandContext context)
        {
            Rhino3dPointList points = new Rhino3dPointList();

            points.Add(new On3dPoint(0, 0, 0));
            points.Add(new On3dPoint(0, 0, 1));
            points.Add(new On3dPoint(0, 1, 0));
            points.Add(new On3dPoint(0, 1, 1));
            points.Add(new On3dPoint(1, 0, 0));
            points.Add(new On3dPoint(1, 0, 1));
            points.Add(new On3dPoint(1, 1, 0));
            points.Add(new On3dPoint(1, 1, 1));

            RhUtil.RhinoApp().Print("Before sort...\n");
            points.Print();

            points.Sort(Rhino3dPointList.sort_method.sort_xyz, true);
            RhUtil.RhinoApp().Print("Sort ascending...\n");
            points.Print();

            points.Sort(Rhino3dPointList.sort_method.sort_xyz, false);
            RhUtil.RhinoApp().Print("Sort descending...\n");
            points.Print();

            context.m_doc.AddPointCloudObject(points.ToPointArray());
            context.m_doc.Redraw();

            return(IRhinoCommand.result.success);
        }
 // Copy constructor
 public Rhino3dPointList(Rhino3dPointList source)
 {
     this.AddRange(source);
 }