diff options
Diffstat (limited to 'js/lib/geom')
-rwxr-xr-x | js/lib/geom/sub-path.js | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/js/lib/geom/sub-path.js b/js/lib/geom/sub-path.js index 2ecafa1c..60335990 100755 --- a/js/lib/geom/sub-path.js +++ b/js/lib/geom/sub-path.js | |||
@@ -34,6 +34,8 @@ var GLSubpath = function GLSubpath() { | |||
34 | this._Anchors = []; | 34 | this._Anchors = []; |
35 | this._BBoxMin = [0, 0, 0]; | 35 | this._BBoxMin = [0, 0, 0]; |
36 | this._BBoxMax = [0, 0, 0]; | 36 | this._BBoxMax = [0, 0, 0]; |
37 | this._canvasCenterLocalCoord = [0,0,0]; | ||
38 | |||
37 | this._isClosed = false; | 39 | this._isClosed = false; |
38 | 40 | ||
39 | this._Samples = []; //polyline representation of this curve in canvas space | 41 | this._Samples = []; //polyline representation of this curve in canvas space |
@@ -274,6 +276,14 @@ GLSubpath.prototype.setIsClosed = function (isClosed) { | |||
274 | } | 276 | } |
275 | }; | 277 | }; |
276 | 278 | ||
279 | GLSubpath.prototype.setCanvasCenterLocalCoord = function(center){ | ||
280 | this._canvasCenterLocalCoord = center; | ||
281 | }; | ||
282 | |||
283 | GLSubpath.prototype.getCanvasCenterLocalCoord = function(){ | ||
284 | return this._canvasCenterLocalCoord; | ||
285 | }; | ||
286 | |||
277 | GLSubpath.prototype.getNumAnchors = function () { | 287 | GLSubpath.prototype.getNumAnchors = function () { |
278 | return this._Anchors.length; | 288 | return this._Anchors.length; |
279 | }; | 289 | }; |
@@ -681,13 +691,16 @@ GLSubpath.prototype.setStrokeWidth = function (w) { | |||
681 | if (this._dirty){ | 691 | if (this._dirty){ |
682 | this.createSamples(false); //this will also update the bounding box | 692 | this.createSamples(false); //this will also update the bounding box |
683 | } else{ | 693 | } else{ |
684 | this.computeBoundingBox(false); | 694 | this.computeBoundingBox(true,false); |
685 | } | 695 | } |
686 | this.offsetPerBBoxMin(); //this will shift the local coordinates such that the bbox min point is at (0,0) | 696 | this.offsetPerBBoxMin(); //this will shift the local coordinates such that the bbox min point is at (0,0) |
687 | 697 | ||
688 | //figure out the adjustment to the canvas position and size | 698 | //figure out the adjustment to the canvas position and size |
689 | var delta = Math.round(diffStrokeWidth*0.5); | 699 | var delta = Math.round(diffStrokeWidth*0.5); |
690 | 700 | ||
701 | //update the canvas center (it's simply the center of the new bbox in this case) | ||
702 | this._canvasCenterLocalCoord = [0.5*(this._BBoxMax[0]+this._BBoxMin[0]),0.5*(this._BBoxMax[1]+this._BBoxMin[1]),0.5*(this._BBoxMax[2]+this._BBoxMin[2])]; | ||
703 | |||
691 | //update the width, height, left and top | 704 | //update the width, height, left and top |
692 | var ElementMediator = require("js/mediators/element-mediator").ElementMediator; | 705 | var ElementMediator = require("js/mediators/element-mediator").ElementMediator; |
693 | var penCanvasCurrentWidth = parseInt(ElementMediator.getProperty(this._canvas, "width")); | 706 | var penCanvasCurrentWidth = parseInt(ElementMediator.getProperty(this._canvas, "width")); |