Ejemplo n.º 1
0
        protected void Initialize()
        {
            double num;

            this.OnInitializing();
            this.stamp = BrushToolChangesBase <TDerived, TTool> .GetCachedStamp((double)this.PenWidth, (double)this.Hardness, 1.0, this.Antialiasing);

            if (this.Antialiasing)
            {
                num = this.PenWidth * 0.15;
            }
            else
            {
                num = 1.0;
            }
            double stampSpacingPx = Math.Max(1.0, num);
            BrushStrokeLengthMetric lengthMetric = this.Antialiasing ? BrushStrokeLengthMetric.Euclidean : BrushStrokeLengthMetric.Anamorphic;

            this.renderData = new BrushStrokeRenderData(this.stamp.Size, stampSpacingPx, 8, lengthMetric);
            this.renderData.AddInputPoints(this.InputPoints);
            this.renderData.EnsureStrokeSamplesUpdated();
            this.renderDataCurrencyToken = this.renderData.CreateCurrencyToken();
            this.renderCache             = new BrushStrokeRenderCache(this.renderData, this.stamp, this.renderData.TileEdgeLog2);
            this.OnInitialized();
        }
Ejemplo n.º 2
0
 public BrushStrokePath(BrushStrokeLengthMetric lengthMetric)
 {
     this.pointsRO        = new ReadOnlyCollection <PointDouble>(this.points);
     this.length          = 0.0;
     this.lengthAtPoint   = new SegmentedList <double>();
     this.lengthAtPointRO = new ReadOnlyCollection <double>(this.lengthAtPoint);
     this.lengthMetric    = lengthMetric;
 }
Ejemplo n.º 3
0
        protected void Initialize()
        {
            this.OnInitializing();
            this.stamp = BrushToolChangesBase <TDerived, TTool> .stampCache.Get(TupleStruct.Create <double, double, double, bool>((double)this.PenWidth, (double)this.Hardness, 1.0, this.Antialiasing));

            double num            = this.PenWidth * 0.15;
            double stampSpacingPx = Math.Max(1.0, num);
            BrushStrokeLengthMetric lengthMetric = this.Antialiasing ? BrushStrokeLengthMetric.Euclidean : BrushStrokeLengthMetric.Anamorphic;

            this.renderData = new BrushStrokeRenderData(this.stamp.Size, stampSpacingPx, 7, lengthMetric);
            this.renderData.AddInputPoints(this.InputPoints);
            this.renderData.EnsureStrokeSamplesUpdated();
            this.renderDataCurrencyToken = this.renderData.CreateCurrencyToken();
            this.renderCache             = new BrushStrokeRenderCache(this.renderData, this.stamp, 7);
            this.OnInitialized();
        }
Ejemplo n.º 4
0
 public BrushStrokeRenderData(SizeDouble stampSize, double stampSpacingPx, int tileEdgeLog2, BrushStrokeLengthMetric lengthMetric)
 {
     Validate.Begin().IsFinite(stampSize.Width, "stampSize.Width").IsFinite(stampSize.Height, "stampSize.Height").IsPositive(stampSize.Width, "stampSize.Width").IsPositive(stampSize.Height, "stampSize.Height").IsPositive(stampSpacingPx, "stampSpacingPx").IsNotNegative(tileEdgeLog2, "tileEdgeLog2").Check();
     this.rwLock           = new ReaderWriterLock();
     this.spriteTileSorter = new SpriteTileSorter <int>(TransactedToolChanges.MaxMaxRenderBounds.Size, tileEdgeLog2);
     this.strokePath       = new BrushStrokePath(lengthMetric);
     this.stampSize        = stampSize;
     this.stampSpacingPx   = stampSpacingPx;
     this.inputPoints      = new SegmentedList <BrushInputPoint>();
     this.inputPointsRO    = new ReadOnlyCollection <BrushInputPoint>(this.inputPoints);
     this.strokeSamples    = new SegmentedList <BrushStrokeSample>();
     this.strokeSamplesRO  = new ReadOnlyCollection <BrushStrokeSample>(this.strokeSamples);
 }