예제 #1
0
        public FloorPlanner(Func <double> random, INamedDataCollection metadata, Func <KeyValuePair <string, string>[], Type[], ScriptReference> finder, float wallThickness, WallGrowthParameters wallGrowthParameters, MergingParameters mergeParameters, CorridorParameters corridorParameters)
        {
            Contract.Requires(random != null);
            Contract.Requires(metadata != null);
            Contract.Requires(finder != null);
            Contract.Requires(wallGrowthParameters != null);

            _random               = random;
            _metadata             = metadata;
            _finder               = finder;
            _wallThickness        = wallThickness;
            _wallGrowthParameters = wallGrowthParameters;
            _mergeParameters      = mergeParameters;
            _corridorParameters   = corridorParameters;
        }
예제 #2
0
        private static IList <Tree> Detect(PointSetGroup pointSetGroup)
        {
            var mergingParameters = new MergingParameters
            {
                MinimumRegressionGroupingDistance = 0.09,
                MaximumGroupingEmptyHeight        = 20,
                MinimumGroupingDistance           = 0.35,
            };
            var treeFilters = new List <ITreeFilter>
            {
                new TreeHeightFilter
                {
                    MinimalTreeHeight = 4
                }
            };
            var potentialTrees = pointSetGroup.BuildTrees(mergingParameters);

            return(FilterTrees(potentialTrees, treeFilters));
        }