Exemplo n.º 1
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object can be used to retrieve data from input parameters and
        /// to store data in output parameters.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            List <Mesh> parts  = new List <Mesh>();
            List <Mesh> brdies = new List <Mesh>();

            if (!DA.GetDataList(0, parts))
            {
                return;
            }
            DA.GetDataList(1, brdies);

            IntPtr graphData = TopoCreator.initContactGraph();

            for (int kd = 0; kd < parts.Count; kd++)
            {
                var mesh = parts[kd];
                addToContactGraph(mesh, false, graphData);
            }

            for (int kd = 0; kd < brdies.Count; kd++)
            {
                var mesh = brdies[kd];
                addToContactGraph(mesh, true, graphData);
            }

            Rhino.Geometry.Mesh rhmesh = new Rhino.Geometry.Mesh();
            TopoCreator.getContactMesh(rhmesh, graphData);
            DA.SetData(0, rhmesh);

            TopoCreator.deleteContactGraph(graphData);

            return;
        }