Commit graph

440 commits

Author SHA1 Message Date
Jürg Lehni
064d632d65 More matrix related clean-ups. 2013-12-08 22:12:36 +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
7800e5f84e Clean up strange constructor notation that causes linting issue. 2013-12-07 19:45:10 +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
3ea5c2d728 Improve documentation of Matrix properties. 2013-12-07 12:14:20 +01:00
Jürg Lehni
cb3cc84dae Implement Matrix#skew() 2013-12-07 05:20:55 +01:00
Jürg Lehni
268ecad00b Clean up Matrix documentation. 2013-12-07 05:20:38 +01:00
Jürg Lehni
0bf863d1fa Remove ill-named Matrix properties and replace with standardized a, c, b, d, tx, ty. 2013-12-06 22:26:21 +01:00
Jürg Lehni
5f24bf8da5 Implement Rectangle#getArea() and use it in reorientPath() 2013-12-03 21:54:36 +01:00
Jürg Lehni
cbefaf0dd1 Fix handling of internally cached _angle in Point.
Closes #344.
2013-11-27 00:03:03 +01:00
Jürg Lehni
f3832e0780 Implement setters for Matrix#translation, #rotation and #scaling.
Propagating the changes down to the owning Item too.
2013-11-26 19:28:18 +01:00
Jürg Lehni
56f25e8742 Implement change propagation in matrices. 2013-11-26 19:03:58 +01:00
Jürg Lehni
ac862f9bc4 Some minor code clean up and variable renaming. 2013-11-01 17:55:06 +01:00
Jürg Lehni
dc732da8d8 Clean up documentation for event handler functions on View and Tool. 2013-10-30 15:38:08 +01:00
Jürg Lehni
db882748b1 Fix documentation of Point#angle.
Closes #320.
2013-10-29 23:37:05 +01: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
19c7788617 Fix documentation irregularities. 2013-08-23 19:45:28 -07:00
Jürg Lehni
1120b6012c Merge pull request #262 from huochunpeng/fix_typo_in_matrix
fix typo "Concatentates".
2013-08-08 17:24:40 -07:00
Jürg Lehni
6b19f25f4b Fix typos in comments. 2013-08-08 15:21:35 -07:00
Chunpeng Huo
4904a1df1f fix typo "Concatentates". 2013-07-26 15:22:37 +10:00
Jürg Lehni
f68f1ad518 Docs: Fix some faulty object parameters. 2013-07-02 12:22:45 -07:00
Jürg Lehni
e8765d18d5 Make argument reading more flexible by introducing options object for readNull and clone, and passing it on to the constructor through this.__options for additional values. 2013-06-28 07:37:03 -07:00
Jürg Lehni
22df17c192 Docs: Minor cleanups. 2013-06-28 06:41:36 -07:00
Jürg Lehni
8f254202e8 Use new @operator tag to mark math operator methods. 2013-06-28 05:59:07 -07:00
Jürg Lehni
5e7209a7bb Clean up math function injection in Point and Size. 2013-06-28 04:58:57 -07:00
Jürg Lehni
e63edba0b5 Clean up various documentations a bit. 2013-06-27 18:03:03 -07:00
Jürg Lehni
772c83596f Replace Base.create() calls in favor of faster direct constructors. 2013-06-25 09:50:14 -07:00
Jürg Lehni
3d5ae373a8 Remove static create() methods from LinkedPoint/Size/Rectangle, and give them initialize() methods instead that also name the classes in debugging. 2013-06-25 09:41:55 -07:00
Jürg Lehni
1866e4ff15 Remove need for all special arguments in minification, and restructure code to avoid warnings. 2013-06-24 10:15:54 -07:00
Jürg Lehni
a4535edbb9 Bring back _class names, since code minification breaks reliance on constructor.name.
Closes #248.
2013-06-23 20:18:32 -07:00
Jürg Lehni
4b62949318 Fix tests for #246.
This is actually the right behavior: Setting length to negative values should flip around defined vectors.
2013-06-23 17:22:13 -07:00
Jürg Lehni
d98a9f40cb Correctly fix Line#length documentation. 2013-06-17 15:16:48 -07:00
Jürg Lehni
ccd0bf8f6b Simply delegate to Point#getLength() as we already have it. 2013-06-17 08:28:37 -07:00
Jürg Lehni
9463f0078a Fix documentation since Line#vector will be documented as a simple accessor. 2013-06-17 08:28:02 -07:00
hkrish
2693516844 Implement correct method for calculating curvature on a Path 2013-06-17 15:16:11 +05:30
Jürg Lehni
2196ef2a74 Streamline various #equals() methods. 2013-06-12 18:57:12 -07:00
Jürg Lehni
4a8469b740 Define Base.isPlainValue() and use it to implement more flexible #equals() for Color and Rectangle. 2013-06-12 18:55:14 -07:00
Jürg Lehni
d1932124d7 Implement #equals() in Point, Size and Rectangle without argument reading.
Closes #235
2013-06-12 15:28:29 -07:00
Jürg Lehni
1394c36907 Find an elegant way to implement all variations of Rectangle(object) constructors. 2013-06-12 15:08:22 -07:00
Jürg Lehni
7c5478cd93 Define first solution for correctly handling Rectangle(object) constructors.
Work in progress.
2013-06-12 14:57:47 -07:00
Jürg Lehni
a7750c3e67 Support null arguments in Point#equals(). 2013-06-11 20:14:45 -07:00
Jürg Lehni
ce7d584c05 Revert readNull and clone parameter sequence in arguments reading code. 2013-06-11 19:49:35 -07:00
Jürg Lehni
75eddbcdba Minor code clean ups. 2013-06-02 16:18:40 -07:00
Jürg Lehni
cd7db56249 Remove all create() constructors for basic types since new constructors are now faster.
Woop!
2013-05-27 23:57:31 -07:00
Jürg Lehni
10d5de3ed6 Implement a better way to name and export class constructors.
This change also simplified the way classes are exported to PaperScope objects.
2013-05-27 12:48:58 -07:00
Jürg Lehni
da8898abd2 Fix newly introduced bug in Line.getSide() through variable renaming. 2013-05-26 17:05:10 -07:00
Jürg Lehni
f771233d37 Speed up Line class by removing internal dependance on Point. 2013-05-26 16:58:34 -07:00
Jürg Lehni
80f9f6061c Change the way the Line class handles direction vectors and infinite lines.
The beginning of performance improvements in the Line class.
2013-05-26 15:44:52 -07:00
Jürg Lehni
e359dd038c Add explaining comment. 2013-05-24 17:14:39 -07:00
Jürg Lehni
04f2f19a43 Minor fix in Matrix#shear() 2013-05-09 02:31:26 -07:00
Jürg Lehni
f704b00e00 Implement static Line.intersect() and use it to speed up Curve.getIntersections()
Unfortunately doesn't seem to have any impact!
2013-05-04 10:22:10 -07:00
Jürg Lehni
c513a24f46 Handle intersection between linear curves without recursive subdivision.
Closes #207.
2013-04-26 14:31:42 -07:00
Jonathan Puckey
b8085c330f Rename properties to object in Rectangle constructor docs. 2013-04-21 16:07:54 +02:00
Jürg Lehni
e1807214f4 Large refactoring of Style handling for notable speed improvements. 2013-04-19 19:31:29 -07:00
Jürg Lehni
7f245974e6 Implement a faster method to filter out beginnings of intersected curves. 2013-04-09 20:35:31 -07:00
Jürg Lehni
a9a0857ba4 Find a better strategy to avoid duplicate solutions in PathItem#getIntersections().
Closes #197.
2013-04-09 20:27:55 -07:00
Jürg Lehni
fbe8a558bd Refactor Format literal to Formatter class that keeps precision stored. 2013-04-09 17:32:19 -07:00
Jürg Lehni
2d3f9c36eb Update JSDoc and fix documentation issues. 2013-04-09 17:07:41 -07:00
Jürg Lehni
a0b903e49c Simply call slice() instead of slice(0). 2013-04-06 18:39:17 +02:00
Jürg Lehni
f43b322d2a Rename Base#_type property to #_class. 2013-04-06 09:16:08 +02:00
Jürg Lehni
be8b46899d Simplify Matrix#applyToContext() 2013-03-19 21:35:41 -07:00
Jürg Lehni
16b60d1b9e Allow all basic types to properly serialize themselves in non-compact form. 2013-03-19 17:52:17 -07:00
Jürg Lehni
a0066b61c3 Rearrange method sequence in basic types. 2013-03-19 17:51:50 -07:00
Jonathan Puckey
1393825bc2 Add object literal constructor docs to Rectangle. 2013-03-16 13:15:21 +01:00
Jonathan Puckey
c6bcd7d97a Improve Size documentation. 2013-03-16 13:04:33 +01:00
Jürg Lehni
1d1e6425fa Remove all left-overs of call chaining, except for where it's in use. 2013-03-05 20:39:07 -08:00
Jürg Lehni
7782116e06 Fix issues with Rectangle constructor.
Reading from { from: , to: } now works as expected.
2013-03-03 15:24:30 -08:00
Jonathan Puckey
91dfc9b1ea Rectangle constructor docs: rename arguments from 'point1, point2' to 'from, to'. 2013-03-03 14:18:11 +01:00
Jürg Lehni
3f5d0a6925 Merge constructor._name with _type and use CamelCase for Item types. 2013-03-01 17:13:22 -08:00
Jürg Lehni
3f85dcdb77 Use #_set() in Rectangle#initialize() to simplify code and increase flexibility. 2013-03-01 14:37:27 -08:00
Jürg Lehni
9d8cddbe42 Implement new private Format object that handles formatting of number, point, size and rectangle. 2013-02-28 19:14:05 -08:00
Jürg Lehni
6b7c6b6c4c Implement Item#bounds.selected to control drawing of selected item bounds. 2013-02-24 15:41:31 -08:00
Jürg Lehni
fdd15e675f Add options argument to #toJson() methods, and use to implement optional fractional digit precision control. 2013-02-12 14:57:54 -08:00
Jürg Lehni
b10454a83c Rename Matrix#createInverse() to #inverted() and #createShiftless() to #shiftless(). 2013-02-09 12:18:40 -08:00
Jürg Lehni
be3b257175 Restructure Matrix code sequence. 2013-02-09 12:11:19 -08:00
Jürg Lehni
0cf290ff2d More work on Matrix decomposition.
Have Matrix#decompose() return null if decomposition is not possible, separate Matrix#translation from decomposition code as it's always defined, and document methods and properties.
2013-02-09 12:09:55 -08:00
Jürg Lehni
2bb9153810 Fix TODO in Matrix#scale(). 2013-02-09 11:52:31 -08:00
Jürg Lehni
cd9fc39f54 Rename Matrix#setIdentity() to #reset() and document it. 2013-02-09 11:45:33 -08:00
Jürg Lehni
9aaa864f81 Streamline Matrix by removing unnecessary Matrix#setTo*() and Matrix.get*Instance() methods.
Use (new Matrix().*()) instead.
2013-02-09 11:42:55 -08:00
Jürg Lehni
3930a40c7e Implement Matrix#rotate() without relying on Matrix#getRotateInstance(). 2013-02-09 11:40:49 -08:00
Jürg Lehni
53474aa5c0 Put decomposed matrix values in sequence in which they would have to be applied again. 2013-02-09 11:21:16 -08:00
Jürg Lehni
aec13ffd43 Fix all tests for Matrix decomposition. 2013-02-08 23:25:10 -08:00
Jürg Lehni
e438ac8223 Implement proper matrix decomposition and use it in SvgExport. 2013-02-08 23:02:20 -08:00
Jürg Lehni
aec87f4ed1 Fix issues with matrix decomposition.
Work in progress...
2013-02-08 22:17:32 -08:00
Jürg Lehni
d793d8a43d Clean up code. 2013-02-08 18:17:51 -08:00
Jürg Lehni
6c9c16ad3d Update copyright information comments, and year. 2013-01-28 18:03:27 -08:00
Jürg Lehni
3319488f5a Fix reading of center point in Rectangle constructor. 2012-12-30 18:26:53 +01:00
Jürg Lehni
d0fff09bb0 Allow creation of rectangles from {point, size} and {center, size} object literals. 2012-12-30 18:17:09 +01:00
Jürg Lehni
2abefee336 Merge Base.readValue() with Base.read() and rename Base.peekValue() to Base.peek().
When called directly on Base, read() reads values, otherwise the specific type of the subclass it is called on.
2012-12-30 16:07:20 +01:00
Jürg Lehni
fdb4bab479 Improve arguments reading in Line constructors.
Avoid parameter overriding.
2012-12-27 19:12:30 +01:00
Jürg Lehni
57a9f4fc91 Use constant substitution for Numerical constants as well. 2012-12-27 18:36:59 +01:00
Jürg Lehni
8c33e5be88 Fix null exception in Matrix#equals(). 2012-12-27 13:04:21 +01:00
Jürg Lehni
4f83e0eee6 Commit first version of serialization / deserialization mechanism.
It appears to work fine already for Paths and Groups.
2012-12-27 12:45:55 +01:00
Jürg Lehni
734cc1cc61 Undo commit 4445376c0204cb5a2e408c64b77a5b6fa09305ba since it clashes with magnification. 2012-12-21 16:41:57 +01:00
Jürg Lehni
b535d9f843 Implement new Bootstrap feature that allows hiding of getter parameters to make sure beans are produced, and use it across the library. 2012-12-15 19:51:31 +01:00
Jürg Lehni
07688a685e Switch back from using 'x' in obj to obj.x != null in basic type constructors, since 'x' in <primitive type value> would throw an exception. 2012-11-28 22:09:09 -08:00
Jürg Lehni
d671a08205 Introduce Base.toFloat() and rename Base.formatNumber() to Base.formatFloat() 2012-11-14 01:31:08 -08:00
Jürg Lehni
f871430018 Use 'in' operator instead of typeof checks in basic type constructors. 2012-11-10 16:32:37 -08:00
Jürg Lehni
86609103fc Allow rectangles to be created from arrays too. 2012-11-10 15:45:23 -08:00
Jürg Lehni
53a8099403 Avoid division with almost zero. 2012-11-06 14:02:07 -08:00
Jürg Lehni
d9bfc2fa35 Implement Matrix support in SvgExporter. 2012-11-06 10:04:04 -08:00
Jürg Lehni
4c51544b6e Implement correct checks for primitives (rect, ellipse, circle). 2012-11-06 01:22:16 -08:00
Jürg Lehni
a5cdb5492c Optimise Point#rotate(0) 2012-11-05 23:23:25 -08:00
Jürg Lehni
400b454177 Introduce Numerical.isZero(), for comparisons against 0 with a tolerance. 2012-11-05 21:06:13 -08:00
Jürg Lehni
6ed1d67ada Modernize Bootstrap.js, introduce Base.create() and use it instead of the Constructor.dont hack for object creation without the calling of initialize. 2012-11-03 21:49:37 -07:00
Jürg Lehni
88dff19f73 Define squared parameter in Point#getDistance() as optional. 2012-11-02 16:45:46 -07:00
Jürg Lehni
30374ae3b4 Implement proper index independent argument list reading of basic types.
Implemented for Point, Size, Rectangle and Color.
2012-10-18 14:24:15 -07:00
Jürg Lehni
6f2ff18fa1 Bring back fallback scenario in Point#initialize(). 2012-10-15 17:13:20 -07:00
Jürg Lehni
db93544e8c Restructure Point#initialize() to reflect new findings regarding typeof performance.
typeof val === 'undefined' is way faster than val === undefined.
2012-10-15 17:11:11 -07:00
Jürg Lehni
199d19a237 Minor code clean-up. 2012-09-30 14:09:59 -07:00
Jürg Lehni
59a55f7574 Merge branch 'master' of github.com:paperjs/paper.js 2012-09-30 14:08:44 -07:00
Jürg Lehni
2c5c4ae423 Improve documentation of Rectangle#intersects. 2012-09-30 14:08:02 -07:00
Jonathan Puckey
2a0f322c22 Point#getLength: access to out of bounds index in arguments array prevented function from being optimized. 2012-07-25 20:02:04 +02:00
Jürg Lehni
a21d180150 Use faster Point.create(). 2011-12-20 23:32:53 +01:00
Jürg Lehni
f2d7b85616 Introduce Matrix#setIdentity(). 2011-12-20 23:14:30 +01:00
Jürg Lehni
5797b78c2c Clean up Matrix concatenation code. 2011-12-20 11:39:10 +01:00
Jürg Lehni
d8f0105fb2 Document support for dontLink parameter. 2011-11-30 18:19:39 +01:00
Jürg Lehni
907d6c0954 Implement Matrix#equals(). 2011-11-26 12:04:44 +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
Jonathan Puckey
52385451f6 Resolve a few documentation todos. 2011-11-12 18:30:21 +01:00
Jürg Lehni
34b5d043b3 Implement Matrix#inverseTransform(). 2011-09-23 11:19:03 +02:00
Jürg Lehni
4600fe1e21 Add comments about alternative arguments. 2011-09-23 11:18:25 +02:00
Jürg Lehni
d1d110f085 Document the two versions of Matrix#transform() separately. 2011-09-23 11:17:42 +02:00
Jürg Lehni
f8dac43107 Remove Matrix#determinant and convert getter to private method that only returns determinant if matrix is reversible, simplifying the various places where _getDeterminant is in use. 2011-09-22 21:19:41 +02:00
Jürg Lehni
44e5c30436 Remove misleading alternative parameter comment. 2011-09-22 10:36:27 +02:00
Jürg Lehni
76df9d9a92 Fix documentation for beans. 2011-08-16 13:53:36 +02:00
Jürg Lehni
c9eb538f7a Support an optional argument 'dontLink' in getters that normalled return LinkedPoint and LinkedSize objects, for internal use. 2011-08-16 13:50:59 +02:00
Jonathan Puckey
a58bbaf6cf Fix Size#isZero(). 2011-08-04 15:06:35 +02:00
Jürg Lehni
42c9f91279 Rename internal Matrix transform parameters to (a, c, b, d, tx, ty), expoes values through Matrix#getValues() and improve documentation. 2011-07-31 15:26:09 +01:00
Jürg Lehni
293399e5b9 Add optional parameter 'squared' to Point#getLength() and #getDistance(). 2011-07-30 11:36:28 +01:00
Jürg Lehni
3a7c5286b5 Improve precision of Line#intersect() and other parts that check for a divisor to not be 0, by comparing against the new Numerical.EPSILON rather than Numerical.TOLERANCE. 2011-07-28 11:03:59 +01:00
Jürg Lehni
f5ee4a1ff7 Improve documentation for Matrix#createInverse(). 2011-07-27 22:01:51 +01:00
Jürg Lehni
a0a426982f Documentation: Fix display of pseudo code. 2011-07-25 09:16:41 +01:00
Jürg Lehni
2c1fdc0744 Clean up Matrix constructor. 2011-07-25 09:15:35 +01:00
Jürg Lehni
68ba8e25e4 Documentation: Fix Matrix properties. 2011-07-25 09:15:18 +01:00
Jürg Lehni
b5b1e50ccf Improve detection of passed Rectangles or Points in Rectangle#contains() 2011-07-11 12:21:24 +02:00
Jürg Lehni
6771475ffc Clean up comments. 2011-07-09 16:59:07 +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
62ba983432 Implement hit-test options: center and bounds. 2011-07-08 23:26:50 +02:00
Jürg Lehni
277ab844f2 Add comment about improving Rectangle#contains(). 2011-07-05 01:17:55 +02:00
Jürg Lehni
f2d2937a18 Define Rectangle#expand() and #scale(), as an easy way to manipulate rectangles. 2011-07-04 19:48:18 +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
79c0ad8cc5 Update copyright notices. 2011-07-01 12:17:45 +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
2fd623d5b9 Define Size#clone(), fixing a failing test. 2011-06-27 14:44:58 +02:00
Jürg Lehni
4a344c8fad Clean up forgotten @lends statements. 2011-06-22 23:58:50 +01: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
Jürg Lehni
582f8f84fb Remove debug logging. 2011-06-20 18:28:12 +01:00
Jürg Lehni
c6135c6dc7 Define Matrix#getTranslation, #getScaling() and #getRotation(), as a way to extract translation, scale and rotation from matrices. 2011-06-20 18:25:19 +01:00