internal BoundaryMesh <T> CreateMesh(List <T> nodes, Settings settings) { MeshingAlgorithm.Settings meshingSettings = ConvertToMesherSettings(settings); BoundaryMesh <T> mesh = MeshingAlgorithm.ComputeMesh(nodes, meshingSettings); return(mesh); }
public VoronoiGrid CreateGrid(VoronoiNodes nodes, Settings settings) { List <Node> mesherNodes = WrapInMesherNodes(nodes.Nodes); BoundaryMesh <Node> mesh = CreateMesh(mesherNodes, settings); VoronoiGrid grid = Convert2VoronoiGrid(mesh, settings); return(grid); }
public static VoronoiGrid Convert2VoronoiGrid <T>(BoundaryMesh <T> mesh, VoronoiInfo info) where T : IVoronoiNodeCastable { IReadOnlyList <MeshCell <T> > cells = mesh.GetCells(); (GridCommons grid, int[][] aggregation) = ExtractGridCommonsAndCellAggregation(cells); IList <T> nodeList = mesh.GetNodes(); IList <VoronoiNode> voronoiNodeList = Cast(nodeList); VoronoiNodes nodes = new VoronoiNodes(voronoiNodeList); VoronoiGrid voronoiGrid = new VoronoiGrid(grid, aggregation, nodes, info); return(voronoiGrid); }
public TrackedVoronoiGrid CreateGrid(VoronoiNodes nodes, Settings settings) { List <TrackableNode> mesherNodes = WrapInMesherNodes(nodes.Nodes); BoundaryMesh <TrackableNode> mesh = CreateMesh(mesherNodes, settings); VoronoiGrid grid = Convert2VoronoiGrid(mesh, settings); OneWayArrayMap resultMap = ExtractMap(mesh.GetNodes()); OneWayArrayMap inputMap = GetInputMap(resultMap, nodes.Count); TrackedVoronoiGrid movingGrid = new TrackedVoronoiGrid { Result = grid, InputNodesToResultNodes = inputMap, ResultNodesToInputNodes = resultMap }; return(movingGrid); }
internal VoronoiGrid Convert2VoronoiGrid(BoundaryMesh <T> mesh, Settings settings) { VoronoiGrid grid = GridConverter.Convert2VoronoiGrid(mesh, settings.GridInfo); return(grid); }