Jürg Lehni
|
dc35fdbd02
|
Move named inner functions out of nested scopes, to prepare for 'use strict;' transition.
|
2013-02-08 18:23:33 -08:00 |
|
Jürg Lehni
|
1ee29d56ac
|
Improve comment about JavaScriptCore bug.
|
2013-02-08 16:35:33 -08:00 |
|
Jürg Lehni
|
b6d2d83af5
|
Fix the strangest JavaScriptCore bug that I've encountered in ages.
Closes #168. Read comment for more details.
|
2013-02-08 16:32:47 -08:00 |
|
Jürg Lehni
|
02ca95eb46
|
Avoid accidental global leakage.
|
2013-02-08 16:12:57 -08:00 |
|
Jürg Lehni
|
6c9c16ad3d
|
Update copyright information comments, and year.
|
2013-01-28 18:03:27 -08:00 |
|
Jürg Lehni
|
b0deda9445
|
Add missing documentation for various location related functions on Curve.
|
2013-01-28 16:47:45 -08:00 |
|
Jürg Lehni
|
c7d8aebb9e
|
Swap Curve's bounds scope with point evaluation scope, for proximity to bounds related methods in scope before.
|
2013-01-28 16:32:04 -08:00 |
|
Jürg Lehni
|
1a438b8b9b
|
Change Curve#[getPoint / getTangent / getNormal](t) to #[getPoint / getTangent / getNormal](offset, isParamter).
Keep deprecated versions around for now.
|
2013-01-28 16:30:28 -08:00 |
|
Jürg Lehni
|
e75ee18de1
|
Restructure code a bit.
|
2013-01-22 14:58:34 -08:00 |
|
Jürg Lehni
|
a5bfa9e5d3
|
Remove debug logging for Segment / Curve insertion, deletion and splitting.
|
2013-01-22 14:54:19 -08:00 |
|
Jürg Lehni
|
f09bc84a12
|
Implement correct handling of Curves / Segments synchronization, improve CurveLocation linking to Curves through their linked Segments, and preserve Curves in Path#split() calls.
|
2013-01-22 14:46:49 -08:00 |
|
Jürg Lehni
|
e4d98f7865
|
Add internal _cloning parameter to all insertion methods.
|
2013-01-20 16:14:30 -08:00 |
|
Jürg Lehni
|
677ea374c5
|
Only change #clockwise on closed Paths when inserting into CompoundPaths.
|
2013-01-20 15:48:06 -08:00 |
|
Jürg Lehni
|
c5ede2e955
|
Add support for _setProperties() to CompoundPath constructor.
|
2013-01-20 15:20:10 -08:00 |
|
Jürg Lehni
|
ba5aa86411
|
Include Roger Willcocks in the thanks regarding isSufficentlyFlat.
|
2013-01-20 14:28:02 -08:00 |
|
Jürg Lehni
|
4346563fe4
|
No need to merge Path#_serializeFields, simply keep in sync with Item#_serializeFields (excluding #children).
|
2013-01-20 14:01:43 -08:00 |
|
Jürg Lehni
|
b05a21d6c9
|
Fix bug in Curve#getLocationOf().
|
2013-01-20 14:01:42 -08:00 |
|
Jürg Lehni
|
49c8f8b6b5
|
A couple of improvements on Path#split().
|
2013-01-20 14:01:42 -08:00 |
|
Jürg Lehni
|
b04eb2b98f
|
Implement Path#split() and Curve#split().
|
2012-12-31 22:28:41 +01:00 |
|
Jürg Lehni
|
d2b799f4db
|
Fix various issues with Path#curves synchronization.
|
2012-12-31 22:21:50 +01:00 |
|
Jürg Lehni
|
f0038465cc
|
Fix clearing of removed segments.
|
2012-12-31 21:45:30 +01:00 |
|
Jürg Lehni
|
a10e44d601
|
Minor code clean-up.
|
2012-12-31 21:43:43 +01:00 |
|
Jürg Lehni
|
8cea919dbd
|
Calculate CurveLocation#parameter uncached when dealing with dividing or splitting, since these commands alter the underlying Path.
|
2012-12-31 21:42:55 +01:00 |
|
Jürg Lehni
|
5a2be6d545
|
No need for chainable functions on Item types.
|
2012-12-31 21:42:14 +01:00 |
|
Jürg Lehni
|
d509f86e1a
|
Fix issue where removing segments from open paths would correct curves wrongly.
|
2012-12-31 21:19:55 +01:00 |
|
Jürg Lehni
|
5da4e89672
|
Return 'this' in more places to facilitate chained calls inside the library.
|
2012-12-31 20:07:28 +01:00 |
|
Jürg Lehni
|
8ec8af4dc5
|
Define CurveLocation#divide().
|
2012-12-30 19:53:09 +01:00 |
|
Jürg Lehni
|
e066db4577
|
Implement Curve#divide().
|
2012-12-30 19:49:17 +01:00 |
|
Jürg Lehni
|
4185b63d99
|
Und recent renaming of #getNearest*() methods.
|
2012-12-30 19:43:35 +01:00 |
|
Jürg Lehni
|
4ab9a942b0
|
Clean up Path.Constructor code.
|
2012-12-30 18:33:46 +01:00 |
|
Jürg Lehni
|
a1fc86b19e
|
Add forgotten passing on of arguments._filtered.
|
2012-12-30 18:29:01 +01:00 |
|
Jürg Lehni
|
4e20a5794f
|
Remove debug logging.
|
2012-12-30 18:27:42 +01:00 |
|
Jürg Lehni
|
8bed8cb15d
|
Define mechanism for flexible reading of named arguments through Base.readNamed() and Base.hasNamed(), and use it to implement property object literal versions of Path.Constructor code.
|
2012-12-30 18:24:33 +01:00 |
|
Jürg Lehni
|
2abefee336
|
Merge Base.readValue() with Base.read() and rename Base.peekValue() to Base.peek().
When called directly on Base, read() reads values, otherwise the specific type of the subclass it is called on.
|
2012-12-30 16:07:20 +01:00 |
|
Jürg Lehni
|
1b539301ad
|
Find a better naming convention for the various getLocation* methods (*At for offsets / parameters, *Of for points), implement the missing methods on Curve and use them in Path.
|
2012-12-27 21:08:03 +01:00 |
|
Jürg Lehni
|
231369fa01
|
Shorten code a bit, using loops.
|
2012-12-27 20:46:12 +01:00 |
|
Jürg Lehni
|
cb8f3291d3
|
Clean up some comments.
|
2012-12-27 20:19:23 +01:00 |
|
Jürg Lehni
|
5b9d33f32e
|
Fix imprecision in intersection code by re-introducing tolerance parameter in Curve#isFlatEnough().
|
2012-12-27 20:13:45 +01:00 |
|
Jürg Lehni
|
3c4978eb04
|
Rename Curve#getParameter(point) to Curve#getParameterOf(point), to better distinguish from Curve#getParameterAt(length).
|
2012-12-27 20:09:21 +01:00 |
|
Jürg Lehni
|
00898908d3
|
Write documentation for PathItem#getIntersections().
|
2012-12-27 19:26:40 +01:00 |
|
Jürg Lehni
|
68ad4bb5ba
|
Implement PathItem#getIntersections(path) and Curve#getIntersections(curve) using divide-and-conquer approach, and new Curve.getBounds().
|
2012-12-27 19:23:03 +01:00 |
|
Jürg Lehni
|
03b5d58e79
|
Merge branch 'refs/heads/master' into intersection
|
2012-12-27 18:43:43 +01:00 |
|
Jürg Lehni
|
75596e1d03
|
Move a part of Path.getBounds() code into Curve._addBounds(), and use it to also define Curve.getBounds().
|
2012-12-27 18:38:55 +01:00 |
|
Jürg Lehni
|
57a9f4fc91
|
Use constant substitution for Numerical constants as well.
|
2012-12-27 18:36:59 +01:00 |
|
Jürg Lehni
|
050ca1dcb1
|
Further clean up Path.getBounds() code.
|
2012-12-27 17:43:21 +01:00 |
|
Jürg Lehni
|
3a1f2eec3f
|
Restructure Path#getBounds() code so Curve bounds calculations can be moved to Curve.
|
2012-12-27 15:19:42 +01:00 |
|
Jürg Lehni
|
2673991620
|
Have Path#_serializeFields inherit from Item#_serializeFields.
|
2012-12-27 13:04:38 +01:00 |
|
Jürg Lehni
|
f45c04a359
|
Remove overridden Path#matrix getters and setters, since we now control behavior through #applyMatrix.
|
2012-12-27 13:04:07 +01:00 |
|
Jürg Lehni
|
4f83e0eee6
|
Commit first version of serialization / deserialization mechanism.
It appears to work fine already for Paths and Groups.
|
2012-12-27 12:45:55 +01:00 |
|
Jürg Lehni
|
ae4e5d4be5
|
Rename Item#setProperties() to hidden #_setProperties() and add public Item#set() to use same functionality from outside.
|
2012-12-27 00:52:09 +01:00 |
|
Jürg Lehni
|
3ac039bd66
|
Implement properties object literal initialization for all Item constructors.
|
2012-12-25 22:12:25 +01:00 |
|
Jürg Lehni
|
947afe85f0
|
Simplify Path#initialize() code.
|
2012-12-25 16:59:05 +01:00 |
|
Jürg Lehni
|
8f093f6dd7
|
Remove all PORT comments, since we won't port back features to Scriptographer.
|
2012-12-25 16:07:48 +01:00 |
|
Jürg Lehni
|
b54bdadaff
|
Rename Item#transformContent to #applyMatrix.
|
2012-12-24 17:39:24 +01:00 |
|
Jürg Lehni
|
d6fceb928f
|
Implement Item#transformContent property, which controls wether Item#transform() directly applies transformations to contents, or simply stores them in Item#matrix.
|
2012-12-24 00:39:42 +01:00 |
|
Jürg Lehni
|
e21ea457a7
|
Remove Item#apply() and clean up #applyMatrix() and simplify handling.
|
2012-12-24 00:29:09 +01:00 |
|
Jürg Lehni
|
734cc1cc61
|
Undo commit 4445376c0204cb5a2e408c64b77a5b6fa09305ba since it clashes with magnification.
|
2012-12-21 16:41:57 +01:00 |
|
Jürg Lehni
|
c025c41ec0
|
Start implementing PathItem#getIntersections().
|
2012-12-21 16:13:38 +01:00 |
|
Jürg Lehni
|
d43cc28aac
|
Optimise Curve constructors that construct from 4 arguments (points) and 8 (coordinate values).
|
2012-12-20 18:03:11 +01:00 |
|
Jürg Lehni
|
e10ef4dba3
|
Fix comment.
|
2012-12-19 03:22:57 +01:00 |
|
Jürg Lehni
|
22ddd7a37e
|
Implement CompoundPath#curves.
|
2012-12-18 14:53:38 +01:00 |
|
Jürg Lehni
|
29a2bc781b
|
Implement the various bounds getter on Curve too, using caching and the new static Path.get*Bounds methods.
|
2012-12-18 14:35:21 +01:00 |
|
Jürg Lehni
|
4de5f30f72
|
Improve documentation.
|
2012-12-18 14:19:22 +01:00 |
|
Jürg Lehni
|
b535d9f843
|
Implement new Bootstrap feature that allows hiding of getter parameters to make sure beans are produced, and use it across the library.
|
2012-12-15 19:51:31 +01:00 |
|
Jürg Lehni
|
5a316c244b
|
Directly expose bounds methods as statics rather than using a private scope.
|
2012-12-15 08:27:37 -08:00 |
|
Jürg Lehni
|
0d2ed108e2
|
Refactor getBounds code so that functionality can be exposed as static methods on Path.
|
2012-12-15 08:19:10 -08:00 |
|
Jürg Lehni
|
021009abbc
|
Shorten Path#getBounds() code by using Numerical.solveQuadratic().
|
2012-12-15 07:58:20 -08:00 |
|
Jürg Lehni
|
09ee9a0689
|
Exclude 1 in parameter range for crossing counting, as segment points would be counted twice otherwise.
|
2012-12-15 02:27:36 -08:00 |
|
Jürg Lehni
|
16578e6b15
|
Clean up code.
|
2012-12-15 02:24:46 -08:00 |
|
Jürg Lehni
|
a36d244eb1
|
Handle impression in Curve#getCrossings(), causing wrong results when handling circles.
|
2012-12-15 01:52:23 -08:00 |
|
Jürg Lehni
|
9a7f72e163
|
Clean up getBounds code a bit, by using less local variables and more explicit variable names.
|
2012-12-14 21:40:25 -08:00 |
|
Jürg Lehni
|
2061cb0517
|
Fix Path#contains() for unclosed paths that have a fill color.
|
2012-12-14 21:39:47 -08:00 |
|
Jürg Lehni
|
9d8bf12028
|
Never return null from #getBounds.
|
2012-12-09 18:00:23 -08:00 |
|
Jürg Lehni
|
d16155f4fe
|
Fix CompoundPath#clone() so that it does not alter the #clockwise state on its children.
|
2012-12-01 11:31:03 -08:00 |
|
Jürg Lehni
|
f14b685c1d
|
Use #_type comparisson rather than slower instanceof operator wherever we can.
|
2012-12-01 11:17:09 -08:00 |
|
Jürg Lehni
|
ace1d0f441
|
No need to set _clockwise since #reverse() already does so.
|
2012-12-01 11:10:59 -08:00 |
|
Jürg Lehni
|
d0cc8b6c16
|
Fix issue with hit-testing filled paths that are not closed.
|
2012-11-28 22:13:31 -08:00 |
|
Jürg Lehni
|
4d51173881
|
Keep Path#curves in sync properly when removing the last segment of an open path.
Closes #138.
|
2012-11-23 13:58:13 -08:00 |
|
Jürg Lehni
|
61b6026361
|
Rename CompoundPath#flatten() to #reduce(), to avoid clash with Path#flatten().
|
2012-11-23 01:16:21 -08:00 |
|
Ben Firshman
|
8ca26f650a
|
Fixed leaky _handle2
|
2012-11-20 15:53:31 +00:00 |
|
Ben Firshman
|
73d6c102a6
|
Fix k leaking into globals
|
2012-11-20 15:53:04 +00:00 |
|
Ben Firshman
|
dc1161b32a
|
Fix fullLength leaking into globals
|
2012-11-20 15:53:03 +00:00 |
|
Jürg Lehni
|
d671a08205
|
Introduce Base.toFloat() and rename Base.formatNumber() to Base.formatFloat()
|
2012-11-14 01:31:08 -08:00 |
|
Jürg Lehni
|
e9a9066d7f
|
Use group creation without explicit array declaration, as that's been supported all along.
|
2012-11-06 20:37:50 -08:00 |
|
Jürg Lehni
|
1cb6a7fc3c
|
Clean up Path#smooth() code a bit.
|
2012-11-06 20:18:59 -08:00 |
|
Jürg Lehni
|
f110038104
|
Improve clipping mask drawing, and remove some unneeded ctx.save() / ctx.restore() calls.
|
2012-11-06 20:14:21 -08:00 |
|
Jürg Lehni
|
4b6207bdb6
|
Do not allow adding of items other than paths to CompoundPath.
|
2012-11-06 14:01:52 -08:00 |
|
Jürg Lehni
|
28642bd1c8
|
Rename Path.Oval() to Path.Ellipse(), and deprecate Path.Oval().
|
2012-11-06 11:37:00 -08:00 |
|
Jürg Lehni
|
fd8fe9c08e
|
Rename CompoundPath#simplify() to #flatten() to avoid clashes with Path#simplify(), and add Path#flatten(), returning itself.
|
2012-11-06 10:16:03 -08:00 |
|
Jonathan Puckey
|
33c13b36a3
|
Fix drawing of groups where a compound path is used as a clip mask.
|
2012-11-06 18:07:51 +01:00 |
|
Jürg Lehni
|
4c51544b6e
|
Implement correct checks for primitives (rect, ellipse, circle).
|
2012-11-06 01:22:16 -08:00 |
|
Jürg Lehni
|
64b9daacd0
|
Code clean-up.
|
2012-11-05 21:06:56 -08:00 |
|
Jürg Lehni
|
6e0f29bf4a
|
Rename Path#closed getter to #isClosed() instead of #getClosed().
|
2012-11-05 21:06:47 -08:00 |
|
Jürg Lehni
|
400b454177
|
Introduce Numerical.isZero(), for comparisons against 0 with a tolerance.
|
2012-11-05 21:06:13 -08:00 |
|
Jürg Lehni
|
35568c15f2
|
Implement transparent constant-substitution in prepro.js to shave of some extra bytes of final distribution file.
|
2012-11-05 18:11:44 -08:00 |
|
Jürg Lehni
|
1050e3314e
|
Implement Segment#isLinear() and Path#isPolygon().
|
2012-11-04 00:03:49 -07:00 |
|
Jürg Lehni
|
19d145f281
|
Introduce Item#type, returning a simple item type string identifier.
|
2012-11-03 23:43:18 -07:00 |
|
Jürg Lehni
|
6ed1d67ada
|
Modernize Bootstrap.js, introduce Base.create() and use it instead of the Constructor.dont hack for object creation without the calling of initialize.
|
2012-11-03 21:49:37 -07:00 |
|
Jürg Lehni
|
07c0b6ce6a
|
Improve Path#moveTo behavior()
Allowing it to be called multiple times before any other drawing commands.
|
2012-11-03 19:45:02 -07:00 |
|
Jürg Lehni
|
1ce332756e
|
Rename ImportSvg to SvgImporter, and ExportSvg to SvgExporter.
|
2012-11-02 17:40:07 -07:00 |
|