Jürg Lehni
873cd79517
Fix a bug in code that keeps #_position cache up to date.
...
Only happened in items that assign another type to 'bounds' through _boundsType, e.g. PlacedSymbol, leading to substantial slow downs.
2011-12-26 11:08:09 +01:00
Jürg Lehni
d2869cfd55
Cached bounds are no longer LinkedRectangles.
2011-12-26 11:06:04 +01:00
Jürg Lehni
c552925426
Fix issue with Item#removeChildren(from, to) removing too many items.
2011-12-26 02:39:54 +01:00
Jürg Lehni
1e690a68e0
Add TODO about HitResult points requiring transformations.
2011-12-25 12:39:10 +01:00
Jürg Lehni
951a3aea99
Inverse-transform the passed point on each DOM level in #hitTest().
2011-12-25 00:19:44 +01:00
Jürg Lehni
c30ff47930
Remove matrix argument from all hit-testing related methods.
...
We better inverse-transform the point and save the code!
2011-12-25 00:19:01 +01:00
Jürg Lehni
1eadc87b58
No need to calculate matrix before handling cached values.
2011-12-24 12:30:43 +01:00
Jürg Lehni
733d879bb6
Add / improve comments about DOCS.
2011-12-23 22:47:10 +01:00
Jürg Lehni
97b66582f8
Rename Item#applyMatrix() to shorter #apply().
2011-12-23 22:41:05 +01:00
Jürg Lehni
61dca0b4d0
Introduce standard way of passing matrices/points to Item constructors.
2011-12-20 23:33:53 +01:00
Jürg Lehni
f2d7b85616
Introduce Matrix#setIdentity().
2011-12-20 23:14:30 +01:00
Jürg Lehni
a8392fbf68
Implement local caching for the calculation of concatenated global matrices in the drawing of selected items in Project#draw().
2011-12-20 23:09:49 +01:00
Jürg Lehni
8888ca912a
The internal Item#_position is no longer a LinkedPoint.
...
Make sure it stays that way when it's kept up-to-date in Item#transform().
2011-12-20 22:35:06 +01:00
Jürg Lehni
0592038b9f
Remove debugging code that lead to slow-down regressions.
2011-12-20 22:34:08 +01:00
Jürg Lehni
93ede28f3b
Implement new selection drawing mechanism.
...
Using the new Item#globalMatrix.
2011-12-20 11:42:00 +01:00
Jürg Lehni
89a1d2fe73
Define Item#globalMatrix.
...
For now uncached.
2011-12-20 11:39:36 +01:00
Jürg Lehni
4a46c8ac98
Fix recently introduced error with stroke/fillColor handling
...
Since CanvasContext#stroke/fillStyle cannot be set to null, we have to keep checking Style#fill/strokeColor even after calling #_setStyles().
2011-12-19 23:07:14 +01:00
Jürg Lehni
cc26fdc5d1
Optimise handling and setting of fill and stroke styles.
...
Handle setting of fillColor and strokeColor in Item#_setStyles() instead of the various #draw() methods, directly access internal styles instead of using accessor calls and fix PointText#draw().
2011-12-19 22:40:14 +01:00
Jürg Lehni
ea0eaf04ea
Make TextItem#style a reference to #characterStyle.
...
Internally, CharacterStyle extends PathStyle and is now stored in TextItem#_style.
2011-12-19 22:26:09 +01:00
Jürg Lehni
19429d9b6d
Automate generation of style accessors through Style class.
...
Shaving off some byes by adding more magic.
2011-12-19 22:14:10 +01:00
Jürg Lehni
f5c1125709
Move Path#_setStyles() to Item, so it can be used in PointText too.
2011-12-19 21:25:39 +01:00
Jürg Lehni
e89b2e5be1
Remove recursive argument from Item#applyMatrix().
...
Always apply transforms recursively.
2011-12-19 21:20:10 +01:00
Jürg Lehni
4514c63ed4
Merge remote-tracking branch 'origin/master'
2011-12-18 21:30:22 +01:00
Jürg Lehni
e52d2a08b8
Use correct flags in _changed() call.
2011-12-18 16:56:18 +01:00
Jürg Lehni
554047ae38
Expose Item#_getCachedBounds and use it in PlacedSymbol for proper handling of nested matrices.
2011-12-18 16:55:56 +01:00
Jürg Lehni
d2b1c77686
No need to call #getDefinition() internally.
...
Use private value directly.
2011-12-18 16:55:24 +01:00
Jürg Lehni
9e5eb17264
Improve Item#transform() and implement #applyMatrix() to support nested matrices. Work in progress.
2011-12-18 16:54:21 +01:00
Jonathan Puckey
7fdb01cf77
More work on Item event handling documentation.
2011-12-07 12:45:04 +01:00
Jonathan Puckey
1414500f45
First version of documentation of Item event handlers and MouseEvent.
2011-12-01 11:57:10 +01:00
Jürg Lehni
6e5e54cfe6
Change sequence of position / bounds related properties.
2011-11-30 18:36:44 +01:00
Jürg Lehni
f895d3e6fb
Fix recently introduced error in Item#setSelected().
2011-11-30 18:28:11 +01:00
Jürg Lehni
a26bc87686
Implement support for Item#matrix in Item#draw().
2011-11-30 18:19:23 +01:00
Jürg Lehni
a57070e4a3
Fix bounds caching issues on Group.
2011-11-30 18:18:51 +01:00
Jürg Lehni
a3ec184873
Add dontLink argument to Item#getPosition()
...
And use it to optimise up #setPosition().
2011-11-30 18:18:24 +01:00
Jürg Lehni
bb1d436281
Move creation of LinkedRectangle for 'bounds' to bounds accessor.
2011-11-30 17:20:29 +01:00
Jürg Lehni
3ece08bea1
Fix handling of recursion in Item#setSelected() / #setFullySelected().
2011-11-30 17:16:52 +01:00
Jürg Lehni
cf4c2b4919
Move #matrix accessor from PlacedItem to Item.
2011-11-29 17:19:31 +01:00
Jürg Lehni
5ff3a07b31
Add comment about 1px rectangle in Raster#getAverageColor().
2011-11-29 17:19:15 +01:00
Jürg Lehni
b5e46971f0
Replace new Size(x, y) calls with internal Size.create(x, y).
2011-11-29 17:11:15 +01:00
Jürg Lehni
26210fb95b
Implement transforming of cached bounds again, if possible.
2011-11-28 23:20:47 +01:00
Jürg Lehni
cadc2e78ca
We can directly access Item#_id.
...
No need to call Item#getId() internally.
2011-11-28 23:14:02 +01:00
Jürg Lehni
cb8c94ef7e
Recursively call _clearBoundsCache
...
If the cache for an item's children is not valid anymore, that needs to propagate up the DOM tree.
2011-11-28 23:13:31 +01:00
Jürg Lehni
d3c83be3bb
Correct execution sequence in getBounds so that the parent's _boundsCache is kept up to date even when the child is returning a cached result.
2011-11-28 22:59:25 +01:00
Jürg Lehni
e82deff4b9
Fix the drawing of PlacedSymbol bounds when selected.
2011-11-27 14:55:49 +00:00
Jürg Lehni
ac18786109
Implement bounds caching for all items, even groups and layers, using a smart structure keeping track of which items affect the cache, and automatically clearing it on changes without having to walk the DOM tree.
2011-11-27 13:48:15 +00:00
Jürg Lehni
b51cf064b0
Make baseItem to last optional parameter of _getBounds.
2011-11-26 11:55:19 +01:00
Jürg Lehni
a0ad81b576
Pass on the baseItem of a getBounds call, required to implement proper caching later.
2011-11-26 11:24:48 +01:00
Jürg Lehni
8729e9919f
Use getBounds.call(item) to use this instead of item, since we're accessing it a lot.
2011-11-26 10:42:38 +01:00
Jürg Lehni
1fd9242fd8
Define private getBounds() function that handles matrix concatenation, bounds caching and calling of _getBounds, leading to further simplifications in PlacedItem.
2011-11-26 10:39:51 +01:00
Jürg Lehni
2605fadcfd
Move bounds related code to a proper inejction scope, so we can declare private functions for caching.
2011-11-26 10:18:47 +01:00
Jürg Lehni
de4b5a0d87
Start implementing Item#matrix, work in progress.
2011-11-26 10:15:01 +01:00
Jürg Lehni
92066a6ecb
Implement Item#_boundsType as a structure to control bounds handling and caching.
2011-11-24 16:03:05 +01:00
Jürg Lehni
a6b90dea35
Clean up Item documentation.
2011-11-24 16:02:34 +01:00
Jürg Lehni
44b6fe9f0d
Fix documentation about bounds beans.
2011-11-24 15:46:06 +01:00
Jürg Lehni
310fbb260b
Remove _boundsCache and replace it with easier _simpleBounds flag.
2011-11-24 15:44:26 +01:00
Jürg Lehni
067e0a954b
Add comment about LinkedRectangle for 'bounds'.
2011-11-24 15:39:04 +01:00
Jürg Lehni
909b9040d5
Since we only use _createBounds in one place now we can inline it.
2011-11-24 15:38:08 +01:00
Jürg Lehni
569c415b2f
Start implementing bounds caching the new way.
...
Work in progress still.
2011-11-24 15:37:44 +01:00
Jürg Lehni
ea87be166e
Part one of big refactoring of bouding box handling. Functional, but caching is broken right now.
2011-11-24 15:13:21 +01:00
Jürg Lehni
d9777111dc
No need for an injection scope as we can also just use Base.each() in combination with a side-car.
2011-11-24 14:54:04 +01:00
Jürg Lehni
1d6cfeeb9b
Add dest and dontNotifty arguments to Matrix#_transformBounds() and use them where appropriate.
2011-11-24 11:29:35 +01:00
Jürg Lehni
8a53288b1e
Add comment about upcoming changes relating to bounds.
2011-11-23 18:13:21 +01:00
Jürg Lehni
eb70c4de5d
Directly pass matrix argument to _getBounds() instead of whole arguments array.
2011-11-20 18:51:34 +01:00
Jürg Lehni
b9f6c99dcd
Add comments and clean up code.
2011-11-17 19:28:05 +01:00
Jürg Lehni
57bd659023
Move Item base mouse handling code to CanvasView.
2011-11-16 13:12:41 +01:00
Jürg Lehni
c8e1a9c959
Merge remote-tracking branch 'origin/master'
2011-11-12 23:57:39 +01:00
Jürg Lehni
e4586cfeeb
Commit beginning of item based mouse events. So far only onMousedown / 'mousedown' is supported.
2011-11-12 23:57:25 +01:00
Jonathan Puckey
52385451f6
Resolve a few documentation todos.
2011-11-12 18:30:21 +01:00
Jürg Lehni
52ad906c97
Add support for onFrame handlers on Item.
2011-11-12 17:44:05 +01:00
Jürg Lehni
ea689faa43
Fix white space.
2011-11-12 15:50:53 +01:00
Jürg Lehni
07839cf683
Add comment about name being set again in addChild().
2011-11-12 15:50:35 +01:00
Jürg Lehni
24f07dccec
Clean up some JSDoc comments.
2011-11-12 13:27:29 +01:00
Jürg Lehni
b1332331b0
Simplify injection scope for removeOn* methods.
2011-11-12 13:22:45 +01:00
Jürg Lehni
3dfb4d3ae5
Make Item#removeOn() calls work with new event callback mechanism.
2011-11-11 20:41:09 +01:00
Jonathan Puckey
a96a92caba
Add support for hit testing Raster items and getting the color of the pixel that was hit.
2011-11-11 15:00:53 +01:00
Jürg Lehni
af9df0e1b8
Provide point of hit handles and segments too in HitResult.
2011-11-11 14:47:03 +01:00
Jürg Lehni
1124236b8a
Use inject() instead of a each() loop to add values to HitResult, so getters can be defined too (required for raster hit testing).
2011-11-11 13:11:10 +01:00
Jürg Lehni
42d0e722db
Rename RGBColor -> RgbColor, to avoid clash with native constructor, and follow same naming convention for HsbColor and HslColor, but keep references to old names for PaperScript scopes for now.
2011-11-10 19:16:34 +01:00
Jonathan Puckey
eb34e058c0
Fix bug in Item#hitTest and Project#hitTest documentation. Closes #57
2011-11-10 15:14:49 +01:00
Jürg Lehni
6052e94a2a
Add basic code for fine-grained change tracking, as required by on-the fly SVG DOM manipulation.
2011-09-22 10:32:17 +02:00
Jürg Lehni
936fd43c37
Implement Item#layer.
2011-09-18 10:38:16 +02:00
Jürg Lehni
ae116cd043
Improve comments about change notifications.
2011-08-23 16:36:57 +02:00
Jürg Lehni
79f351e5ee
No need to check for _project as it will always bet set.
2011-08-23 16:35:19 +02:00
Jonathan Puckey
0ee1e80c68
Node.js: add Raster support.
2011-08-21 16:38:06 +02:00
Jonathan Puckey
e82a838085
Fix problem in Item#rasterize(resolution) where rasterizing the active layer caused the resulting Raster to be positioned wrongly.
2011-08-08 18:43:45 +02:00
Jürg Lehni
022de4d781
Some documentation fixes for v0.2
2011-08-01 14:25:46 +01:00
Jürg Lehni
31cc571e8a
Docs: Hide matrix parameter in Item#hitTest() and add "options." in front of each options property.
2011-08-01 11:47:42 +01:00
Jürg Lehni
884ea96a29
Docs: Link HitResult back to #hitTest() functions.
2011-08-01 11:47:08 +01:00
Jonathan Puckey
e0650cae73
Document HitResult, Item#hitTest(point, options) and Project#hitTest(point, options).
2011-07-31 22:58:51 +02:00
Jürg Lehni
8eaeb7fb5e
Remove filepp.pl as preprocessor and switch to our own Prepro.js, a simple preprocesssor for JavaScript that speaks JavaScript, written in JavaScript, allowing preprocessing to either happen at build time or compile time.
2011-07-26 10:09:31 +01:00
Jonathan Puckey
8e816f6bfc
HitResult#getOptions: only have fill / stroke / segments options set to true if no options object was provided.
2011-07-15 14:52:38 +02:00
Jonathan Puckey
611d9e3af3
Item#hitTest: ignore top level layers when hit testing for bounds or center.
2011-07-15 13:00:40 +02:00
Jürg Lehni
077a83ca7c
Fix documentation error.
2011-07-11 12:15:34 +02:00
Jürg Lehni
55f815cb72
Remove obsolete TODOs.
2011-07-09 17:12:13 +02:00
Jürg Lehni
615a1281e3
Remove obsolete TODO.
2011-07-09 17:03:10 +02:00
Jürg Lehni
5bac5189a4
Implement Item#fullySelected.
2011-07-09 17:02:58 +02:00
Jürg Lehni
ebd3bfc092
Introduce faster versions of Rectangle#contains() that do not perform checks.
2011-07-09 11:07:12 +02:00
Jürg Lehni
8e6adbc284
Fix documentation.
2011-07-09 09:28:49 +02:00
Jürg Lehni
f958b41d90
Don't filter for a type by default.
2011-07-09 09:28:36 +02:00
Jürg Lehni
b5d3cf2ad0
Add comment about missing documentation.
2011-07-08 23:32:50 +02:00