private void DrawSample(Graphics g, Size clientArea, CalibratedInkSample sample) { CalibratedInkSample lastSample; if (_Ink.Count == 0) //no previous ink samples { lastSample = new CalibratedInkSample(0, 0, 0, -1); } else { lastSample = _Ink[_Ink.Count - 1]; } RawInkSample raw = InkCalibration.Current.CalibratedToRaw(g, sample, clientArea); //the current raw sample RawInkSample lastRaw = (lastSample.IsInvalid() ? raw : InkCalibration.Current.CalibratedToRaw(g, lastSample, clientArea)); _InkPen.Draw( g, DrawPressureMode, lastSample, sample, lastRaw, raw); _Ink.Add(sample); }
protected override RawInkSample PipelinedRawToCalibratedConversion(Graphics g, RawInkSample sample, Size clientArea) { sample = base.PipelinedRawToCalibratedConversion(g, sample, clientArea); Point areaVector = new Point(clientArea.Width, clientArea.Height); InkRenderer.PixelToInkSpace(g, ref areaVector); sample.X -= areaVector.X >> 1; sample.Y -= areaVector.Y >> 1; return sample; }
/// <summary> /// Converts a RawInkSample to a CalibratedInkSample. /// </summary> /// <param name="g">The capture- or display- surface graphics object.</param> /// <param name="sample">The raw sample to convert.</param> /// <param name="clientArea">The capture- or display- surface size in pixels.</param> /// <returns>The CalibratedInkSample.</returns> public CalibratedInkSample RawToCalibrated(Graphics g, RawInkSample sample, Size clientArea) { //don't bother calibrating invalid samples if (sample.IsInvalid()) { return(new CalibratedInkSample(sample.Time, sample.X, sample.Y, sample.Pressure)); } //next apply this instance's calibration sample = PipelinedRawToCalibratedConversion(g, sample, clientArea); //return a calibrated sample return(new CalibratedInkSample(sample.Time, sample.X, sample.Y, sample.Pressure)); }
protected override RawInkSample PipelinedRawToCalibratedConversion(System.Drawing.Graphics g, RawInkSample sample, System.Drawing.Size clientArea) { //TODO: implement return(base.PipelinedRawToCalibratedConversion(g, sample, clientArea)); }
protected virtual RawInkSample PipelinedRawToCalibratedConversion(Graphics g, RawInkSample sample, Size clientArea) { //invoke the base calibration if (_BaseCalibration != null) sample = _BaseCalibration.PipelinedRawToCalibratedConversion(g, sample, clientArea); //default implementation does no calibration return sample; }
/// <summary> /// Converts a RawInkSample to a CalibratedInkSample. /// </summary> /// <param name="g">The capture- or display- surface graphics object.</param> /// <param name="sample">The raw sample to convert.</param> /// <param name="clientArea">The capture- or display- surface size in pixels.</param> /// <returns>The CalibratedInkSample.</returns> public CalibratedInkSample RawToCalibrated(Graphics g, RawInkSample sample, Size clientArea) { //don't bother calibrating invalid samples if (sample.IsInvalid()) return new CalibratedInkSample(sample.Time, sample.X, sample.Y, sample.Pressure); //next apply this instance's calibration sample = PipelinedRawToCalibratedConversion(g, sample, clientArea); //return a calibrated sample return new CalibratedInkSample(sample.Time, sample.X, sample.Y, sample.Pressure); }
protected override RawInkSample PipelinedRawToCalibratedConversion(System.Drawing.Graphics g, RawInkSample sample, System.Drawing.Size clientArea) { //TODO: implement return base.PipelinedRawToCalibratedConversion(g, sample, clientArea); }
protected override RawInkSample PipelinedRawToCalibratedConversion(Graphics g, RawInkSample sample, Size clientArea) { sample = base.PipelinedRawToCalibratedConversion(g, sample, clientArea); Point areaVector = new Point(clientArea.Width, clientArea.Height); InkRenderer.PixelToInkSpace(g, ref areaVector); sample.X -= areaVector.X >> 1; sample.Y -= areaVector.Y >> 1; return(sample); }
protected virtual RawInkSample PipelinedRawToCalibratedConversion(Graphics g, RawInkSample sample, Size clientArea) { //invoke the base calibration if (_BaseCalibration != null) { sample = _BaseCalibration.PipelinedRawToCalibratedConversion(g, sample, clientArea); } //default implementation does no calibration return(sample); }