Exemplo n.º 1
0
    protected override void SolveInstance(IGH_DataAccess da)
    {
        //IL_008f: Unknown result type (might be due to invalid IL or missing references)
        //IL_0096: Expected O, but got Unknown
        //IL_0276: Unknown result type (might be due to invalid IL or missing references)
        //IL_0290: Unknown result type (might be due to invalid IL or missing references)
        //IL_02aa: Unknown result type (might be due to invalid IL or missing references)
        //IL_02e0: Unknown result type (might be due to invalid IL or missing references)
        if ((base.m_attributes as AttButt).Reset)
        {
            _history.ForEach(delegate(Guid i)
            {
                _doc.get_Objects().Select(i);
            });
            return;
        }
        List <Guid>             list  = new List <Guid>();
        List <IGH_GeometricGoo> list2 = new List <IGH_GeometricGoo>();

        da.GetDataList <Guid>(0, list);
        da.GetDataList <IGH_GeometricGoo>(1, list2);
        if (!ButtonActivate())
        {
            return;
        }
        _history = list.ToList();
        ObjectTable objects = RhinoDoc.get_ActiveDoc().get_Objects();
        int         count   = list2.Count;
        Point3d     val11   = default(Point3d);
        Circle      val10   = default(Circle);
        Arc         val9    = default(Arc);
        Rectangle3d val8    = default(Rectangle3d);
        Line        val7    = default(Line);
        Curve       val6    = default(Curve);
        Mesh        val5    = default(Mesh);
        Surface     val4    = default(Surface);
        Brep        val3    = default(Brep);

        for (int j = 0; j < list.Count; j++)
        {
            IGH_GeometricGoo val  = list2[j % count];
            Guid             guid = list[j];
            ObjRef           val2 = (ObjRef)(object)new ObjRef(guid);
            switch (((IGH_Goo)val).get_TypeName())
            {
            case "Plane":
            case "Point":
                ((IGH_Goo)val).CastTo <Point3d>(ref val11);
                objects.Replace(guid, val11);
                break;

            case "Circle":
                ((IGH_Goo)val).CastTo <Circle>(ref val10);
                objects.Replace(guid, val10);
                break;

            case "Arc":
                ((IGH_Goo)val).CastTo <Arc>(ref val9);
                objects.Replace(guid, val9);
                break;

            case "Line":
                ((IGH_Goo)val).CastTo <Line>(ref val7);
                objects.Replace(guid, val7);
                break;

            case "Curve":
                ((IGH_Goo)val).CastTo <Curve>(ref val6);
                objects.Replace(guid, val6);
                break;

            case "Mesh":
                ((IGH_Goo)val).CastTo <Mesh>(ref val5);
                objects.Replace(guid, val5);
                break;

            case "Surface":
                ((IGH_Goo)val).CastTo <Surface>(ref val4);
                objects.Replace(guid, val4);
                break;

            case "Twisted Box":
            case "Box":
            case "Brep":
                ((IGH_Goo)val).CastTo <Brep>(ref val3);
                objects.Replace(guid, val3);
                break;
            }
            ObjectAttributes attributes = val2.Object().get_Attributes();
            attributes.set_ObjectId(guid);
            objects.ModifyAttributes(_doc.get_Objects().MostRecentObject().get_Id(), attributes, true);
        }
    }