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(); }
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; }
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(); }
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); }