Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        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));
        }