Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implemented stylus pressure in radius calculation, StrokePoint generation, and example app (Resolves #5) #7

Merged
merged 1 commit into from Jul 14, 2022

Conversation

matthew-carroll
Copy link
Contributor

Implemented stylus pressure in radius calculation, StrokePoint generation, and example app (Resolves #5)

The calculation behavior wasn't considering pressure when calculating the radius, nor interpolating the points. This PR adds that.

Also, the example app was using a GestureDetector, which doesn't report pressure. I switch it to a Listener, which reports the kind of device, and in the case of a stylus, includes pressure.

I also updated the .gitignore to match a standard Flutter project.

@steveruizok steveruizok merged commit 066461e into steveruizok:main Jul 14, 2022
@steveruizok
Copy link
Owner

Great work, thanks!

@adil192
Copy link
Collaborator

adil192 commented Dec 7, 2022

Hi @steveruizok, when can we expect a new release to pub.dev with these new changes?

@adil192
Copy link
Collaborator

adil192 commented Feb 6, 2023

@steveruizok any updates?

adil192 added a commit that referenced this pull request Feb 6, 2024
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: 'dart:ui/lerp.dart': Failed assertion: line 19 pos 10: '<optimized out>': Cannot interpolate between finite and non-finite values
#0      _AssertionError._doThrowNew (dart:core-patch/errors_patch.dart:51:61)
#1      _AssertionError._throwNew (dart:core-patch/errors_patch.dart:40:5)
#2      lerpDouble (dart:ui/lerp.dart:19:10)
#3      PointVector.lerp (package:perfect_freehand/src/types/point_vector.dart:54:7)
#4      getStrokeOutlinePoints (package:perfect_freehand/src/get_stroke_outline_points.dart:238:31)
#5      getStroke (package:perfect_freehand/src/get_stroke.dart:19:10)
#6      Stroke._getPolygon (package:saber/components/canvas/_stroke.dart:200:21)
#7      Stroke._updatePolygon (package:saber/components/canvas/_stroke.dart:48:16)
#8      Stroke.polygon (package:saber/components/canvas/_stroke.dart:38:32)
#9      Stroke.toSvgPath (package:saber/components/canvas/_stroke.dart:247:9)
#10     EditorExporter.generatePdf.<anonymous closure>.<anonymous closure> (package:saber/data/editor/editor_exporter.dart:111:52)
#11     CustomPaint.paint (package:pdf/src/widgets/basic.dart:623:25)
#12     SingleChildWidget.paintChild (package:pdf/src/widgets/widget.dart:320:14)
#13     ConstrainedBox.paint (package:pdf/src/widgets/basic.dart:449:5)
#14     StatelessWidget.paint (package:pdf/src/widgets/widget.dart:260:15)
#15     Page.paint (package:pdf/src/widgets/page.dart:246:13)
#16     Page.postProcess (package:pdf/src/widgets/page.dart:179:5)
#17     Document.save (package:pdf/src/widgets/document.dart:130:14)
#18     EditorState.exportAsPdf (package:saber/pages/editor/editor.dart:1213:72)
<asynchronous suspension>
#19     _ExportBarState._onPressed.<anonymous closure>.<anonymous closure> (package:saber/components/toolbar/export_bar.dart:38:29)
<asynchronous suspension>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

simulatePressure:false with pressure given in the Point is not working
3 participants