Esempio n. 1
0
 // extract all information from the beginning
 private void startANewSessionToolStripMenuItem_Click(object sender1, EventArgs e1)
 {
     if (null == Form)
     {
         Form             = new PCCDInfoSetup_New(doc);
         Form.FormClosed += OnFormClosed2;
         this.Close();
         Form.Show(RhinoApp.MainWindow());
         //Form.Show();
     }
 }
Esempio n. 2
0
        public static void DisplayNodeGroups(RhinoDoc doc, Layer Old_Layer, List <List <int> > NodeGroups, int Mode, out List <RhinoObject> NewRhObjs, out List <Color> colorSet, out Layer New_Layer)
        {
            Random           rnd = new Random();
            ObjectAttributes attributes;
            RhinoObject      obj;

            NewRhObjs = new List <RhinoObject>();
            List <Vector3d> vectors = new List <Vector3d>();

            New_Layer = new Layer();
            colorSet  = new List <Color>();
            int   NumOfGroups = NodeGroups.Count;
            Color color;

            //List<RhinoObject> rhObjList = new List<RhinoObject>();
            // find object list by layer
            //rhObjList = doc.Objects.FindByLayer(Old_Layer).ToList();

            // add a new layer
            if (Mode == 0) // display modules
            {
                New_Layer.Name = "Module info";
            }
            else if (Mode == 1 || Mode == 2) // dispaly node group result without R3
            {
                New_Layer.Name = "Result";
            }
            else
            {
                // display R3 result
                New_Layer.Name = "Result_R3";
            }

            doc.Layers.Add(New_Layer);
            New_Layer.LayerIndex = doc.Layers.FindByFullPath(New_Layer.Name, true);
            doc.Layers.SetCurrentLayerIndex(New_Layer.LayerIndex, true);
            // PCCDInfoSetup_New.CopyObjects(doc, Old_Layer, New_Layer, out rhObjList);
            PCCDInfoSetup_New.ExplodeView(doc, Old_Layer, New_Layer, out NewRhObjs);;
            New_Layer.CommitChanges();

            //rhObjList = doc.Objects.FindByLayer(New_Layer).ToList();

            for (int i = 0; i < NumOfGroups; i++)
            {
                int x = 0;
                if (NodeGroups[i].Count > 1)
                {
                    // make sure color does not exist
                    while (true)
                    {
                        color = Color.FromArgb(rnd.Next(0, 255), rnd.Next(0, 255), rnd.Next(0, 255));
                        for (int j = 0; j < colorSet.Count; j++)
                        {
                            if (color == colorSet[j])
                            {
                                x = 1;
                            }
                        }
                        if (x == 0)
                        {
                            break;
                        }
                    }
                    for (int j = 0; j < NodeGroups[i].Count; j++)
                    {
                        obj = NewRhObjs[NodeGroups[i].ElementAt(j) - 1];
                        // attributes = obj.Attributes;
                        //attributes.ColorSource = (ObjectColorSource)1;
                        obj.Attributes.ObjectColor = color;
                        obj.CommitChanges();
                    }
                    colorSet.Add(color);
                }
                else
                {
                    obj = NewRhObjs[NodeGroups[i].ElementAt(0) - 1];
                    colorSet.Add(obj.Attributes.ObjectColor);
                }
            }

            Old_Layer.IsVisible = false;
            Old_Layer.CommitChanges();
            // doc.Views.Redraw();
        }