aboutsummaryrefslogtreecommitdiff
path: root/js/tools
diff options
context:
space:
mode:
Diffstat (limited to 'js/tools')
-rwxr-xr-xjs/tools/PenTool.js19
1 files changed, 11 insertions, 8 deletions
diff --git a/js/tools/PenTool.js b/js/tools/PenTool.js
index 06aac46c..a811f997 100755
--- a/js/tools/PenTool.js
+++ b/js/tools/PenTool.js
@@ -549,8 +549,6 @@ exports.PenTool = Montage.create(ShapeTool, {
549 h = Math.round(h); 549 h = Math.round(h);
550 var left = Math.round(midPt[0] - 0.5 * w); 550 var left = Math.round(midPt[0] - 0.5 * w);
551 var top = Math.round(midPt[1] - 0.5 * h); 551 var top = Math.round(midPt[1] - 0.5 * h);
552 this._selectedSubpath.setCanvasLeft(left);
553 this._selectedSubpath.setCanvasTop(top);
554 552
555 if (!canvas) { 553 if (!canvas) {
556 var newCanvas = null; 554 var newCanvas = null;
@@ -686,7 +684,6 @@ exports.PenTool = Montage.create(ShapeTool, {
686 } 684 }
687 } 685 }
688 this._snapTargetIndex = -1; 686 this._snapTargetIndex = -1;
689 this._selectedSubpath.createSamples();
690 687
691 //if we have some samples to render... 688 //if we have some samples to render...
692 if (this._selectedSubpath.getNumAnchors() > 1) { 689 if (this._selectedSubpath.getNumAnchors() > 1) {
@@ -712,7 +709,7 @@ exports.PenTool = Montage.create(ShapeTool, {
712 }, 709 },
713 710
714 //prepare the selected subpath 711 //prepare the selected subpath
715 // convert the anchor points to stage world space (assume that's already the case if there already is a subpath canvas) 712 // convert the anchor points to stage world space (assume that's already the case if there is no subpath canvas)
716 // compute the center of the future canvas of this subpath in stage world space 713 // compute the center of the future canvas of this subpath in stage world space
717 // convert the anchor points from stage world to local space of the canvas 714 // convert the anchor points from stage world to local space of the canvas
718 PrepareSelectedSubpathForRendering: { 715 PrepareSelectedSubpathForRendering: {
@@ -738,13 +735,19 @@ exports.PenTool = Montage.create(ShapeTool, {
738 currAnchor.setPos(localPos[1][0],localPos[1][1],localPos[1][2]); 735 currAnchor.setPos(localPos[1][0],localPos[1][1],localPos[1][2]);
739 currAnchor.setNextPos(localPos[2][0],localPos[2][1],localPos[2][2]); 736 currAnchor.setNextPos(localPos[2][0],localPos[2][1],localPos[2][2]);
740 } 737 }
738 this._selectedSubpath.makeDirty();
741 } 739 }
742 740
743 //compute the bbox in stage-world space 741 //compute the bbox in stage-world space
744 this._selectedSubpath.createSamples(); //we need to compute samples to get the bounding box center in stage world space 742 this._selectedSubpath.createSamples(true); //we need to compute samples to get the bounding box center in stage world space
745 var bboxMin = this._selectedSubpath.getBBoxMin(); 743 var bboxMin = this._selectedSubpath.getBBoxMin();
746 var bboxMax = this._selectedSubpath.getBBoxMax(); 744 var bboxMax = this._selectedSubpath.getBBoxMax();
747 this._selectedSubpathCanvasCenter = VecUtils.vecInterpolate(3, bboxMin, bboxMax, 0.5); 745 this._selectedSubpathCanvasCenter = VecUtils.vecInterpolate(3, bboxMin, bboxMax, 0.5);
746 if (this._selectedSubpathCanvas) {
747 //if the canvas does not yet exist, the stage world point already have this stage dimension offset below
748 this._selectedSubpathCanvasCenter[0]+= snapManager.getStageWidth()*0.5;
749 this._selectedSubpathCanvasCenter[1]+= snapManager.getStageHeight()*0.5;
750 }
748 751
749 var planeMatInv = glmat4.inverse(this._selectedSubpathPlaneMat, []); 752 var planeMatInv = glmat4.inverse(this._selectedSubpathPlaneMat, []);
750 753
@@ -774,7 +777,7 @@ exports.PenTool = Montage.create(ShapeTool, {
774 currAnchor.setNextPos(localPos[2][0],localPos[2][1],localPos[2][2]); 777 currAnchor.setNextPos(localPos[2][0],localPos[2][1],localPos[2][2]);
775 } 778 }
776 this._selectedSubpath.makeDirty(); 779 this._selectedSubpath.makeDirty();
777 this._selectedSubpath.createSamples(); 780 this._selectedSubpath.createSamples(false);
778 this._selectedSubpath.offsetPerBBoxMin(); 781 this._selectedSubpath.offsetPerBBoxMin();
779 } 782 }
780 }, 783 },
@@ -969,7 +972,7 @@ exports.PenTool = Montage.create(ShapeTool, {
969 if (subpath === null) 972 if (subpath === null)
970 return; 973 return;
971 974
972 subpath.createSamples(); //dirty bit will be checked inside this function 975 subpath.createSamples(false); //dirty bit will be checked inside this function
973 var numAnchors = subpath.getNumAnchors(); 976 var numAnchors = subpath.getNumAnchors();
974 if (numAnchors < 2) 977 if (numAnchors < 2)
975 return; 978 return;
@@ -1278,7 +1281,7 @@ exports.PenTool = Montage.create(ShapeTool, {
1278 if (this._selectedSubpath.getSelectedAnchorIndex()>=0){ 1281 if (this._selectedSubpath.getSelectedAnchorIndex()>=0){
1279 this._hoveredAnchorIndex=-1; 1282 this._hoveredAnchorIndex=-1;
1280 this._selectedSubpath.removeAnchor(this._selectedSubpath.getSelectedAnchorIndex()); 1283 this._selectedSubpath.removeAnchor(this._selectedSubpath.getSelectedAnchorIndex());
1281 this._selectedSubpath.createSamples(); 1284 this._selectedSubpath.createSamples(false);
1282 //clear the canvas 1285 //clear the canvas
1283 this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas(); 1286 this.application.ninja.stage.clearDrawingCanvas();//stageManagerModule.stageManager.clearDrawingCanvas();
1284 this.DrawSubpathAnchors(this._selectedSubpath); 1287 this.DrawSubpathAnchors(this._selectedSubpath);