Commit graph

4167 commits

Author SHA1 Message Date
Jürg Lehni
91865be8a3 Merge remote-tracking branch 'origin/master' into solve-cubic
Conflicts:
	src/basic/Line.js
	src/path/Curve.js
	src/path/PathItem.Boolean.js
	src/util/Numerical.js
2015-01-02 16:21:18 +01:00
Jürg Lehni
45c86a3035 Switch to suggested new implementation of Line.getSignedDistance() by @iconexperience
Closes #554
2015-01-02 16:17:19 +01:00
Jürg Lehni
878be7962e Merge branch 'refs/heads/master' into solve-cubic
Conflicts:
	src/path/Curve.js
	src/path/PathItem.Boolean.js
	src/util/Numerical.js
2015-01-02 15:33:23 +01:00
Jürg Lehni
95a8539045 Fix size issue on non-resizable HiDPI canvases.
Reverting back to original behavior in #586.
2015-01-02 14:38:06 +01:00
Jürg Lehni
3c31c0e482 Have SVGImport respect the current PaperScope's applyMatrix setting. 2015-01-02 14:19:17 +01:00
Jürg Lehni
a07dc98046 Clean up and simplify code from pull request #580 and fix CSS in examples accordingly. 2014-12-30 00:16:51 +01:00
Jürg Lehni
dfda6cf7b5 Merge branch 'true-resize-canvas' of https://github.com/georeith/paper.js into georeith-true-resize-canvas 2014-12-29 23:56:57 +01:00
Jürg Lehni
66c67fbe94 Improve insertion handling for Item and Layer so insertAbove() / insertBelow() works for Layers too.
Closes #603
2014-12-29 23:16:13 +01:00
Jürg Lehni
83dd2034c3 Fix issue where cloned TextItems get always inserted into the scene graph.
Closes #606
2014-12-28 19:43:38 +01:00
Jürg Lehni
16105067bf Correctly handle Item#insertChild(null) 2014-12-28 18:29:20 +01:00
Jürg Lehni
a307bc4d14 Implement recursively parameter in Matrix#apply(), so matrices can be backed in recursively in children too. 2014-12-28 18:29:04 +01:00
Jürg Lehni
80e64ad0a9 Implement setters for Raster#width and #height, and properly handle these values being set in constructors, along with #size.
Closes #557.
2014-12-28 18:27:32 +01:00
Jürg Lehni
1de750bc77 Check for Path#closed in Path#equals() 2014-12-28 18:10:14 +01:00
Jürg Lehni
7bc6da5401 Do not create entries in Style#_values for default values. 2014-12-28 18:03:41 +01:00
Jürg Lehni
fb890b2c8a Implement Symbol#equals() 2014-12-28 18:03:19 +01:00
Jürg Lehni
9adbc3774a Implement unit test comparators for many more types, and start refactoring compareItems() helper. 2014-12-28 16:41:23 +01:00
Jürg Lehni
28538d8a43 Clean up code from #597 a bit. 2014-12-26 06:42:46 +01:00
Jürg Lehni
71e2af9d70 Merge pull request #597 from byte-foundry/simplify_closed
fix #572 Handle closed path in PathFitter
2014-12-26 06:30:56 +01:00
Jürg Lehni
b816337e18 Remove legay.js since we're about to hit 2015.
Closes #592
2014-12-26 06:21:56 +01:00
Jürg Lehni
4d6f5c259c Remove non-breaking space.
Closes #602.
2014-12-17 20:07:14 -08:00
louisremi
a9bf0b097e Handle closed path in PathFitter 2014-12-15 14:56:25 +01:00
Leo Koppelkamm
f1348931bb Browser detection: Add Atom shell
As it a an unsual mix of both node and browser environment at the same time
2014-12-12 20:53:12 +01:00
George Reith
6f1c3145bf Fixes #580 where resizable views were only taking into account their offset from the top left of the viewport. 2014-12-04 13:01:02 +00:00
Jürg Lehni
f193acf31b Fix transformation sequence to correctly handle combined rotate and scale commands.
Closes #583
2014-12-02 22:31:20 -08:00
Jürg Lehni
318209e9e9 Replace compareNumbers() with equals() and improve numerical tolerance handling in test helpers. 2014-11-30 11:27:14 -08:00
Jürg Lehni
c48f4d772e Expose #className on all classes that define #_class
Closes #576
2014-11-30 11:13:51 -08:00
Jürg Lehni
ed31476dea Bump version to v0.9.21 2014-11-22 19:23:35 -08:00
Jürg Lehni
7f6bb63683 Correctly handle white-space before first matrix value when handling transform SVG attribute.
Closes #531.
2014-11-22 09:01:01 -08:00
Jürg Lehni
912f7ad629 Allow injection of additional undefined fields through object literal constructors and #set(). 2014-11-18 15:24:40 -08:00
Jürg Lehni
d5471c480f Always return emitter from #on() 2014-11-18 15:05:14 -08:00
Jürg Lehni
19a9976939 Return emitter in #on(), #off(), #once(), so calls can be chained. 2014-11-18 14:56:55 -08:00
Jürg Lehni
0fb7e49248 Return a LinkedPoint from Item#scaling.
Closes #544,
2014-11-09 07:46:45 -08:00
Jürg Lehni
892c1a28bd Some code clean-up. 2014-11-08 17:26:43 -08:00
Jürg Lehni
4ab6446e16 Handle horizontal lines properly in Line.getSignedDistance()
Closes #546.
2014-11-08 17:26:13 -08:00
Jürg Lehni
ebdc63fbfa Use correct formula in Curve#getTangentAt() for end-points when there is no handle.
Closes #553.
2014-11-08 17:16:22 -08:00
Jürg Lehni
bfd3a91df0 Simplify Emitter.inject() a bit, as we only need to handle _events in the first injection scope. 2014-10-21 23:52:53 +02:00
Jürg Lehni
a39eea64e9 Improve docs sequence a bit. 2014-10-20 23:55:24 +02:00
Jürg Lehni
6e9ff38c15 Fix spelling mistakes in docs. 2014-10-20 23:45:33 +02:00
Jürg Lehni
e7707cd354 Implement match.inside and match.overlapping in #getItems(match).
Closes #275
2014-10-20 23:35:47 +02:00
Jürg Lehni
99ef521af4 Switch from inline @option tags to real doc tags. 2014-10-20 23:33:28 +02:00
Jürg Lehni
c25548031b Clean up documentation for Project#getItems() / Item#getItems(). 2014-10-20 22:44:15 +02:00
Jürg Lehni
82b988327d Update docs to use the newly introduced {@option} tag to docuemnt option-style objects. 2014-10-20 22:41:45 +02:00
Jürg Lehni
782bde238c Find a more general implementation for Item#intersects(item). 2014-10-20 18:00:07 +02:00
Jürg Lehni
5ddbc5b07f Implement Item#intersects(item) 2014-10-20 17:00:18 +02:00
Jürg Lehni
b3c7be67fc Support optional hidden matrix argument in #getIntersections()
...in order to provide an alternative matrix for the passed path to check against.
2014-10-20 16:53:49 +02:00
Jürg Lehni
4eb06f0849 Implement Item#isInside(rect). 2014-10-20 16:51:28 +02:00
Jürg Lehni
ad50e9f604 Change the way the optional matrix argument is handled in bounds getters.
Before it was treated as the paren't matrix and the child's was concatenated to it, but it's more logical and useful to just use it as the full replacement matrix instead.
2014-10-20 16:50:33 +02:00
Jürg Lehni
62e5f3b3ac Improve / streamline Matrix documentation a bit. 2014-10-20 16:47:41 +02:00
Jürg Lehni
616e848376 Implement handling of empty and editable in #getItems(), and simplify code a bit. 2014-10-18 14:32:21 +02:00
Jürg Lehni
e7fd751765 Fix docs issues with Item#matches() 2014-10-18 13:40:36 +02:00
Jürg Lehni
3be1e481e9 Preserve line-breaks when replacing mathematical operators, to not mess with debugging. 2014-10-15 15:30:56 +02:00
Jürg Lehni
be82af9b47 Implement Item#matches(name, compare), along with Item#matches(match). 2014-10-15 15:09:44 +02:00
Jürg Lehni
77f6e68846 Remove documentation for deprecated #attach() methods. 2014-10-15 13:01:59 +02:00
Jürg Lehni
0894e625b0 Fix documentation issues with Path#get*At()
Closes #537.
2014-10-15 13:00:50 +02:00
Jürg Lehni
e5714584ff Fix return type of #getCurvatureAt() methods.
Closes #535 properly this time.
2014-10-15 12:02:21 +02:00
Jürg Lehni
b71e2c69d6 Fix documentation of Curve#getCurvatureAt(), as well as Path#getCurvatureAt() & co.
Closes #535
2014-10-14 13:52:57 +02:00
Jürg Lehni
862867ecd2 Bump Acorn version. 2014-10-09 00:17:16 +02:00
Jürg Lehni
3b2a82047e Clean up event related comments, to reflect recent renaming. 2014-10-08 18:33:17 +02:00
Jürg Lehni
68585276a0 Rename ui folder to event. 2014-10-08 18:32:55 +02:00
Jürg Lehni
f4a36b7cd4 Remove all Palette and Component related code, as it is separated into its own project.
https://github.com/lehni/palette.js
2014-10-08 17:43:03 +02:00
Jürg Lehni
f29f3c8b11 Some code clean-up. 2014-10-08 16:36:22 +02:00
Jürg Lehni
8983953ccc Do not export internal Http module. 2014-10-08 15:58:11 +02:00
Jürg Lehni
3c8331a94e No longer export DomElement and DomEvent.
These are undocumented and meant to be private. They may change a lot still.
2014-10-08 15:55:12 +02:00
Jürg Lehni
a457228846 Fix formatting issues. 2014-10-08 15:52:41 +02:00
Jürg Lehni
c7c49d4091 Time to go with the flow and use the on()/off()/emit() pattern for events. 2014-10-08 14:57:56 +02:00
Jürg Lehni
3dc5c94e25 Rename Callback mix-in to Emitter. 2014-10-08 14:13:08 +02:00
Jürg Lehni
d2c2b0a7fd Implement ruler component, and only use palettejs-input id for actual inputs that can have labels. 2014-10-08 00:24:27 +02:00
Jürg Lehni
2217bc2c29 Only expose observed component value in values object if it was already defined there initially.
It seems like too much magic to expose values defined on components there too.
2014-10-08 00:23:52 +02:00
Jürg Lehni
d4c509b4d4 Allow finding of palettes by their ids. 2014-10-07 23:42:40 +02:00
Jürg Lehni
369fcfc7cf Add disabled class to components that have enabled = false. 2014-10-07 23:42:03 +02:00
Jürg Lehni
a92b8eb591 Correctly name boolean getters. 2014-10-07 23:41:26 +02:00
Jürg Lehni
c405c78d41 Implement #element getters to get the native DOM element on Palette and Component. 2014-10-05 12:35:33 +02:00
Jürg Lehni
90d088e708 Switch to object literal constructor for Palette and support props.parent, to set a palette's parent in the DOM. 2014-10-05 12:33:40 +02:00
Jürg Lehni
689e150bb7 Use <span> for text components so they can have a suffix as well. 2014-10-05 12:18:18 +02:00
Jürg Lehni
ca730cd76e Rename _input to _element since it can be other things than <input>, and simplify <button> handling. 2014-10-05 11:17:53 +02:00
Jürg Lehni
8344ea9639 Switch from <input type="button"> to <button> for button components, and allow #text as an alias to #value for better semantics. 2014-10-05 11:14:02 +02:00
Jürg Lehni
6e4c2ebc64 Use an injection loop to produce all methods that simply forward from Palette to root Component. 2014-10-05 00:23:16 +02:00
Jürg Lehni
5456f1a595 Clean up DOM code a bit. 2014-10-05 00:19:47 +02:00
Jürg Lehni
9fec267dd4 Implement table captions through Palette#title / Component#title. 2014-10-05 00:11:29 +02:00
Jürg Lehni
b9af3af6f4 Bring back change event to Palette. 2014-10-04 19:51:10 +02:00
Jürg Lehni
6b9a40d987 Improve documentation of components code. 2014-10-04 19:46:44 +02:00
Jürg Lehni
5f7fd42bcb Add comment about layout components. 2014-10-04 19:39:17 +02:00
Jürg Lehni
ddc7675c13 Improve Component layout class name handling. 2014-10-04 19:35:26 +02:00
Jürg Lehni
22d79948a0 Rename horizontal to columns 2014-10-04 19:02:56 +02:00
Jürg Lehni
73529f0170 Merge Pane functionality into Component.
Work in progress.
2014-10-04 18:58:11 +02:00
Jürg Lehni
e46a1d24da Move View classes to their own folder.
That's not really UI.
2014-10-04 16:51:58 +02:00
Jürg Lehni
5b71dabba2 Rename 'pane' Component to 'column'. 2014-10-02 20:02:04 +02:00
Jürg Lehni
aa73083d4f Make sure nested components are available through the components hierarchy. 2014-10-02 19:41:39 +02:00
Jürg Lehni
4ef4a293ea Expose child components. 2014-10-02 19:20:03 +02:00
Jürg Lehni
fe019f926e Fix Component#setSuffix() 2014-10-02 18:59:26 +02:00
Jürg Lehni
88bc14f597 Clean up Pane code a bit. 2014-10-02 18:45:51 +02:00
Jürg Lehni
8907662524 Use this._set() instead of Base.set(), since it filters for existing properties. 2014-10-02 18:35:03 +02:00
Jürg Lehni
fd6741ce5a Implement Component type 'pane' and merge more functionality with 'row'. 2014-10-02 18:16:38 +02:00
Jürg Lehni
99d46b4478 Restructure Component constructor to facilitate upcoming 'pane' Component type. 2014-10-02 17:09:40 +02:00
Jürg Lehni
85fbc94f41 Move Palette related functionality form Pane to Palette constructor. 2014-10-02 17:09:08 +02:00
Jürg Lehni
e1fba03b34 Make Component#enabled work for row type. 2014-10-02 17:02:26 +02:00
Jürg Lehni
f4c4522c18 Remove references to this in DomElement os we can call method references directly, and always check el for null. 2014-10-02 17:00:40 +02:00
Jürg Lehni
7194d4bcf0 Fix palette labels and improve CSS id / class structure. 2014-10-02 16:30:27 +02:00
Jürg Lehni
54de02149b Implement 'row' type component, for multiple components per row in palettes. 2014-10-02 16:05:56 +02:00
Jürg Lehni
09a4defb73 Separate Palette into Pane and Palette to prepare for nested UIs. 2014-10-02 09:45:19 +02:00
Jürg Lehni
47c225a782 Fix typo.
As reported by https://github.com/paperjs/paperjs.org/pull/7
2014-10-02 01:03:39 +02:00
Jürg Lehni
139adc72de Implement object literal constructor for Palette. 2014-09-30 08:20:44 +02:00
Jürg Lehni
d6481bcb5b Implement Component#enabled and Palette#enabled 2014-09-30 08:20:18 +02:00
Jürg Lehni
021ba59c54 Implement Component#visible. 2014-09-30 08:16:26 +02:00
Jürg Lehni
c7970e367d Always set Component#value at the end of all other values.
Closes #365.
2014-09-29 17:15:33 +02:00
Jürg Lehni
24a80dca27 Remove debug logging. 2014-09-29 16:12:50 +02:00
Jürg Lehni
3cb84842ff Remove forced colon in label, so we can add it optionally through CSS instead. 2014-09-29 15:46:29 +02:00
Jürg Lehni
214ac10d57 Add support for Component#suffix, to define a linked label that should appear after the input element. 2014-09-29 15:46:04 +02:00
Jürg Lehni
c2cb3e3342 Improve Palette and Component code.
- Only create label elements when they are set for the first time.
- Give created elements clear class and id names.
2014-09-29 15:41:14 +02:00
Jürg Lehni
e541b10e89 Move user-agent code to PaperScope and expose through PaperScope#browser. 2014-09-29 13:07:02 +02:00
Jürg Lehni
6a11532322 Clean up and simplify code a bit further. 2014-09-28 11:49:46 +02:00
Jürg Lehni
7462fe0b70 Fix Curve.getParameterAt() for negative values of offset, and implement unit test.
Closes #524.
2014-09-28 11:44:38 +02:00
Jürg Lehni
df190b6a47 Rearrange Project code for better doc sequence. 2014-09-27 22:53:37 +02:00
Jürg Lehni
2c9e15b070 Clean up comments. 2014-09-27 22:53:00 +02:00
Jürg Lehni
c87ce4de4c Implement Item#replaceWith(item)
Closes #454
2014-09-27 22:52:37 +02:00
Jürg Lehni
91539e6bc5 Commit changes forgotten in 6450430b68 2014-09-27 22:51:22 +02:00
Jürg Lehni
6450430b68 Implement new strategy regarding Project#activeLayer:
- By default, no layer is created for any project.
- Project#activeLayer is a getter for the hidden #_activeLayer property. When it is called and no layer exists, one is created on the fly.
- Creating any other items creates a layer if none exists (was already the case).
2014-09-27 22:31:49 +02:00
Jürg Lehni
2dce6c4efa Some code clean-up in Segment#_changed() 2014-09-27 22:09:25 +02:00
Jürg Lehni
cc8b23894c Some clean up related to hidden _uncached parameter. 2014-09-27 22:03:54 +02:00
Jürg Lehni
b8530935a7 Streamline CurveLocation#getTangent/Normal/Curvature getter definitions to align with definitions in Curve, Path and PathIterator. 2014-09-27 22:03:20 +02:00
Jürg Lehni
8b4f59962e Allow better code compression by removing repeated variable access on this. 2014-09-27 22:00:46 +02:00
Jürg Lehni
dd99db8d2d Allow 'false' as well as 'off' for hidpi attribute, since that's what's in use for other attributes as well. 2014-09-26 18:03:37 +02:00
Jürg Lehni
762113230a Implement Item#parentToLocal() and #localToParent()
As outlined in #530
2014-09-25 17:53:08 +02:00
Jürg Lehni
3389687c42 Do not check typeof module.exports === 'object', since it will be the Base constructor function after straps.js is included.
Closes #461
2014-09-25 16:46:34 +02:00
Jürg Lehni
5046a6a64c Fix naming of PathIterator#get*At functions. 2014-09-24 12:32:07 +02:00
Jürg Lehni
4adab91a18 Remove unused argument. 2014-09-23 17:51:29 +02:00
Jürg Lehni
48e9447c47 Avoid error when SVG path data does not contain any 'm' commands.
Fixes #529
2014-09-22 17:44:15 +02:00
Jürg Lehni
ee27fe820f Check for valid parameter range in Curve#getLocationAt() and delegate to it in #getLocationOf() 2014-09-20 11:09:09 +02:00
Jürg Lehni
c94fb3038f Use valid parameter range [0,1] in calls to Curve.solveCubic(). 2014-09-20 11:08:20 +02:00
Jürg Lehni
c2465b60fa Transform the correct amount of points in Curve.getValues() when a matrix is provided. 2014-09-20 11:06:25 +02:00
Jürg Lehni
e5995527e8 Support Point argument reading for Style#shadowOffset. 2014-09-19 18:43:00 +02:00
Jürg Lehni
52dd24097f Define PathIterator#getPoint(), #getTangent(), #getNormal() and #getCurvature(). 2014-09-11 16:06:00 +02:00
Jürg Lehni
67d30f0042 Actually use maxRecursion and tolerance arguments in PathIterator, and increase precision in #flatten() a bit. 2014-09-11 15:20:04 +02:00
Jürg Lehni
73765e6654 Produce Path#getPointAt(), #getTangentAt(), #getNormalAt() & #getCurvature() in a loop, just like for Curve. 2014-09-10 11:21:06 +02:00
Jürg Lehni
50c5c6736c Rename PathFlattener to PathIterator and include the class in exports. 2014-09-10 02:20:00 +02:00
Jürg Lehni
1db4fb4064 Refactor PathFlattener code and add maxRecursion and tolerance arguments to constructor. 2014-09-09 18:32:41 +02:00
Jürg Lehni
7d69ef1864 Fix documentation of bean properties that are not read-only.
@bean can only be used when the property is read-only or both getters and setters are present in the scope.
2014-08-26 10:01:30 +02:00
Jürg Lehni
73751040b7 Bump version to v0.9.20 2014-08-25 14:48:05 +02:00
Jürg Lehni
99b06b061c Correctly match variables to be exposed at the beginning of PaperScripts. 2014-08-25 14:21:13 +02:00
Jürg Lehni
8574c1ebf6 Return the created scope from PaperScript.load() 2014-08-25 13:21:58 +02:00
Jürg Lehni
a564480522 Forgotten in previous commit. 2014-08-25 12:53:13 +02:00
Jürg Lehni
797a393c9a Remove various double white-spaces. 2014-08-25 12:49:14 +02:00
Jürg Lehni
bcc8761f8c Improve PaperScript#load() documentation. 2014-08-25 12:42:44 +02:00
Jürg Lehni
72f16eb1c3 Handle data-paper-ignore like any other Paper attribute, allowing the ignore="true" short-form as well. 2014-08-25 12:34:08 +02:00
Jürg Lehni
93dfd2a15a Remove debugger statement. 2014-08-25 12:24:30 +02:00
Jürg Lehni
c03e9961d2 Allow PaperScript.load(script) to only load specific scripts, and define / improve documentation. 2014-08-25 12:21:27 +02:00
Jürg Lehni
992366246d Ignore hash when comparing PaperScript URLs. 2014-08-25 12:20:58 +02:00
Jürg Lehni
4b19f99183 Improve user agent matching code in PaperScript.
Fixes #511.
2014-08-20 18:54:00 +02:00
Jürg Lehni
6b4f728a72 Bring back support for paper.setup('id') again, and document it properly.
Closes #510.
2014-08-20 16:53:31 +02:00
Jürg Lehni
db1ccd1d1e Restructure includes. 2014-08-20 16:44:36 +02:00