Exemplo n.º 1
0
        public LocalGeometryView GetErodedView(double actorRadius)
        {
            if (views.TryGetValue(actorRadius, out LocalGeometryView cachedView))
            {
                return(cachedView);
            }
            var preview = PreviewViewManager == this ? null : PreviewViewManager.GetErodedView(actorRadius);

            return(views[actorRadius] = new LocalGeometryView(this, actorRadius, preview));
        }
Exemplo n.º 2
0
        public LocalGeometryView(LocalGeometryViewManager localGeometryViewManager, double holeDilationRadius, LocalGeometryView preview)
        {
            LocalGeometryViewManager = localGeometryViewManager;
            HoleDilationRadius       = holeDilationRadius;
            Preview = preview ?? this;

            CrossoverErosionRadius  = (int)Math.Ceiling((double)(HoleDilationRadius * 2));
            CrossoverDilationFactor = (CrossoverErosionRadius / 2) + kCrossoverAdditionalPathingDilation;

            var padding = (int)Math.Ceiling(HoleDilationRadius) + 10;

            ClipperExtentsHoleClipPolygon = Polygon2.CreateRect(
                -ClipperBase.loRange + padding, -ClipperBase.loRange + padding, ClipperBase.loRange * 2 - padding * 2, ClipperBase.loRange * 2 - padding * 2);
        }