Exemplo n.º 1
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            CellGrid2d g = new CellGrid2d();

            if (!DA.GetData(0, ref g))
            {
                return;
            }



            Vec2d[] vals  = new Vec2d[g.XRes * g.YRes];
            int     count = 0;

            for (int i = 0; i < g.XRes; i++)
            {
                for (int j = 0; j < g.YRes; j++)
                {
                    vals[count] = new Vec2d(g.Cells[i, j].A, g.Cells[i, j].B);
                    count++;
                }
            }
            //field.Set(vals);
            //DA.SetData(0, field);
        }
Exemplo n.º 2
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            debugLog.Clear();
            CellGrid2d grid = new CellGrid2d();
            Mesh       m    = null;

            if (!DA.GetData(0, ref m))
            {
                return;
            }
            if (!DA.GetData(1, ref grid))
            {
                return;
            }


            if (m.Faces.Count != grid.Cells.Length)
            {
                AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Mesh must have same amount of faces as cellgrid.");
            }

            debugLog.Add(grid.XRes.ToString());
            debugLog.Add(grid.YRes.ToString());
            debugLog.Add(grid.Cells.Length.ToString());

            foreach (Point3d v in m.Vertices)
            {
                m.VertexColors.Add(0, 0, 0);
            }

            double[] AFlat = new double[grid.Cells.Length];
            int      count = 0;

            for (int i = 0; i < grid.XRes; i++)
            {
                for (int j = 0; j < grid.YRes; j++)
                {
                    AFlat[count] = grid.Cells[i, j].A;
                    count++;
                }
            }

            for (int i = 0; i < m.Faces.Count; i++)
            {
                int[] indices = m.Faces.GetTopologicalVertices(i);
                int   val     = (int)SpatialSlur.SlurCore.SlurMath.Remap(AFlat[i], 0, 1, 0, 255);

                foreach (int ind in indices)
                {
                    m.VertexColors[ind] = Color.FromArgb(val, val, val);
                }
            }


            DA.SetDataList("debug", debugLog);
            DA.SetData("Mesh Output", m);
        }