Jürg Lehni
|
afe00add32
|
Implement option.type filtering in #hitTest() functions.
|
2013-12-08 16:32:42 +01:00 |
|
Jürg Lehni
|
61f2f5c978
|
Put constructors into separate ctor variables when handling dontLink parameters before creating objects.
This hopefully solves the mysterious issue #360 on Chrome.
|
2013-12-07 20:03:23 +01:00 |
|
Jürg Lehni
|
acc0e80d78
|
Implement registration point for all items.
Allowing any item to use another point than the center as its anchor point for item.position.
|
2013-12-07 19:46:12 +01:00 |
|
Jürg Lehni
|
2401b38b03
|
Fix issue with group.position not updating when content changes.
|
2013-12-07 19:17:59 +01:00 |
|
Jürg Lehni
|
758c9b6146
|
Improve caching of decomposed transformation values.
|
2013-12-07 12:47:16 +01:00 |
|
Jürg Lehni
|
9ca92165ee
|
Expose rotation and scaling transformations through Item#rotation and Item#scaling properties, by moving the setters from Matrix to Item.
|
2013-12-07 12:16:11 +01:00 |
|
Jürg Lehni
|
3d94ff6968
|
Only decompose matrix if there are bounds to be reused.
|
2013-12-07 05:50:08 +01:00 |
|
Jürg Lehni
|
1ba77f9d40
|
Implement Item#skew() and clean up Item transformation functions documentation.
|
2013-12-07 05:21:27 +01:00 |
|
Jürg Lehni
|
2d307f0e7c
|
Only preserve bounds if there is no shearing in the transformation.
Closes #358.
|
2013-12-07 05:19:49 +01:00 |
|
Jürg Lehni
|
7e9989c6b9
|
Improve comment about globalMatrix.isInvertible() check.
|
2013-12-06 13:41:57 +01:00 |
|
Jürg Lehni
|
92590b160c
|
Implement Canvas Path caching again using Context#currentPath.
|
2013-12-06 12:49:46 +01:00 |
|
Jürg Lehni
|
550749d057
|
Avoid issues with _matrix being undefined when items are created and added in a certain sequence.
Closes #279.
|
2013-12-03 23:14:34 +01:00 |
|
Jürg Lehni
|
fc02c58ddb
|
Implement asynchronously loading Rasters from disk and remote locations for Node.js
Closes #328.
|
2013-12-03 23:07:54 +01:00 |
|
Jürg Lehni
|
dcad9d44ed
|
Copy over parent style in Item#reduce().
Only really needed for CompoundPath...
|
2013-11-30 14:02:54 +01:00 |
|
Jürg Lehni
|
93d10983ee
|
Update to latest Prepro.js and switch from global options object to __options, to avoid name clashes.
|
2013-11-29 20:26:38 +01:00 |
|
Jürg Lehni
|
1149399690
|
Add missing DOCS comments.
|
2013-11-29 18:50:04 +01:00 |
|
Jürg Lehni
|
7e65426158
|
Implement Item#data cloning.
Closes #340.
|
2013-11-28 22:27:14 +01:00 |
|
Jürg Lehni
|
593e0d8d7f
|
Remove Base.merge() and use a new Straps.js feature instead.
A more clever Base() constructor that allows merging.
|
2013-11-28 22:20:00 +01:00 |
|
Jürg Lehni
|
c0e8285c07
|
Fix setting #radius on Shape.Circle.
|
2013-11-28 18:03:41 +01:00 |
|
Jürg Lehni
|
18db7c0d56
|
Fix issue with items with frame events never being removed from _frameItems list.
|
2013-11-27 12:38:56 +01:00 |
|
Jürg Lehni
|
97d94e8401
|
Allow Path#transformContent to be set to false too.
|
2013-11-26 23:12:55 +01:00 |
|
Jürg Lehni
|
b96f9ff57b
|
Rearrange method sequence in Item.
|
2013-11-26 19:27:09 +01:00 |
|
Jürg Lehni
|
56f25e8742
|
Implement change propagation in matrices.
|
2013-11-26 19:03:58 +01:00 |
|
Jürg Lehni
|
da9e1f8de7
|
Define Project#isEmpty()
|
2013-11-24 22:53:41 +01:00 |
|
Jürg Lehni
|
af4410953f
|
Various clean-ups regarding the handling of activeLayer, JSON deserialization, DOM insertion and and layer reusing.
JSON deserialization does no longer insert items into DOM twice now, and should therefore be faster.
|
2013-11-24 16:25:13 +01:00 |
|
Jürg Lehni
|
5439f6ba45
|
We need to take pixel ratio into account when directly blitting blend-modes onto canvas.
|
2013-11-06 13:11:54 +01:00 |
|
Jürg Lehni
|
d6be004ee6
|
Setting a matrix on an item with #transformContent = true should immediately apply it.
|
2013-11-04 11:43:17 +01:00 |
|
Jürg Lehni
|
b8ab0f36f9
|
Remove unused local variable and comment.
|
2013-11-02 20:37:23 +01:00 |
|
Jürg Lehni
|
132f54d362
|
Define Item#clear() as an alias for Item#removeChildren(), or Path#removeSegments() for paths.
|
2013-11-01 17:52:27 +01:00 |
|
Jürg Lehni
|
c76dae5b06
|
Implement a new strategy for importing JSON, where it is imported into the item itself, not its children list, if the class match.
|
2013-11-01 11:26:11 +01:00 |
|
Jürg Lehni
|
2a9fe48cc9
|
Add options.matchShapes support to #exportSVG and improve documentation of various import / export functions.
|
2013-10-30 16:18:59 +01:00 |
|
Jürg Lehni
|
5d7c7a2409
|
Improve documentation of #hitTest()
|
2013-10-30 16:18:15 +01:00 |
|
Jürg Lehni
|
2a88042315
|
Handle importing of SVG gradients for shapes, and drawing of canvas gradients correctly.
Closes #312.
|
2013-10-30 01:25:13 +01:00 |
|
Jürg Lehni
|
eecf68b7c3
|
Clear ctx.shadowColor after ctx.fill() to avoid application to both fill and stroke.
Closes #314.
|
2013-10-30 00:00:04 +01:00 |
|
Jürg Lehni
|
1871e2f7c4
|
Improve comments.
|
2013-10-29 21:18:09 +01:00 |
|
Jürg Lehni
|
fd96447ac1
|
Share ellipse reading code between Shape.Ellipse and Path.Ellipse.
|
2013-10-29 21:15:28 +01:00 |
|
Jürg Lehni
|
aca9968164
|
Simplify Shape#_contains() code.
|
2013-10-29 21:09:11 +01:00 |
|
Jürg Lehni
|
4333334014
|
Simplify Shape#hitTest() code.
|
2013-10-29 21:06:58 +01:00 |
|
Jürg Lehni
|
6fba727600
|
Add DOCS comments.
|
2013-10-29 21:00:24 +01:00 |
|
Jürg Lehni
|
f8d960d834
|
option.tolerance should always be defined in _hitTest()
|
2013-10-29 21:00:17 +01:00 |
|
Jürg Lehni
|
ae4ddaeae5
|
Implement correct hit-tests for rounded rectangle Shape items.
|
2013-10-29 20:58:30 +01:00 |
|
Jürg Lehni
|
c43752dc3e
|
Use #hasFill() and #hasStroke() more broadly and avoid drawing strokes when strokeWidth is set to 0.
|
2013-10-29 20:05:39 +01:00 |
|
Jürg Lehni
|
94623f6d3f
|
Keep radius and size in sync in Path.Rectangle.
|
2013-10-29 19:42:33 +01:00 |
|
Jürg Lehni
|
b86b66d43d
|
Improve documentation.
|
2013-10-29 19:25:10 +01:00 |
|
Jürg Lehni
|
7f8d9d9e90
|
Support options.tolerance in Shape#hitTest()
|
2013-10-29 19:17:42 +01:00 |
|
Jürg Lehni
|
9d60662a28
|
Check for the occurrence of 'radius' rather than 'center' when deciding to read a center / radius pair for ellipses.
|
2013-10-29 18:53:55 +01:00 |
|
Jürg Lehni
|
c3aed5277d
|
Use center and radius in all ellipse code, rather than bounding rect.
Simplifies things.
|
2013-10-29 18:10:30 +01:00 |
|
Jürg Lehni
|
04286bc1e0
|
Fix issue with param.trackTransforms
We can only pop() if we push()
|
2013-10-29 17:56:43 +01:00 |
|
Jürg Lehni
|
b2188be567
|
Make sure _globalMatrix is not set to false values in Item#rasterize().
|
2013-10-29 17:37:45 +01:00 |
|
Jürg Lehni
|
d649b1bb21
|
Define insert argument for Path#toShape() and Shape#toPath()
|
2013-10-29 16:45:50 +01:00 |
|
Jürg Lehni
|
5a462f42b7
|
Improve some comments / docs.
|
2013-10-29 09:42:59 +01:00 |
|
Jürg Lehni
|
c579433b3d
|
Fix bug in Raster.onLoad()
It was executing in wrong scope on websites with multiple scopes.
|
2013-10-29 09:42:58 +01:00 |
|
Jürg Lehni
|
160fe25cd1
|
Improve documentation of #importSVG() methods.
|
2013-10-29 09:42:58 +01:00 |
|
Jürg Lehni
|
b4651a18c6
|
Implement #getItem() on Project and Item, similar to #getItems() but returning only the first match.
|
2013-10-19 13:02:53 +02:00 |
|
Jürg Lehni
|
1a645a1adb
|
Implement function callbacks for item matching.
|
2013-10-19 12:38:36 +02:00 |
|
Jürg Lehni
|
4fb6a5d949
|
Implement #getItems(match) on Project and Item as a simple and efficient query interface.
|
2013-10-19 12:27:13 +02:00 |
|
Jürg Lehni
|
0b7e128426
|
Only rely on _drawCount for drawing related things, and caching where it allows.
Project#selectedItems was out of sync until the next draw loop.
|
2013-10-18 21:52:22 +02:00 |
|
Jürg Lehni
|
1fc9f882ca
|
Fix a minor bug in CompoundPath#contains(), improve comments and clean up code.
|
2013-10-18 19:49:05 +02:00 |
|
Jürg Lehni
|
5d0fd8f970
|
Implement Style#windingRule and use it in Path#contains().
|
2013-10-18 14:54:13 +02:00 |
|
Jürg Lehni
|
73d2c34088
|
Implement item-level #equals() method and clean up other equals methods.
|
2013-10-17 13:08:54 +02:00 |
|
Jürg Lehni
|
9976033655
|
Implement serialization of selection.
|
2013-10-17 12:04:11 +02:00 |
|
Jürg Lehni
|
c2a34d9f1f
|
Implement an easier approach in serialization to handle the default value of leading.
|
2013-10-17 11:53:34 +02:00 |
|
Jürg Lehni
|
1eb6b49e8a
|
Allow serialization values to mark themselves as _default.
Solves unnecessarily serialized leading values.
|
2013-10-17 11:47:46 +02:00 |
|
Jürg Lehni
|
9956a6ff51
|
Implement Shape#toPath(), analogue to Path#toShape().
This way is much simpler though.
|
2013-10-16 23:44:50 +02:00 |
|
Jürg Lehni
|
c4c7a37993
|
Implement Path#toShape(), Segment#isColinear(), Segment#isOrthogonal() and Segment#isArc().
|
2013-10-16 23:10:03 +02:00 |
|
Jürg Lehni
|
be5a73a61d
|
SVG: Implement support for Shape.
|
2013-10-16 16:47:00 +02:00 |
|
Jürg Lehni
|
8ab6c61b0d
|
Rename Shape#type to Shape#shape, to avoid clash with Item#type.
|
2013-10-16 16:46:22 +02:00 |
|
Jürg Lehni
|
b581c84d8b
|
Move CompoundPath#reduce() to Item#reduce().
|
2013-10-16 16:10:28 +02:00 |
|
Jürg Lehni
|
9eb1c104da
|
Implement Shape#clone()
|
2013-10-16 15:04:50 +02:00 |
|
Jürg Lehni
|
b35296ef3e
|
Improve Shape.Ellipse to support center & radius parameters, and update documentation.
|
2013-10-16 15:04:37 +02:00 |
|
Jürg Lehni
|
c945bf7908
|
Docs: Various smaller clean ups.
|
2013-10-16 14:20:13 +02:00 |
|
Jürg Lehni
|
2263afea59
|
Start implementing rounded rectangles in Shape.Rectangle.
|
2013-10-14 19:57:28 +02:00 |
|
Jürg Lehni
|
a3d0e0d462
|
Clean up throw statements.
Never throw plain strings.
|
2013-10-14 16:05:50 +02:00 |
|
Jürg Lehni
|
b9ba2364fe
|
Move Shape#isEmpty() to right place.
|
2013-10-14 09:15:34 +02:00 |
|
Jürg Lehni
|
198305b75c
|
Remove doc comment since Item#isEmpty() is already documented, and move it to an inline comment.
|
2013-10-14 09:14:59 +02:00 |
|
Oliver Jones
|
df7f1fe874
|
Override default isEmpty method for Shape
Fixes (new Group([new Shape.Rectangle(...)])).bounds throwing ReferenceError when using Item's isEmpty
|
2013-10-12 19:28:45 +01:00 |
|
Jürg Lehni
|
c68a7d33da
|
Switch from options.browser and options.node to options.environment
|
2013-10-10 23:09:00 +02:00 |
|
Jürg Lehni
|
24e46bee60
|
Merge branch 'refs/heads/boolean-fix'
|
2013-10-08 20:50:47 +02:00 |
|
Jürg Lehni
|
367aa8ea28
|
Do not allow numeric values for Item#name.
Closes #298.
|
2013-10-08 20:38:16 +02:00 |
|
Jürg Lehni
|
921a68e4a2
|
Rename _removeFromNamed to _removeNamed.
|
2013-10-08 20:25:26 +02:00 |
|
Jürg Lehni
|
5f8c00fe8d
|
Start implementing Item#globalToLocal() and #localToGlobal()
|
2013-09-22 18:04:27 -07:00 |
|
Jürg Lehni
|
19c7788617
|
Fix documentation irregularities.
|
2013-08-23 19:45:28 -07:00 |
|
Jürg Lehni
|
40f2547e5f
|
Correctly detect image size on all browsers.
Closes #268.
|
2013-08-15 11:32:47 -07:00 |
|
Jürg Lehni
|
590c89840c
|
Merge Raster#setImage() and #setCanvas().
|
2013-08-14 12:29:56 -07:00 |
|
Jürg Lehni
|
cc565b3fe2
|
Rename Raster#getSubImage() to #getSubCanvas(), and use insert: false combined with #insertAbove() to correctly insert newly created rasters.
|
2013-08-14 12:21:47 -07:00 |
|
Jürg Lehni
|
5981ddf89f
|
Implement Raster#getSubRaster() and document both #getSubImage() and #getSubRaster().
|
2013-08-14 12:14:28 -07:00 |
|
Jürg Lehni
|
1a1c2674fd
|
Take Item#matrix into account when drawing gradients.
Closes #267.
|
2013-08-14 11:27:04 -07:00 |
|
Jürg Lehni
|
46f6261d38
|
Merge pull request #265 from duckmaestro/master
Fix to #263: _children undefined inside call to myShape.isEmpty().
|
2013-08-08 17:24:10 -07:00 |
|
Jürg Lehni
|
6b19f25f4b
|
Fix typos in comments.
|
2013-08-08 15:21:35 -07:00 |
|
Clifford Champion
|
2d3200c8d7
|
Fix to #263: _children undefined inside call to myShape.isEmpty().
|
2013-07-27 23:47:49 -07:00 |
|
Jürg Lehni
|
5e8ec2066b
|
Clean up comment.
|
2013-07-21 16:52:18 -07:00 |
|
Jürg Lehni
|
16735e23af
|
Simplify code for #insertAbove/Below(), by introducing a private helper.
Making overriding in Layer simpler.
|
2013-07-21 16:41:45 -07:00 |
|
Jürg Lehni
|
5e210c583a
|
Switch to returning items instead of booleans in #insertAbove/Below() and adjust documentation accordingly.
|
2013-07-21 16:29:13 -07:00 |
|
Jürg Lehni
|
edfb3a51ab
|
Improve documentation of insertion methods.
|
2013-07-21 16:26:16 -07:00 |
|
Jürg Lehni
|
e68563af53
|
Have #insertAbove/Below() return a boolean.
|
2013-07-21 16:26:03 -07:00 |
|
Jürg Lehni
|
e0809d26f2
|
Merge code for Item#insertAbove() / #insertBelow() and fix issue with wrong indices.
The previous code was faulty when item was not already in the children list.
|
2013-07-21 16:22:16 -07:00 |
|
Jürg Lehni
|
949752556b
|
Fix avoiding of name clashes in cloning.
|
2013-07-21 15:54:03 -07:00 |
|
Jürg Lehni
|
aa4d990c90
|
Move and unify handling of Item#_set(props) to new Item#_initialize(), and add support for props.insert = false.
|
2013-07-21 15:45:22 -07:00 |
|
Jürg Lehni
|
5e2654b490
|
Allow Item#_changed() to function before #_project is set.
|
2013-07-21 15:44:18 -07:00 |
|
Jürg Lehni
|
b7aea1e527
|
Use insert: false option in creation of all clones.
Still needs implementing in Item constructor.
|
2013-07-19 18:42:13 -07:00 |
|