Ejemplo n.º 1
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            //---variables---

            List <Curve> curves = new List <Curve>();
            MeshGeometry mesh   = new MeshGeometry();

            //---input---

            if (!DA.GetDataList(0, curves))
            {
                return;
            }
            if (!DA.GetData(1, ref mesh))
            {
                return;
            }

            //---setup---

            int    u           = mesh.GetU();
            int    v           = mesh.GetV();
            Brep   origBrep    = mesh.GetOrigBrep();
            double volume      = origBrep.GetVolume();
            double sqrt3       = (double)1 / 3;
            double refLength   = Math.Pow(volume, sqrt3);
            Brep   brepSurface = Brep.CreateEdgeSurface(curves);

            Point3d[] vertices = brepSurface.DuplicateVertices();
            Surface   surface  = brepSurface.Faces[0];

            // --- solve ---

            List <Point3d> points = CreatePoints(surface, u, v);

            Color pointsColor = Color.FromArgb(135, 206, 255);

            (List <string> texts, List <Plane> planes) = CreateTextAndPlane(curves);

            double size = (double)refLength / 7;

            Color colorText = Color.Orange;

            // --- output ---

            DA.SetDataList(0, points);
            DA.SetData(1, pointsColor);
            DA.SetDataList(2, texts);
            DA.SetData(3, size);
            DA.SetDataList(4, planes);
            DA.SetData(5, colorText);
        }