Jonathan Puckey
d37a794b64
Simplify Raster#initialize, set _size in Raster#setCanvas and add todo.
2011-02-24 14:15:30 +01:00
Jonathan Puckey
ff2ac484da
Raster: add todo and perform small cleanup.
2011-02-24 13:56:27 +01:00
Jonathan Puckey
d564be8a7e
Implement new Raster(canvas) / Raster#getSubImage / Raster.drawImage / Raster.ppi.
2011-02-24 13:52:27 +01:00
Jonathan Puckey
f88fcd3049
Implement Point#transform(matrix).
2011-02-24 13:48:24 +01:00
Jonathan Puckey
73df06150a
Fix RGBColor#setGray.
2011-02-24 12:58:16 +01:00
Jonathan Puckey
2712bd0419
Fix mistake in Raster.
2011-02-24 02:39:33 +01:00
Jonathan Puckey
41f3f47dd3
Fix small mistakes in Raster.
2011-02-24 01:51:49 +01:00
Jonathan Puckey
83b8a3e815
Optimize CanvasProvider to only expect a Size object.
2011-02-24 01:36:38 +01:00
Jonathan Puckey
c929bacde8
Clean up Group#draw and save/restore context state when drawing group with opacity.
2011-02-24 01:33:36 +01:00
Jonathan Puckey
dc51384a1a
Allow CanvasProvider to receive sizes too.
2011-02-24 01:29:51 +01:00
Jonathan Puckey
f1cd24eef8
More work on Raster, including getAverageColor, get/setPixel, get/setSize.
2011-02-24 01:28:11 +01:00
Jürg Lehni
0d53167926
Simplify calculation of bezier polynomial derivative, by dividing all factors by 3.
2011-02-22 10:39:05 +01:00
Jürg Lehni
614f9998de
More optimisations in Path#getBounds().
2011-02-22 10:35:48 +01:00
Jürg Lehni
a08e3dc366
Optimise Path#getBounds() by merging internal f() and bounds() functions and thus reducing calls.
2011-02-22 10:33:46 +01:00
Jürg Lehni
452b1e2792
Add explanations to Path#getBounds().
2011-02-22 10:25:18 +01:00
Jürg Lehni
e1bcd70059
Simplify Raster#draw().
2011-02-22 02:27:40 +01:00
Jonathan Puckey
689ddf7555
Raster: implement getPixel and create beans for Raster#canvas and Raster#context that create a canvas object / context when called for the first time.
2011-02-21 19:52:41 +01:00
Jonathan Puckey
cd5b2a7198
PlacedSymbol/ Raster: Use Matrix#applyToContext in draw functions. Also clean up Raster a bit.
2011-02-21 19:04:51 +01:00
Jonathan Puckey
5a786c300b
Implement Matrix#applyToContext.
2011-02-21 19:03:57 +01:00
Jonathan Puckey
53b0f8a329
Update comments about implementing getAverageColor(path).
2011-02-21 18:49:44 +01:00
Jonathan Puckey
9324b9918d
Implement part of Raster.js
2011-02-21 18:43:56 +01:00
Jonathan Puckey
d0c2c5dd1d
Add todo about speeding up canvas clearing.
2011-02-21 03:52:28 +01:00
Jonathan Puckey
b9d37e1b9b
Only draw a CompoundPath if it is visible.
2011-02-21 03:52:03 +01:00
Jonathan Puckey
357a8af6ec
Clean up white spaces.
2011-02-21 03:32:39 +01:00
Jonathan Puckey
4c84379b5b
Remove unused variable.
2011-02-21 03:26:46 +01:00
Jonathan Puckey
514fe1f0e6
Implement group opacity by drawing onto a second canvas first.
2011-02-21 03:22:42 +01:00
Jonathan Puckey
6fcdb86e1c
Implement CanvasProvider that provides reusable canvas elements.
2011-02-21 03:17:09 +01:00
Jonathan Puckey
3cd680c5f0
Merge remote branch 'origin/master'
2011-02-21 01:17:26 +01:00
Jonathan Puckey
5e271359b9
Add todo.
2011-02-21 01:16:53 +01:00
Jürg Lehni
77f1e22727
Merge remote-tracking branch 'origin/master'
2011-02-21 00:28:48 +01:00
Jürg Lehni
8cdd7fe2b2
Remove unnecessary call of new Point().
2011-02-21 00:28:36 +01:00
Jürg Lehni
dc410b6894
Merge rotateAround() and rotate().
2011-02-21 00:28:13 +01:00
Jonathan Puckey
14943f428f
Remove logging statement.
2011-02-21 00:27:02 +01:00
Jonathan Puckey
5dcf416a7a
Merge remote branch 'origin/master'
2011-02-21 00:26:03 +01:00
Jonathan Puckey
0458e3d916
Check for null in Color#read.
2011-02-21 00:25:45 +01:00
Jürg Lehni
2ebe4a18da
Add Point#isInside().
2011-02-21 00:24:17 +01:00
Jürg Lehni
04d2ed29c6
Move private createPoint() to Point.create().
2011-02-21 00:23:36 +01:00
Jonathan Puckey
245c1e9b90
Merge remote branch 'origin/master'
2011-02-20 23:51:56 +01:00
Jürg Lehni
9aabf30800
Optimise Point code more by using an internal createPoint method that bypasses initialize completely.
2011-02-20 23:41:39 +01:00
Jonathan Puckey
4c4b8246ee
Make sure the whole canvas is cleared.
2011-02-20 23:31:33 +01:00
Jonathan Puckey
51ab66b0f8
Remove trailing comma in ToolEvent.
2011-02-20 21:22:31 +01:00
Jonathan Puckey
f83309d6b7
Optimize Path#draw.
2011-02-20 20:47:13 +01:00
Jonathan Puckey
cb40d3f6f4
Implement Symbol and PlacedSymbol. Add Document#symbols array.
2011-02-20 18:34:38 +01:00
Jürg Lehni
3374e50def
Yet another optimisation in Path#transformContent(): Only transform handles if they are not [0, 0].
2011-02-20 11:20:23 +01:00
Jürg Lehni
98837cbe98
Further optimise Path#transformContent() by reusing arrays and thus reducing memory footprint.
2011-02-20 11:15:40 +01:00
Jürg Lehni
c89d04dca6
Optimise Path#getBounds() by not relying on Point#add() but instead doing the calculations in direct math in the per-coordinate loop.
2011-02-20 02:05:40 +01:00
Jürg Lehni
6c4121db4b
Optimise Path#transformContent() by using Matrix#transform() version that handles arrays of multiple point values for much improved performance.
2011-02-20 01:55:43 +01:00
Jürg Lehni
ed752ed744
Pass ctor.dont to all constructor calls that are followed with explicit initialize() calls afterwards, to make sure it is only called once.
2011-02-20 01:45:53 +01:00
Jonathan Puckey
c0a93a8b66
Setters already handle point conversion.
2011-02-19 22:52:00 +01:00
Jonathan Puckey
10623ddb62
Implement Gradient, GradientColor, GradientStop.
2011-02-19 22:50:37 +01:00
Jonathan Puckey
95fa61f1ba
Group: remove unneeded ctx commands.
2011-02-19 18:10:26 +01:00
Jonathan Puckey
a1bec86333
Have Layer extend Group.
2011-02-19 18:09:14 +01:00
Jonathan Puckey
57b7b364bc
Nullify cssString cache when color/alpha values change.
2011-02-19 18:01:08 +01:00
Jonathan Puckey
2b1dee1bd4
Add opacity support in Path#draw.
2011-02-19 17:33:23 +01:00
Jonathan Puckey
c2849b3692
Change PathStyle, CompoundPath and Path to work with new Color classes.
2011-02-19 17:25:16 +01:00
Jonathan Puckey
c386f38b86
GrayColor: fix comment.
2011-02-19 17:22:20 +01:00
Jonathan Puckey
068c4dc1ca
Add missing Color.js.
2011-02-19 17:10:26 +01:00
Jonathan Puckey
b944b82abe
GrayColor: fix comments.
2011-02-19 17:08:08 +01:00
Jonathan Puckey
66105dd4ac
Implement Color, RGBColor & GrayColor.
2011-02-19 17:05:39 +01:00
Jonathan Puckey
bd5c906047
Fix error in CompoundPath.
2011-02-19 14:12:05 +01:00
Jonathan Puckey
8af671bb41
Merge remote branch 'origin/master'
2011-02-19 14:07:26 +01:00
Jürg Lehni
451eaaa3c6
Add a TODO comment.
2011-02-19 13:07:24 +01:00
Jürg Lehni
6093151a3b
Make sure that setting styles explicitely to null works.
2011-02-18 08:04:20 +00:00
Jürg Lehni
d02b5cd56a
Yet another optimisation, by using the Base.each() sidecar (bind object) to fill Item fields, and inject it straight away upon returning from it.
2011-02-18 07:58:59 +00:00
Jürg Lehni
31b595fa9e
Rename itemProps to itemFields, for more consistency.
2011-02-17 23:47:04 +00:00
Jürg Lehni
2c06ec965c
Simplify PathStyle further, by removing the _get/_setChildrenStyle methods and moving their functionality into the closure injection code.
2011-02-17 23:37:21 +00:00
Jürg Lehni
4e05faaa11
Use the same simplifications in PathStyle as in CompoundPath, and rely on Base.each as well to provide the scope for closure injection.
2011-02-17 23:34:45 +00:00
Jürg Lehni
b14c9ae21b
For the closure injection to work properly we need an iterator function that provides a scope to the referenced key value. Rely on Base.each() for this, which even in a scaled down Bootstrap will be available and not harmful, as it won't rely on modified native prototypes.
2011-02-17 23:34:03 +00:00
Jürg Lehni
bc33ae8084
Add missing #closePath() to both Path and CompoundPath.
2011-02-17 23:01:18 +00:00
Jürg Lehni
4c2e1ee5c9
Optimise and simplfy CompoundPath code, by moving scope into extend() call, and only compiling one fields object inside it that is return at the end.
2011-02-17 22:58:56 +00:00
Jürg Lehni
e6dc189310
Simplify injection separation by using multiple arguments to extend().
2011-02-17 22:46:28 +00:00
Jürg Lehni
5850ef3cfc
Seperate Path definition into two parts, one that requires scoped private functions and values, and one that does not, to keep related things closer together and save indentation space.
2011-02-17 20:08:37 +00:00
Jürg Lehni
19121c33b2
Simplify injection of Path constructors.
2011-02-17 20:04:02 +00:00
Jonathan Puckey
637e85b31b
Group: fix clipping.
2011-02-17 16:50:06 +01:00
Jonathan Puckey
2a1e00d127
Group: Implement clipping support.
2011-02-17 16:37:29 +01:00
Jonathan Puckey
deb1699f13
Tidy up code.
2011-02-17 16:00:03 +01:00
Jonathan Puckey
36de01a6ae
Move Path Constructors into seperate file.
2011-02-17 15:55:26 +01:00
Jonathan Puckey
1953c17f41
CompoundPath: move getCurrentPath into the outer scope and implement smooth and simplify.
2011-02-17 14:33:25 +01:00
Jonathan Puckey
0c1f29ce29
Implement CompoundPath and move most of PathItem into Path.
2011-02-17 13:36:40 +01:00
Jonathan Puckey
7e404703c8
Add Group#getBounds().
2011-02-17 00:34:01 +01:00
Jonathan Puckey
3ae20c8a4b
Item: undo mistaken changes to transform comments.
2011-02-16 22:35:53 +01:00
Jonathan Puckey
13b8ddccc8
PathStyle: small cleanup.
2011-02-16 22:15:19 +01:00
Jonathan Puckey
4000853c2f
Implement PathStyle and Document#currentStyle.
2011-02-16 22:09:51 +01:00
Jonathan Puckey
9adb668d2a
Group: add missing beans property.
2011-02-16 22:06:24 +01:00
Jonathan Puckey
3e2b4adc27
Layer: implement moveAbove / moveBelow / nextSibling / previousSibling
2011-02-16 18:55:12 +01:00
Jürg Lehni
8a0a0712cd
Add Layer#index to override Item#index.
2011-02-16 00:18:58 +00:00
Jürg Lehni
b0b9594f1e
Add support for single-parameter calls to scale() and shear(), both in Matrix and Item (supporting optional center parameter too).
2011-02-15 23:23:40 +00:00
Jürg Lehni
99bde74a10
Improve Matrix constructor to read from arrays too.
2011-02-15 23:15:28 +00:00
Jürg Lehni
9d1458e6ae
Rely on new Array.isArray() now for array checks.
2011-02-15 23:15:13 +00:00
Jürg Lehni
b8816a07f5
Reformat to fit 80 chars boundary.
2011-02-15 23:10:48 +00:00
Jürg Lehni
9a9005a604
Correct comments about transform flags.
2011-02-15 22:57:12 +00:00
Jürg Lehni
3d64b017c5
Remove comment about having Point.read() return consumed arguments indices, as after analysing the situation it seem too complex to imeplement easly: Point.read internally relies on Point#initialize for all the heavy lifting, and this would have to report back how many indices were consumed somehow...
2011-02-15 22:56:53 +00:00
Jürg Lehni
f0d4374dc4
Improve translate() calls by directly calling Point objects and thus not relying on Point.read() internally.
2011-02-15 22:53:05 +00:00
Jürg Lehni
27f291ec80
Clean up comments.
2011-02-15 22:51:02 +00:00
Jürg Lehni
14bfb4c78e
Make Matrix#toString() behave the same as in Scriptographer.
2011-02-15 22:35:25 +00:00
Jürg Lehni
c6b5b11b1e
Use dragstart event instead of mousedown, to go with drag and dragend.
2011-02-15 22:32:05 +00:00
Jonathan Puckey
2b626be502
Item: use internal _clipMask variable, so we don't collide with getters/setters.
2011-02-15 12:05:39 +01:00
Jonathan Puckey
24e93bcaf5
Tool#setDocument: remove mousemove functionality for now, since it is interfering with tool.fixedDistance.
...
Remove events when a tool has been attached to another document before.
When not passed a document in the constructor, use the global Paper.document.
Only redraw the document when the corresponding mousehandler exists.
2011-02-15 00:01:56 +01:00
Jonathan Puckey
3c22aedfbb
ToolEvent: fix small mistake.
2011-02-14 23:41:47 +01:00
Jonathan Puckey
30fef4d147
Group: use internal _clipped variable, so we don't collide with getters/setters.
2011-02-14 22:51:31 +01:00
Jonathan Puckey
4395caf41f
Tool: add support for Tool#onMouseMove(event) and add RoundedRectangles example
2011-02-14 22:43:14 +01:00
Jonathan Puckey
e36ea0c2e3
Tool: add support for Tool#eventInterval
2011-02-14 22:23:05 +01:00
Jonathan Puckey
a633b2a066
Tool: use dragend instead of mouseup, since mouseup is not fired when the mouse is released outside of the canvas area.
2011-02-14 20:08:19 +01:00
Jürg Lehni
a154819350
Switch to using indexOf() in Segment#index for now.
2011-02-14 10:35:40 +00:00
Jürg Lehni
1d0321bc69
Change Size constructor to reflect logic in Point constructor.
2011-02-14 10:32:42 +00:00
Jürg Lehni
91e8a3b652
Update Bootstrap to fix issues with beans (requiring definition of setter when getter is redefined in sub-class), and remove setBounds in PathItem that was introduced for that reason.
2011-02-14 10:28:27 +00:00
Jürg Lehni
a6e9ee56d4
Cleanup Path constructors by using simple constructor functions instead of Base.extend() classes, use Path.Oval for Path.Circle and optimise Path.Oval through ovalSegments array with real segments (no use to call Segment.read each time).
2011-02-14 02:05:54 +00:00
Jürg Lehni
12d82ece56
Define beans in Matrix.
2011-02-14 01:52:53 +00:00
Jürg Lehni
ed55dc39fb
Fix PathItem constructor by no redefining arguments variable that results in arguments array changing as well on some browsers.
2011-02-14 01:47:56 +00:00
Jürg Lehni
38f4dd353d
Make Item#bounds setter work for PathItem, and add two TODO comments about Bootstrap shortcommings that cause it to break.
2011-02-14 01:24:22 +00:00
Jürg Lehni
87f146fb44
Have Item#setPosition use Point.read() for point conversion.
2011-02-14 01:17:43 +00:00
Jürg Lehni
50f285798c
Fix Item#setPosition and Item#setBounds to actually work (unfinished porting work).
2011-02-14 01:14:43 +00:00
Jürg Lehni
3af5d549f6
Add comments about possible optimisations in PathItem#transformContent().
2011-02-14 01:14:03 +00:00
Jürg Lehni
ee8c30b518
Implement Matrix, Item#position, Item#bounds (setter too), Item#transform(), Item#scale(), Item#rotate(), Item#transalte() and Item#shear(). Some of it work in progress.
2011-02-14 01:05:16 +00:00
Jürg Lehni
6ef5183731
Fix Rectangle#center (use + instead of -).
2011-02-13 19:22:48 +00:00
Jürg Lehni
20746ad3a7
Clea up white spaces.
2011-02-13 19:21:56 +00:00
Jürg Lehni
420ffaa7ea
No need to check for existance of handleIn/Out, as they are always defined.
2011-02-13 18:56:06 +00:00
Jürg Lehni
7370326cb2
Add space after beans: true.
2011-02-13 18:52:17 +00:00
Jürg Lehni
604ff7824c
Add comment about ideally not relying on parent.children.indexOf for getIndex().
2011-02-13 18:51:49 +00:00
Jürg Lehni
eeb7d377e6
Add optional index argument to static read() functions, so points, rectangle, sizes and segments can be read from any index in the arguments array.
2011-02-13 18:15:55 +00:00
Jürg Lehni
08d4826441
Reformating code to follow Scriptotgrapher coding conventions.
2011-02-13 16:26:24 +00:00
Jürg Lehni
4f4261488e
Fix issues with _angle caching in Point.
2011-02-13 16:24:39 +00:00
Jürg Lehni
0ac19a8e82
Optimise read() functions to only convert if argument is not of desired type already.
2011-02-13 16:05:19 +00:00
Jürg Lehni
d67055b09b
Add documentation to PathItem#bounds.
2011-02-13 15:59:22 +00:00
Jürg Lehni
515439c4df
Optimize PathItem#bounds by using less coordinate lookups.
2011-02-13 15:55:43 +00:00
Jürg Lehni
71d1ff3cb3
Make PathItem#getBounds() work for closed paths too.
2011-02-13 15:51:54 +00:00
Jürg Lehni
d59d514a55
Fix bug in PathItem#bounds (wrongly used variable name twice), now works properly for open paths.
2011-02-13 15:49:36 +00:00
Jürg Lehni
e08359f49d
Beginning of PathItem#bounds and tests to go along with it, not functional yet.
2011-02-13 15:40:30 +00:00
Jürg Lehni
a30e4057e3
Fix PathItem constructor to support passing of segments both as array and arguments.
2011-02-13 15:39:24 +00:00
Jürg Lehni
771d9d0efe
Fix a couple of bugs in shape drawing code, and switch to consistently use this.currentSegment rather than this._segments[this._segments.length - 1], to use the internal check for a starting point.
2011-02-13 15:12:25 +00:00
Jürg Lehni
a579b8bd3d
Make sure Segment#handleIn and #handleOut are always defined, even when not provided, and change compareSegments() to also reflect this change by relying on Segment.read for conversion of comparison values.
2011-02-13 15:09:24 +00:00
Jürg Lehni
4b2341b3c2
Add gettter/setters for Path#segments, and fix bug in Segment#previous.
2011-02-13 13:52:51 +00:00
Jonathan Puckey
e2c77a866d
Nullify path parent when removed.
2011-02-12 19:45:11 +01:00
Jonathan Puckey
7fdf439ef2
Group: allow passing of array of items to constructor and pass on ctx in draw function. Add tests for Group.
2011-02-12 19:12:23 +01:00
Jonathan Puckey
c1d2cab5d9
Segment.js: fix toString and remove methods. Add test for segment.remove().
2011-02-12 19:10:19 +01:00
Jonathan Puckey
9b5e18c795
PathItem: replace this.segments.push(segment) to this.addSegment(segment)
2011-02-12 19:08:34 +01:00
Jonathan Puckey
c0e2101c32
Clean up src directory and move Bootstrap.js into lib.
2011-02-12 17:59:39 +01:00
Jonathan Puckey
67f2b146b0
Implement Path#copyTo(itemOrDocument) and Path#clone()
2011-02-12 17:43:51 +01:00
Jonathan Puckey
38ada4abc1
Improve Item#isDescendant(item) and introduce Item#isAncestor(item).
2011-02-12 16:41:57 +01:00
Jonathan Puckey
e9e987f304
Fix Item#isDescendant(item).
2011-02-12 16:36:48 +01:00
Jonathan Puckey
d7fc9cf481
Introduce Paper object that keeps track of documents and which documenti is active. Newly created items are automatically appended to the children list of the active document's activeLayer.
2011-02-12 16:20:10 +01:00
Jonathan Puckey
62409a18d4
Layer.js: pass on ctx in draw function
2011-02-11 18:49:04 +01:00
Jonathan Puckey
d85217c40d
Fix small error in Doc.js
2011-02-11 18:46:49 +01:00
Jonathan Puckey
31c51ea9eb
Add a layer to the document's children list when created and support activeLayer.
2011-02-11 18:38:44 +01:00
Jonathan Puckey
c9c27f7be2
Initial support for Layer and Group
2011-02-11 18:37:36 +01:00
Jonathan Puckey
d63cac7561
Implement more of Item
2011-02-11 18:36:03 +01:00
Jonathan Puckey
34b9258e8e
Have PathItem constructor call this.base() and don't draw item when it is hidden
2011-02-11 18:30:48 +01:00
Jonathan Puckey
b47e896389
Implement Bootstrap.js changes:
...
Fix Firefox support for beans through __defineGetter/Setter__.
Fix redefinition of properties on Safari through call to delete first.
2011-02-11 18:08:35 +01:00
Jonathan Puckey
0221dd7fb7
Have predefined shape constructors use bean properties
2011-02-11 14:41:32 +01:00
Jonathan Puckey
0f21520800
Implement getters and setters
2011-02-11 14:40:36 +01:00
Jonathan Puckey
59a4c1183b
Switch Bootstrap.js version to one with beans support
2011-02-11 14:20:34 +01:00
Jonathan Puckey
e234b3735c
Have the predefined shape constructors return a path instead of inheriting from it
2011-02-11 11:49:24 +01:00
Jonathan Puckey
0d1f0bf5a1
Add insert function for PathItem
2011-02-09 01:12:03 +01:00
Jonathan Puckey
440db1c1e3
Remove try/catch clauses and add missing check for existance of onMouseUp
2011-02-09 01:07:29 +01:00
Jonathan Puckey
7e285abe7a
Add initial support for mouse events.
2011-02-08 13:15:55 +01:00
Jonathan Puckey
cb5a8aa2fc
Rename Doc#draw to Doc#redraw
2011-02-08 13:15:27 +01:00
Jonathan Puckey
cbb10922c5
Include the full Bootstrap library for now to support mouse events.
2011-02-08 13:14:52 +01:00
Jonathan Puckey
5a309f67dc
Remove SegmentList.js for now.
2011-02-07 19:53:27 +01:00
Jonathan Puckey
b19ba2014c
Initial commit
2011-02-07 19:28:09 +01:00