private object Run_MapCalculateSlopeAngle(LispRuntimeCommand cmd, LispList list) { CheckParameterCount(cmd, list, 1); int c = 1; Map map = Run <Map>(list.items[c++]); MapAlgorithms alg = new MapAlgorithms(Logger); return(alg.CalculateSlopeAngle(map)); }
private object Run_FillHoles(LispRuntimeCommand cmd, LispList list) { CheckParameterCount(cmd, list, 1); Map map = Run <Map>(list.items[1]); MapAlgorithms alg = new MapAlgorithms(base.Logger); //alg.LinearFillMap(map); //alg.EdgeFillMapAlgorithm(map); return(alg.FillHole(map)); }
private object Run_GenerateMap(LispRuntimeCommand cmd, LispList list) { MapAlgorithms alg = new MapAlgorithms(Logger); int c = 1; string type = Run <string>(list.items[c++]); int width = Run <int>(list.items[c++]); int height = Run <int>(list.items[c++]); var map = alg.GenerateMap(type, width, height); return(map); }
private object MapGeometricMeanFilter(LispRuntimeCommand cmd, LispList list) { CheckParameterCount(cmd, list, 2); int c = 1; var map = Run <Map>(list.items[c++]); var N = Run <int>(list.items[c++]); if (N % 2 != 1) { throw new ArgumentOutOfRangeException("N must be odd for GeometricMeanFilter"); } var alg = new MapAlgorithms(Logger); var newMap = alg.GeometricMeanFilter(map, N); return(newMap); }
private object Run_MakeMap(LispRuntimeCommand cmd, LispList list) { if (list.items.Count < 3) { throw new LispParseException($"'{cmd.CommandName}' command must have at least 2 parameters. Line: {list.line}:{list.position}"); } PointCloud pc = Run <PointCloud>(list.items[1]); int mapWidth = Run <int>(list.items[2]); HashSet <int> includedClassifications = new HashSet <int>(); for (int i = 3; i < list.items.Count; i++) { includedClassifications.Add(Run <int>(list.items[i])); } MapAlgorithms alg = new MapAlgorithms(base.Logger); return(alg.ReadCloudIntoMap(mapWidth, pc, includedClassifications)); }