Commit graph

489 commits

Author SHA1 Message Date
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
Jürg Lehni
2dfe4dfa19 Remove invalid comments. 2011-07-08 23:32:38 +02:00
Jürg Lehni
b1a2a626ad Separate type from name for 'bounds' hit-results. 2011-07-08 23:29:55 +02:00
Jürg Lehni
62ba983432 Implement hit-test options: center and bounds. 2011-07-08 23:26:50 +02:00
Jürg Lehni
c033a5a7bc Implement hit-test options: segments, handles and ends. 2011-07-08 23:26:21 +02:00
Jürg Lehni
9db96ae898 Perform point conversion along with HitResult.getOptions(). 2011-07-08 23:25:27 +02:00
Jürg Lehni
dfbe3135ad Remove HitResult inheritance from CurveLocation, but have a #location property pointing to it. 2011-07-08 22:25:42 +02:00
Jürg Lehni
a580b23f2a Reverse direction of child-looping in hit-tests, so items that get drawn last are tested first. 2011-07-08 21:15:16 +02:00
Jürg Lehni
1b3d4773a3 Optimise hit-testing by checking point to lie within #roughBounds + tolerance first. 2011-07-08 21:01:34 +02:00
Jürg Lehni
69a7d0bfd4 Implement a first version of Item#hitTest(), so far working only for Path items. Work in progress. 2011-07-07 22:14:58 +02:00
Jürg Lehni
de87c1f97a Define a bit of code that names all our class constructors based on the property name under which they were stored, and use that in Item#toString(). 2011-07-07 22:14:09 +02:00
Jürg Lehni
3bd6122e82 Begin adding support for guides. 2011-07-07 21:02:52 +02:00
Jürg Lehni
ced45c4e8f Add HSLColor to documentation. 2011-07-07 20:51:23 +02:00
Jürg Lehni
110cffc14c Improve comments for bounds functions. 2011-07-04 23:28:28 +02:00
Jürg Lehni
9499125b22 Link Item <-> Symbol#definition <-> PlacedItem and make sure changed events get sent across the whole chain. 2011-07-04 21:27:42 +02:00
Jürg Lehni
1ed6d46ce3 Define Item ids immediately, not on first request. 2011-07-04 20:19:37 +02:00
Jürg Lehni
bfa774f717 Move private bounds methods above the actual beans definitions. 2011-07-04 19:53:29 +02:00
Jürg Lehni
45a3e7f873 Big refactoring of the way bounds are handled and cached, properly supporting Groups inside Symbols, and also adding #roughBounds, to be used by upcoming hit testing code. 2011-07-04 19:45:53 +02:00
Jürg Lehni
10b0062ce2 Minor fixes and clean ups. 2011-07-04 11:54:52 +02:00
Jürg Lehni
7e26a7af1e Rename all x-axis / y-axis parameters in #scale and #shear to hor / ver, and fix a bug in Matrix#shear, where an undeclared variable was used (sx instead of shx). 2011-07-01 18:00:16 +02:00
Jürg Lehni
aa9be1d9c5 Rename #controlBounds -> #handleBounds, to reflect terminology used elsewhere. 2011-07-01 17:23:10 +02:00
Jürg Lehni
9fa51a0457 Implement Item#controlBounds and Path#controlBounds, and test it in StrokeBounds example. This is a first step towards fast hit-testing. 2011-07-01 12:51:18 +02:00
Jürg Lehni
79c0ad8cc5 Update copyright notices. 2011-07-01 12:17:45 +02:00
Jürg Lehni
d95480bc22 Remove trailing white spaces. 2011-07-01 12:01:32 +02:00
Jürg Lehni
609f23c64d Make PlacedItem#matrix private and add getter / setter for it. 2011-07-01 11:32:09 +02:00
Jürg Lehni
1cd7165ea2 Define PlacedItem as base class for Raster and PlacedSymbol. 2011-07-01 11:26:51 +02:00
Richard D. Worth
ac39873693 Whitespace. Removed all trailing whitespace from .js files 2011-06-30 06:01:51 -04:00
Jürg Lehni
4c6e152748 Move Item#setBounds() close to #getBounds() and document #_getBounds(). 2011-06-30 08:53:57 +02:00
Jürg Lehni
cca562efc0 Prepare Item#_getBounds() for #controlBounds. 2011-06-30 08:51:53 +02:00
Jürg Lehni
7cd749e63d Change all documentation to new convention of defining @class outside injection scope, fix some comments and a few errors with examples. 2011-06-22 23:56:05 +01:00
Jonathan Puckey
a17dc4171a Fix bug where cloned items that were selected weren't appearing in the Project#selectedItems array. 2011-06-21 01:52:44 +02:00
Jürg Lehni
3aff54517e Add support for ChangeFlag notifications to Raster. 2011-06-20 20:13:24 +01:00
Jürg Lehni
ea9eacf578 Fix value of ChangeFlag.CLIPPING 2011-06-20 20:07:04 +01:00
Jürg Lehni
4c20b1ef3d Support rotations by multiples of 90 degrees too, as they can be applied correctly to rectangles. 2011-06-20 19:52:22 +01:00
Jürg Lehni
5e524a478e We need to process _bounds and _position outside of _transform() handling, since items without _transform() can still have cached values, e.g. Group. 2011-06-20 19:33:34 +01:00
Jürg Lehni
22736dc72d Clean up code. 2011-06-20 19:32:42 +01:00
Jürg Lehni
bc567f4d29 Improve shear() parameter naming. 2011-06-20 19:20:51 +01:00
Jürg Lehni
5e39e60d51 Fix typo. 2011-06-20 18:34:51 +01:00
Jürg Lehni
5b85d78faa Use Matrix#getRotation() to decide if we can transform cached _bounds and _position for perforamce improvements. 2011-06-20 18:25:49 +01:00
Jürg Lehni
37f5a64dce Improve _bounds handling by introducing Item#_createBounds() that always uses LinkedRectangle class. 2011-06-20 17:34:43 +01:00
Jürg Lehni
8b66c4fa83 Remove flags parameter in Item#transform() for now. 2011-06-20 17:03:43 +01:00
Jürg Lehni
4e3aa3e5c5 Move all Style classes into their own folder. 2011-06-20 16:38:01 +01:00
Jürg Lehni
456bf7f2a9 Move more getter / setter injection functionality from PathStyle to Style, to be shared among all Style classes. 2011-06-20 15:21:42 +01:00
Jürg Lehni
a7e57ada88 Big refactoring of the way Style objects are linked to their owning classes, implemented in a way that works across all sub classes. 2011-06-20 14:58:48 +01:00
Jürg Lehni
a45340d20f Revert previous change since arguments.length is wrong when parameters are undefined when using Function#call. 2011-06-20 14:37:09 +01:00
Jürg Lehni
5ce49e6f8f Merge remote-tracking branch 'origin/master' 2011-06-20 14:26:05 +01:00
Jürg Lehni
2c68e7e58f Use faster Function#call() when arguments are clear. 2011-06-20 14:25:27 +01:00
Jonathan Puckey
e23282fe05 Documentation: convert Array return types to Type[]. 2011-06-20 15:19:08 +02:00
Jürg Lehni
55724b0e29 Move defaults handling fully to Style base class. 2011-06-20 14:10:37 +01:00
Jürg Lehni
f064886c67 Introduce Style as a base class for all Style classes, and move the definition of create() there. 2011-06-20 13:56:49 +01:00
Jürg Lehni
3a232b305e Implement _changed() mechanism in Color, by having Colors know which items they are defining styles for, through an internal _owners list. 2011-06-20 00:00:02 +01:00
Jürg Lehni
af0e5a07b7 Add getter/setter for TextItem#content and use Change.CONTENT to notify of changes. 2011-06-19 23:28:41 +01:00
Jürg Lehni
596cc8f83b Implement #_needsRedraw() mechanism in PaperScope and Project, to notify Views of redraws required by changes in appearance. 2011-06-19 23:03:18 +01:00
Jürg Lehni
7a90f9260e Have subclasses of Item call the base version of _changed(). 2011-06-19 22:40:49 +01:00
Jürg Lehni
a50f6a23ac Add comment. 2011-06-19 22:36:41 +01:00
Jürg Lehni
2b63aefc09 Add ChangeFlag.CLIPPING and use it for proper clip mask caching in Group. 2011-06-19 22:36:04 +01:00
Jürg Lehni
0df909dd71 Rename ChangeFlags -> ChangeFlag. 2011-06-19 22:21:14 +01:00
Jürg Lehni
f0bc3f115b Have all visual changes include ChangeFlags.APPEARANCE. 2011-06-19 22:20:28 +01:00
Jürg Lehni
bfe229ae14 Use #addChildren() instead of #setChildren() in Group constructor. 2011-06-19 22:05:31 +01:00
Jürg Lehni
2594a41b7d Remove the mention of optional parameters in documentation, as they are marked optional already. 2011-06-19 21:52:52 +01:00
Jürg Lehni
1e436b2980 Use typed array in documentation. 2011-06-19 21:50:10 +01:00
Jürg Lehni
cb61e8d452 Implement rest of ChangeFlags.HIERARCHY notifications. 2011-06-19 21:49:26 +01:00
Jürg Lehni
fe7c618deb Define Item#addChildren() / #insertChildren() and adjust documentation a bit. 2011-06-19 21:48:36 +01:00
Jürg Lehni
bf627d9d9c Remove all beans: true settings. 2011-06-19 18:54:41 +01:00
Jürg Lehni
7d2f10f22b Rename private move() -> insert(), to reflect recent name changes. 2011-06-19 18:50:23 +01:00
Jürg Lehni
bbcec27031 Move support for _bounds caching to Item and start using it in PlacedSymbol. 2011-06-19 18:07:53 +01:00
Jürg Lehni
7ca9bcf38a Further shorten #_getBounds() code. 2011-06-19 17:47:20 +01:00
Jürg Lehni
82ef06212b Shorten #_getBounds() code. 2011-06-19 17:46:39 +01:00
Jürg Lehni
f474bd9085 No need to redefine deprecated #moveAbove()/Below(), since they're redirecting to #insertAbove()/Below(). 2011-06-19 17:33:28 +01:00
Jürg Lehni
812d3fb366 Rename #_removeFromParent() -> #_remove(). 2011-06-19 17:32:43 +01:00
Jürg Lehni
4eb6d78f1f Have #_removeFromParent() handle deselection and change notification. 2011-06-19 17:30:47 +01:00
Jürg Lehni
9d2f8c5035 Only call _changed() if selection actually changes. 2011-06-19 16:47:24 +01:00
Jürg Lehni
2fe274741a Assume that _index is always correct and do not check for Base.splice() result in remove functions. 2011-06-19 16:08:51 +01:00
Jonathan Puckey
d13e9bbaa1 Replace accidental beans access in Item#setBounds with corresponding getters. 2011-06-19 03:28:27 +02:00
Jonathan Puckey
7285d6fc85 Implement Item#fitBounds(rectangle, fill), which transforms the item so that its bounding rectangle fits within the specified rectangle, without changing its aspect ratio. 2011-06-19 03:26:51 +02:00
Jonathan Puckey
c5f3e98abb Item: remove trailing comma. 2011-06-19 01:40:34 +02:00
Jonathan Puckey
eecebdb831 Item: fix problem with #children docs. 2011-06-18 17:40:50 +02:00
Jonathan Puckey
f26a9a2327 Item: document #dashArray & #dashOffset. 2011-06-17 21:04:32 +02:00