Commit graph

295 commits

Author SHA1 Message Date
Jürg Lehni
ea6cf24aae Rename length parameter to more appropriate offset, to reflect recent name changes. 2011-04-27 21:23:57 +01:00
Jürg Lehni
3501e14c51 Remove comment about pending port that has been backported to Scriptographer. 2011-04-27 21:13:32 +01:00
Jürg Lehni
c2fbcbcaa8 Use Curve#getLength(from, to) rather than cloning and dividing. 2011-04-27 20:52:24 +01:00
Jürg Lehni
346493fb7c Replace calls to getters with their internal property in all cases where getter does not perform additional magic. 2011-04-27 20:48:41 +01:00
Jürg Lehni
016f4c15aa Rename CurveLocation#getLength() and #getCurveLength() to #getOffset() and #getCurveOffset(), and seperate Path#getLength([location]) into #getLength() and #_getOffset(). 2011-04-27 20:08:57 +01:00
Jürg Lehni
b0a1f4b1a9 Add missing Path#getPoint(length). 2011-04-27 19:28:39 +01:00
Jürg Lehni
c836012d3d Add CurveLocation#getTangent() and #getNormal() and use them in Path's versions. 2011-04-27 19:26:03 +01:00
Jürg Lehni
bf0bc81892 Fix various minor bugs in CurveLocation: We cannot rely on most of its field to always be set and need to call getters instead. 2011-04-27 19:24:40 +01:00
Jürg Lehni
cc06a6f128 Remove CurveLocation#getPath() again as its functionality is provided by #getItem() already. 2011-04-27 19:22:57 +01:00
Jürg Lehni
ebc9bc88c4 Use 0 instead of null for empty bit flag fields. 2011-04-27 19:11:22 +01:00
Jürg Lehni
c6d96784ba Further simplify and compress code. 2011-04-27 18:16:32 +01:00
Jürg Lehni
f71967f3d3 Further simplify and compress code. 2011-04-27 17:57:56 +01:00
Jürg Lehni
6b6f27cb6e Add TODOs about not returning -1 for undefined. 2011-04-27 17:53:59 +01:00
Jürg Lehni
4bfc56bb6d Simplify and compress code a bit. 2011-04-27 17:53:23 +01:00
Jonathan Puckey
81a15379e5 Have Path#reverse also reverse the segment handles. 2011-04-27 15:49:06 +02:00
Jürg Lehni
ae3ec6f2d7 Remove comment about pending port that has been backported to Scriptographer. 2011-04-27 12:36:04 +01:00
Jürg Lehni
9671ac6dbc Remove comment about pending port that has been backported to Scriptographer. 2011-04-27 12:30:17 +01:00
Jürg Lehni
e6a0f48256 Further clean-up code, as we only need previous / next references inside one sub-condition. 2011-04-27 12:26:10 +01:00
Jürg Lehni
138ec7d93c No need to perform cyclic looping here now, since #getNext/Previous() does that for us. 2011-04-27 12:24:04 +01:00
Jürg Lehni
a251a24347 Add some TODOs to check. 2011-04-27 12:21:47 +01:00
Jürg Lehni
0e89466a11 Add cyclic looping to Segment#previous/next for closed paths. 2011-04-27 12:21:31 +01:00
Jürg Lehni
92369bf14f Seperate the private Segment#is/setSelected(point) methods from the newly added getter / setter. 2011-04-27 12:15:51 +01:00
Jürg Lehni
6204eef643 Remove comment about pending port that has been backported to Scriptographer. 2011-04-27 12:08:13 +01:00
Jürg Lehni
776edda51d Cleaned-up Segment#is/setSelected() code a bit. 2011-04-27 12:06:44 +01:00
Jürg Lehni
cd2347aa9b Remove comment about pending port that has been backported to Scriptographer. 2011-04-27 11:24:13 +01:00
Jürg Lehni
41eb09f15f Add forgotten brackets in Curve#isSelected() and remove comments about backporting as it is ported now. 2011-04-27 10:52:56 +01:00
Jürg Lehni
1c9cd9ace4 Clean up code in #setContextStyles(). 2011-04-27 09:53:53 +01:00
Jürg Lehni
b7a4277143 Add comment about _x / _y properties and clean up code a bit. 2011-04-26 17:57:12 +01:00
Jürg Lehni
ead1600afe Clean-up CurveLocation code and switch from returning -1 to null for #getIndex(). 2011-04-26 17:49:54 +01:00
Jürg Lehni
c4ede92e81 Fix error in Path#getLastCurve(). 2011-04-26 17:48:36 +01:00
Jürg Lehni
77ad25ffba Clean up port comments. 2011-04-26 17:47:30 +01:00
Jürg Lehni
ac5dca4fc0 Update various comments about TODOs. 2011-04-26 17:04:15 +01:00
Jürg Lehni
bdfe35d93a Consistently name local context variables 'ctx', to save line size and acknowledge the fact that Canvas contexts have a funny API design. 2011-04-26 15:39:16 +01:00
Jürg Lehni
a20f988511 Minor code cleanup. 2011-04-26 12:55:20 +01:00
Jürg Lehni
9d2459d799 Rename '// Todo' to '// TODO', which is the convention. 2011-04-26 12:39:48 +01:00
Jürg Lehni
e8a2a786e0 Fix Curve#getParameter() for straight lines. 2011-04-26 12:30:58 +01:00
Jürg Lehni
6609dc2307 Implement new root finding algorithm, combining Newton-Raphson Method with Bisection, and update Curve#getParameter() to use it. 2011-04-26 12:23:09 +01:00
Jonathan Puckey
5e6630a1f3 Speed up drawHandle function. 2011-04-23 15:56:27 +02:00
Jonathan Puckey
538f360a6b Fix Document#getSelectedItems & Path#setSegments. 2011-04-22 12:30:38 +02:00
Jonathan Puckey
4d89d6c235 Path#setSegments: reset _selectedSegmentCount when setting a new segment list. 2011-04-22 11:39:12 +02:00
Jonathan Puckey
11063af8df CompoundPath cleanups. 2011-04-21 21:12:48 +02:00
Jonathan Puckey
1ea0a811b5 Use internal variables in CompoundPath#moveBy and Segment#isSelected. 2011-04-21 21:06:35 +02:00
Jonathan Puckey
af0543dac8 Some cleanups in Path. 2011-04-21 21:01:31 +02:00
Jonathan Puckey
dfb5cbc5eb Fix two bugs in the selected items code. 2011-04-21 20:52:28 +02:00
Jonathan Puckey
be8ee90f75 Document: use a hash for Document#_selectedItems to speed up adding to and removing from it. 2011-04-21 20:43:42 +02:00
Jonathan Puckey
745f002cd3 Segment: add todo. 2011-04-21 20:00:11 +02:00
Jonathan Puckey
abb0878a25 Curve: Implement selection of curves. 2011-04-21 19:54:32 +02:00
Jonathan Puckey
cf541901dd Rename getSelected methods to isSelected. 2011-04-21 19:51:49 +02:00
Jonathan Puckey
d831d66758 Implement SelectionState.js: bitwise flags for segment selection state. 2011-04-21 19:37:51 +02:00
Jonathan Puckey
7867a46c35 Path#setSelected: do XOR correctly. 2011-04-21 18:45:36 +02:00
Jonathan Puckey
cf2faa14e3 Path#join: use internal variables. 2011-04-21 18:43:22 +02:00
Jonathan Puckey
73b97dbfba Implement segment point selection. 2011-04-21 18:06:06 +02:00
Jonathan Puckey
732caec7bf Speed up drawing of selected items. 2011-04-21 15:48:21 +02:00
Jonathan Puckey
b2cd8cdec2 Path: use the internal SegmentPoint#_x and #_y properties where possible. 2011-04-21 15:25:25 +02:00
Jürg Lehni
985aa5aff8 Directly access internal _x and _y properties on internal SegmentPoints, to avoid callling getters. 2011-04-21 13:33:12 +01:00
Jürg Lehni
96f266b4d2 Add beginning of SegmentPoint class. 2011-04-21 13:21:56 +01:00
Jonathan Puckey
be9f312110 Implement a first version of drawing path selection. 2011-04-17 18:46:35 +02:00
Jonathan Puckey
74cee4abef Implement Path#remove() and add tests for it. 2011-04-13 16:16:32 +02:00
Jonathan Puckey
6d4d07f2a8 Path.Constructors: simply Path.Star constructor. 2011-04-13 00:05:46 +02:00
Jonathan Puckey
0d4517c77f Path: add todos for missing functions. 2011-04-12 14:36:02 +02:00
Jonathan Puckey
60dca8c2e8 Path#cubicCurveTo: convert arguments to points first. 2011-04-12 14:35:42 +02:00
Jonathan Puckey
91d8dd1187 Path: add todos for missing functions. 2011-04-12 14:28:18 +02:00
Jonathan Puckey
491250ef14 Simplify Path.Star constructor. 2011-04-12 14:20:56 +02:00
Jonathan Puckey
12de77eb42 Path.Constructors: implement Path.Star and add tests. 2011-04-12 14:18:00 +02:00
Jonathan Puckey
2a9bbd3dee Fix Path#closePath & CompoundPath#closePath. 2011-04-11 23:33:08 +02:00
Jonathan Puckey
499c421021 Implement Path#join(path) and add tests for it. 2011-04-11 23:30:08 +02:00
Jonathan Puckey
594c11fedd CurveLocation: fix mistakes. 2011-04-11 19:36:40 +02:00
Jonathan Puckey
aa043428c0 CurveLocation: add empty line to end of file. 2011-04-11 19:33:34 +02:00
Jonathan Puckey
b46c6d0a29 Curve: implement getLocation(length), getLength(location), getTangent(length), getNormal(length) 2011-04-11 19:32:19 +02:00
Jonathan Puckey
d396f48c4b Implement CurveLocation. 2011-04-11 19:32:04 +02:00
Jürg Lehni
08d0499251 Change comment. 2011-03-25 19:58:20 +02:00
Jürg Lehni
e83195bb8f Add #first/lastCurve getters. 2011-03-25 19:58:02 +02:00
Jürg Lehni
b5fdecf3d1 Rename ObservedRectangle to LinkedRectangle, ObservedPoint to LinkedPoint, and add more comments about what it is they are doing. 2011-03-22 17:27:46 +00:00
Jürg Lehni
417d015eab Improve curve time parametrization precision by iteratively adding up sub-range lengths, and optimise speed by determining integration precision based on range size. 2011-03-20 11:38:06 +00:00
Jürg Lehni
11e70c5069 Use fast Newton-Raphson Method for now. 2011-03-20 02:02:02 +00:00
Jürg Lehni
02328287cb Use n=16 evaluations in integrations for now. 2011-03-20 02:00:15 +00:00
Jürg Lehni
ad71293983 Remove Van Wijngaarden–Dekker–Brent method again as it led to imprecise results, and experiment with the very fast Newton-Raphson method (keeping False Position as a possible fallback for now). 2011-03-20 00:04:33 +00:00
Jürg Lehni
2c9d168224 Clean up and improve Path drawing commands. 2011-03-19 23:09:17 +00:00
Jürg Lehni
1267f41559 Add beginning of ObservedRectangle support and test it in animatedStar example. 2011-03-16 23:32:46 +01:00
Jürg Lehni
c284b0837e Fix tiny error in Path#smooth() 2011-03-14 16:18:12 +01:00
Jürg Lehni
9d4af0ce9e Clean up recently caused Base.read() mess by introducing _readNull property,m setting it to true on Color and reverting to previous behavior for Point, Size and Rectangle, where dimensions of 0 are read by default if nothing is provided. 2011-03-13 18:31:00 +01:00
Jürg Lehni
526e2ea0ba Hide Curve#getLength() parameters from Bootstrap so it injects bean too. 2011-03-08 17:31:36 +00:00
Jürg Lehni
195b089424 Clean up Path.* constructors and make sure they handle Base.read() returning null. 2011-03-08 17:20:30 +00:00
Jürg Lehni
484b2b0c94 Test code for Path#segments change observation. 2011-03-08 17:20:03 +00:00
Jürg Lehni
3927836441 Declare functions that work both as getters for beans and also as callalble functions with optional parameters differently, since they do not inject beans anymore if they declare parameters. 2011-03-08 17:19:02 +00:00
Jürg Lehni
74167ff28d Add test code for segments list that detects change. 2011-03-08 13:19:08 +00:00
Jürg Lehni
fc0d3efd29 Simplify Path constructor further. 2011-03-08 13:03:57 +00:00
Jürg Lehni
e35fb1efb6 Move populating of segments list to Path#setSegments() and rely on it in constructor. 2011-03-08 13:03:11 +00:00
Jürg Lehni
848befe103 No need to create a new segments array in setSegments, just set length of existing one instead. 2011-03-08 13:00:32 +00:00
Jürg Lehni
6a67052090 Update copyright / licensing comments. 2011-03-08 01:41:50 +00:00
Jürg Lehni
c4c5b070b5 Minor code clean-up. 2011-03-07 16:51:12 +00:00
Jürg Lehni
59cb7e937e Add control over maximum iterations to Numerical.findRoot(). 2011-03-07 11:59:43 +00:00
Jürg Lehni
d9b8809f3c Further clean up getParameter() code. 2011-03-07 11:58:41 +00:00
Jürg Lehni
7956b50886 Use === for undefined comparisons. 2011-03-07 11:52:04 +00:00
Jürg Lehni
1e8dffac08 Clean up getParameter() code. 2011-03-07 11:51:01 +00:00
Jürg Lehni
0ddfc9ef33 Add support for sub ranges and negatives lengths in Curve#getParameter(), a prerequirement for adding dash support. 2011-03-07 11:37:42 +00:00
Jürg Lehni
2ac9a13e2a Give Numerical methods more meaningful names. 2011-03-07 11:12:00 +00:00
Jürg Lehni
08545983d7 Minor clean-ups. 2011-03-07 02:38:07 +00:00
Jürg Lehni
4dd4072f6b Use push() instead fo concat() for better getParameter() performance. 2011-03-07 02:35:06 +00:00
Jürg Lehni
3d7e66053c Simplify getLength() for line ranges. 2011-03-07 02:33:36 +00:00