static void AddPeriodicCorners(PeriodicMap map, VoronoiBoundary boundary) { IDictionary <Corner, int> periodicCornerCorrelation = ExtractPeriodicCornerMap( boundary.EdgeTags.Length, map.PeriodicBoundaryCorrelation); map.PeriodicCornerCorrelation = periodicCornerCorrelation; AddPeriodicCornerTransformations(periodicCornerCorrelation, map.PeriodicBoundaryTransformations); AddPeriodicCornerBoundaryCorrelation(periodicCornerCorrelation, map.PeriodicBoundaryCorrelation); }
public static PeriodicMap GeneratePeriodicMap(MeshingAlgorithm.State settings, VoronoiBoundary boundary) { PeriodicMap map = null; IDictionary <int, int> periodicBoundaryMap = ExtractPeriodicBoundaryMap(boundary.EdgeTags); if (periodicBoundaryMap.Count > 0) { IDictionary <int, Transformation> periodicBoundaryTransformationMap = CreatePeriodicTransformationsFrom( settings.Boundary, periodicBoundaryMap); map = new PeriodicMap { PeriodicBoundaryCorrelation = periodicBoundaryMap, PeriodicBoundaryTransformations = periodicBoundaryTransformationMap, }; AddPeriodicCorners(map, boundary); } return(map); }