Commit 0d59af0d authored by SergeyLuzyanin's avatar SergeyLuzyanin

fix bug 36114

parent e8d95014
......@@ -69,12 +69,7 @@ CChartSpace.prototype.getInvertTransform = CShape.prototype.getInvertTransform;
CChartSpace.prototype.hit = CShape.prototype.hit;
CChartSpace.prototype.hitInInnerArea = CShape.prototype.hitInInnerArea;
CChartSpace.prototype.hitInPath = CShape.prototype.hitInPath;
CChartSpace.prototype.getNumByCardDirection = CShape.prototype.getNumByCardDirection;
CChartSpace.prototype.getCardDirectionByNum = CShape.prototype.getCardDirectionByNum;
CChartSpace.prototype.getResizeCoefficients = CShape.prototype.getResizeCoefficients;
CChartSpace.prototype.check_bounds = CShape.prototype.check_bounds;
CChartSpace.prototype.getFullFlipH = CShape.prototype.getFullFlipH;
CChartSpace.prototype.getFullFlipV = CShape.prototype.getFullFlipV;
CChartSpace.prototype.setWorksheet = CShape.prototype.setWorksheet;
CChartSpace.prototype.handleUpdateLn = function()
{
......@@ -227,7 +222,6 @@ CChartSpace.prototype.canRotate = function()
CChartSpace.prototype.createResizeTrack = CShape.prototype.createResizeTrack;
CChartSpace.prototype.createMoveTrack = CShape.prototype.createMoveTrack;
CChartSpace.prototype.getAspect = CShape.prototype.getAspect;
CChartSpace.prototype.getRectBounds = CShape.prototype.getRectBounds;
CChartSpace.prototype.recalculateBounds = function()
......
......@@ -199,8 +199,5 @@ CImageShape.prototype.hitInInnerArea = CShape.prototype.hitInInnerArea;
CImageShape.prototype.hitInPath = CShape.prototype.hitInPath;
CImageShape.prototype.hitToHandles = CShape.prototype.hitToHandles;
CImageShape.prototype.hitInBoundingRect = CShape.prototype.hitInBoundingRect;
CImageShape.prototype.getNumByCardDirection = CShape.prototype.getNumByCardDirection;
CImageShape.prototype.getCardDirectionByNum = CShape.prototype.getCardDirectionByNum;
CImageShape.prototype.getResizeCoefficients = CShape.prototype.getResizeCoefficients;
CImageShape.prototype.check_bounds = CShape.prototype.check_bounds;
})(window);
......@@ -966,6 +966,11 @@
return !isRealObject(this.group) ? this.rot : this.rot + this.group.getFullRotate();
};
CGraphicObjectBase.prototype.getAspect = function (num) {
var _tmp_x = this.extX !== 0 ? this.extX : 0.1;
var _tmp_y = this.extY !== 0 ? this.extY : 0.1;
return num === 0 || num === 4 ? _tmp_x / _tmp_y : _tmp_y / _tmp_x;
};
CGraphicObjectBase.prototype.getFullFlipH = function () {
if (!isRealObject(this.group))
......@@ -1028,6 +1033,99 @@
}
return null;
};
CGraphicObjectBase.prototype.getCardDirectionByNum = function (num) {
var num_north = this.getNumByCardDirection(AscFormat.CARD_DIRECTION_N);
var full_flip_h = this.getFullFlipH();
var full_flip_v = this.getFullFlipV();
var same_flip = !full_flip_h && !full_flip_v || full_flip_h && full_flip_v;
if (same_flip)
return ((num - num_north) + AscFormat.CARD_DIRECTION_N + 8) % 8;
return (AscFormat.CARD_DIRECTION_N - (num - num_north) + 8) % 8;
};
CGraphicObjectBase.prototype.getTransformMatrix = function(){
return this.transform;
};
CGraphicObjectBase.prototype.getNumByCardDirection = function (cardDirection) {
var hc = this.extX * 0.5;
var vc = this.extY * 0.5;
var transform = this.getTransformMatrix();
var y1, y3, y5, y7;
y1 = transform.TransformPointY(hc, 0);
y3 = transform.TransformPointY(this.extX, vc);
y5 = transform.TransformPointY(hc, this.extY);
y7 = transform.TransformPointY(0, vc);
var north_number;
var full_flip_h = this.getFullFlipH();
var full_flip_v = this.getFullFlipV();
switch (Math.min(y1, y3, y5, y7)) {
case y1:
{
north_number = 1;
break;
}
case y3:
{
north_number = 3;
break;
}
case y5:
{
north_number = 5;
break;
}
default:
{
north_number = 7;
break;
}
}
var same_flip = !full_flip_h && !full_flip_v || full_flip_h && full_flip_v;
if (same_flip)
return (north_number + cardDirection) % 8;
return (north_number - cardDirection + 8) % 8;
};
CGraphicObjectBase.prototype.getInvertTransform = function(){
return this.invertTransform;
};
CGraphicObjectBase.prototype.getResizeCoefficients = function (numHandle, x, y) {
var cx, cy;
cx = this.extX > 0 ? this.extX : 0.01;
cy = this.extY > 0 ? this.extY : 0.01;
var invert_transform = this.getInvertTransform();
var t_x = invert_transform.TransformPointX(x, y);
var t_y = invert_transform.TransformPointY(x, y);
switch (numHandle) {
case 0:
return { kd1: (cx - t_x) / cx, kd2: (cy - t_y) / cy };
case 1:
return { kd1: (cy - t_y) / cy, kd2: 0 };
case 2:
return { kd1: (cy - t_y) / cy, kd2: t_x / cx };
case 3:
return { kd1: t_x / cx, kd2: 0 };
case 4:
return { kd1: t_x / cx, kd2: t_y / cy };
case 5:
return { kd1: t_y / cy, kd2: 0 };
case 6:
return { kd1: t_y / cy, kd2: (cx - t_x) / cx };
case 7:
return { kd1: (cx - t_x) / cx, kd2: 0 };
}
return { kd1: 1, kd2: 1 };
};
CGraphicObjectBase.prototype.GetAllContentControls = function(arrContentControls)
{
};
......
......@@ -1278,38 +1278,6 @@ function CGroupShape()
}
};
CGroupShape.prototype.getResizeCoefficients = function(numHandle, x, y)
{
var cx, cy;
cx= this.extX > 0 ? this.extX : 0.01;
cy= this.extY > 0 ? this.extY : 0.01;
var invert_transform = this.getInvertTransform();
var t_x = invert_transform.TransformPointX(x, y);
var t_y = invert_transform.TransformPointY(x, y);
switch(numHandle)
{
case 0:
return {kd1: (cx-t_x)/cx, kd2: (cy-t_y)/cy};
case 1:
return {kd1: (cy-t_y)/cy, kd2: 0};
case 2:
return {kd1: (cy-t_y)/cy, kd2: t_x/cx};
case 3:
return {kd1: t_x/cx, kd2: 0};
case 4:
return {kd1: t_x/cx, kd2: t_y/cy};
case 5:
return {kd1: t_y/cy, kd2: 0};
case 6:
return {kd1: t_y/cy, kd2:(cx-t_x)/cx};
case 7:
return {kd1:(cx-t_x)/cx, kd2: 0};
}
return {kd1: 1, kd2: 1};
};
CGroupShape.prototype.changePresetGeom = function(preset)
{
for(var _shape_index = 0; _shape_index < this.spTree.length; ++_shape_index)
......@@ -1514,18 +1482,6 @@ function CGroupShape()
return parents;
};
CGroupShape.prototype.getCardDirectionByNum = function(num)
{
var num_north = this.getNumByCardDirection(AscFormat.CARD_DIRECTION_N);
var full_flip_h = this.getFullFlipH();
var full_flip_v = this.getFullFlipV();
var same_flip = !full_flip_h && !full_flip_v || full_flip_h && full_flip_v;
if(same_flip)
return ((num - num_north) + AscFormat.CARD_DIRECTION_N + 8)%8;
return (AscFormat.CARD_DIRECTION_N - (num - num_north)+ 8)%8;
};
CGroupShape.prototype.applyTextArtForm = function(sPreset)
{
for(var i = 0; i < this.spTree.length; ++i)
......@@ -1537,77 +1493,6 @@ function CGroupShape()
}
};
CGroupShape.prototype.getNumByCardDirection = function(cardDirection)
{
var hc = this.extX*0.5;
var vc = this.extY*0.5;
var transform = this.getTransformMatrix();
var y1, y3, y5, y7;
y1 = transform.TransformPointY(hc, 0);
y3 = transform.TransformPointY(this.extX, vc);
y5 = transform.TransformPointY(hc, this.extY);
y7 = transform.TransformPointY(0, vc);
var north_number;
var full_flip_h = this.getFullFlipH();
var full_flip_v = this.getFullFlipV();
switch(Math.min(y1, y3, y5, y7))
{
case y1:
{
north_number = !full_flip_v ? 1 : 5;
break;
}
case y3:
{
north_number = !full_flip_h ? 3 : 7;
break;
}
case y5:
{
north_number = !full_flip_v ? 5 : 1;
break;
}
default:
{
north_number = !full_flip_h ? 7 : 3;
break;
}
}
var same_flip = !full_flip_h && !full_flip_v || full_flip_h && full_flip_v;
if(same_flip)
return (north_number + cardDirection)%8;
return (north_number - cardDirection + 8)%8;
};
CGroupShape.prototype.getAspect = function(num)
{
var _tmp_x = this.extX != 0 ? this.extX : 0.1;
var _tmp_y = this.extY != 0 ? this.extY : 0.1;
return num === 0 || num === 4 ? _tmp_x/_tmp_y : _tmp_y/_tmp_x;
};
CGroupShape.prototype.getFullFlipH = function()
{
if(!isRealObject(this.group))
return this.flipH;
else
return this.group.getFullFlipH() ? !this.flipH : this.flipH;
};
CGroupShape.prototype.getFullFlipV = function()
{
if(!isRealObject(this.group))
return this.flipV;
else
return this.group.getFullFlipV() ? !this.flipV : this.flipV;
};
CGroupShape.prototype.getFullRotate = function()
{
return !isRealObject(this.group) ? this.rot : this.rot + this.group.getFullRotate();
};
CGroupShape.prototype.createRotateTrack = function()
{
......
......@@ -225,31 +225,6 @@ CImageShape.prototype.getRotateAngle = CShape.prototype.getRotateAngle;
CImageShape.prototype.changeSize = CShape.prototype.changeSize;
CImageShape.prototype.getFullFlipH = function()
{
if(!isRealObject(this.group))
return this.flipH;
return this.group.getFullFlipH() ? !this.flipH : this.flipH;
};
CImageShape.prototype.getFullFlipV = function()
{
if(!isRealObject(this.group))
return this.flipV;
return this.group.getFullFlipV() ? !this.flipV : this.flipV;
};
CImageShape.prototype.getAspect = function(num)
{
var _tmp_x = this.extX != 0 ? this.extX : 0.1;
var _tmp_y = this.extY != 0 ? this.extY : 0.1;
return num === 0 || num === 4 ? _tmp_x/_tmp_y : _tmp_y/_tmp_x;
};
CImageShape.prototype.getFullRotate = function()
{
return !isRealObject(this.group) ? this.rot : this.rot + this.group.getFullRotate();
};
CImageShape.prototype.getRectBounds = function()
{
......
......@@ -3605,58 +3605,7 @@ CShape.prototype.drawAdjustments = function (drawingDocument) {
}
};
CShape.prototype.getCardDirectionByNum = function (num) {
var num_north = this.getNumByCardDirection(AscFormat.CARD_DIRECTION_N);
var full_flip_h = this.getFullFlipH();
var full_flip_v = this.getFullFlipV();
var same_flip = !full_flip_h && !full_flip_v || full_flip_h && full_flip_v;
if (same_flip)
return ((num - num_north) + AscFormat.CARD_DIRECTION_N + 8) % 8;
return (AscFormat.CARD_DIRECTION_N - (num - num_north) + 8) % 8;
};
CShape.prototype.getNumByCardDirection = function (cardDirection) {
var hc = this.extX * 0.5;
var vc = this.extY * 0.5;
var transform = this.getTransformMatrix();
var y1, y3, y5, y7;
y1 = transform.TransformPointY(hc, 0);
y3 = transform.TransformPointY(this.extX, vc);
y5 = transform.TransformPointY(hc, this.extY);
y7 = transform.TransformPointY(0, vc);
var north_number;
var full_flip_h = this.getFullFlipH();
var full_flip_v = this.getFullFlipV();
switch (Math.min(y1, y3, y5, y7)) {
case y1:
{
north_number = !full_flip_v ? 1 : 5;
break;
}
case y3:
{
north_number = !full_flip_h ? 3 : 7;
break;
}
case y5:
{
north_number = !full_flip_v ? 5 : 1;
break;
}
default:
{
north_number = !full_flip_h ? 7 : 3;
break;
}
}
var same_flip = !full_flip_h && !full_flip_v || full_flip_h && full_flip_v;
if (same_flip)
return (north_number + cardDirection) % 8;
return (north_number - cardDirection + 8) % 8;
};
CShape.prototype.getHandlePosByIndex = function(numHandle){
......@@ -3682,35 +3631,7 @@ CShape.prototype.getHandlePosByIndex = function(numHandle){
}
};
CShape.prototype.getResizeCoefficients = function (numHandle, x, y) {
var cx, cy;
cx = this.extX > 0 ? this.extX : 0.01;
cy = this.extY > 0 ? this.extY : 0.01;
var invert_transform = this.getInvertTransform();
var t_x = invert_transform.TransformPointX(x, y);
var t_y = invert_transform.TransformPointY(x, y);
switch (numHandle) {
case 0:
return { kd1: (cx - t_x) / cx, kd2: (cy - t_y) / cy };
case 1:
return { kd1: (cy - t_y) / cy, kd2: 0 };
case 2:
return { kd1: (cy - t_y) / cy, kd2: t_x / cx };
case 3:
return { kd1: t_x / cx, kd2: 0 };
case 4:
return { kd1: t_x / cx, kd2: t_y / cy };
case 5:
return { kd1: t_y / cy, kd2: 0 };
case 6:
return { kd1: t_y / cy, kd2: (cx - t_x) / cx };
case 7:
return { kd1: (cx - t_x) / cx, kd2: 0 };
}
return { kd1: 1, kd2: 1 };
};
CShape.prototype.select = function (drawingObjectsController, pageIndex)
{
......@@ -4405,12 +4326,6 @@ CShape.prototype.getRotateAngle = function (x, y) {
};
CShape.prototype.getAspect = function (num) {
var _tmp_x = this.extX != 0 ? this.extX : 0.1;
var _tmp_y = this.extY != 0 ? this.extY : 0.1;
return num === 0 || num === 4 ? _tmp_x / _tmp_y : _tmp_y / _tmp_x;
};
CShape.prototype.getRectBounds = function () {
var transform = this.getTransformMatrix();
......
......@@ -64,7 +64,7 @@ StartAddNewShape.prototype =
onMouseDown: function(e, x, y)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
this.startX = x;
this.startY = y;
this.drawingObjects.arrPreTrackObjects.length = 0;
......@@ -1551,7 +1551,7 @@ SplineBezierState.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
this.drawingObjects.startTrackPos = {x: x, y: y, pageIndex: pageIndex};
this.drawingObjects.clearTrackObjects();
this.drawingObjects.addTrackObject(new AscFormat.Spline(this.drawingObjects, this.drawingObjects.getTheme(), null, null, null, pageIndex));
......@@ -1596,7 +1596,7 @@ SplineBezierState33.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
},
onMouseMove: function(e, x, y, pageIndex)
......@@ -1640,7 +1640,7 @@ SplineBezierState2.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
if(e.ClickCount >= 2)
{
this.bStart = true;
......@@ -1713,7 +1713,7 @@ SplineBezierState3.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
if(e.ClickCount >= 2)
{
this.bStart = true;
......@@ -1811,7 +1811,7 @@ SplineBezierState4.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
if(e.ClickCount >= 2)
{
this.bStart = true;
......@@ -1933,7 +1933,7 @@ SplineBezierState5.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
if(e.ClickCount >= 2)
{
this.bStart = true;
......@@ -2035,7 +2035,7 @@ PolyLineAddState.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
this.drawingObjects.startTrackPos = {x: x, y: y, pageIndex:pageIndex};
this.drawingObjects.clearTrackObjects();
this.drawingObjects.addTrackObject(new AscFormat.PolyLine(this.drawingObjects, this.drawingObjects.getTheme(), null, null, null, pageIndex));
......@@ -2079,7 +2079,7 @@ PolyLineAddState2.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
},
onMouseMove: function(e, x, y, pageIndex)
......@@ -2148,7 +2148,7 @@ AddPolyLine2State.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
this.drawingObjects.startTrackPos = {x: x, y: y, pageIndex : pageIndex};
this.drawingObjects.checkChartTextSelection();
this.drawingObjects.resetSelection();
......@@ -2181,7 +2181,7 @@ AddPolyLine2State2.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
if(e.ClickCount > 1)
{
if(Asc["editor"])
......@@ -2235,7 +2235,7 @@ AddPolyLine2State3.prototype =
onMouseDown: function(e, x, y, pageIndex)
{
if(this.drawingObjects.handleEventMode === HANDLE_EVENT_MODE_CURSOR)
return {objectId: "1", bMarker: true};
return {objectId: "1", bMarker: true, cursorType: "crosshair"};
var tr_x, tr_y;
if(pageIndex === this.drawingObjects.startTrackPos.pageIndex)
{
......
......@@ -176,9 +176,6 @@ CChartSpace.prototype.getInvertTransform = CShape.prototype.getInvertTransform;
CChartSpace.prototype.hit = CShape.prototype.hit;
CChartSpace.prototype.hitInInnerArea = CShape.prototype.hitInInnerArea;
CChartSpace.prototype.hitInPath = CShape.prototype.hitInPath;
CChartSpace.prototype.getNumByCardDirection = CShape.prototype.getNumByCardDirection;
CChartSpace.prototype.getCardDirectionByNum = CShape.prototype.getCardDirectionByNum;
CChartSpace.prototype.getResizeCoefficients = CShape.prototype.getResizeCoefficients;
CChartSpace.prototype.check_bounds = CShape.prototype.check_bounds;
CChartSpace.prototype.setWorksheet = CShape.prototype.setWorksheet;
CChartSpace.prototype.handleUpdateLn = function()
......@@ -325,7 +322,6 @@ CChartSpace.prototype.canRotate = function()
CChartSpace.prototype.createResizeTrack = CShape.prototype.createResizeTrack;
CChartSpace.prototype.createMoveTrack = CShape.prototype.createMoveTrack;
CChartSpace.prototype.getAspect = CShape.prototype.getAspect;
CChartSpace.prototype.getRectBounds = CShape.prototype.getRectBounds;
CChartSpace.prototype.recalculateBounds = function()
......
......@@ -199,7 +199,4 @@ CImageShape.prototype.hitInInnerArea = CShape.prototype.hitInInnerArea;
CImageShape.prototype.hitInPath = CShape.prototype.hitInPath;
CImageShape.prototype.hitToHandles = CShape.prototype.hitToHandles;
CImageShape.prototype.hitInBoundingRect = CShape.prototype.hitInBoundingRect;
CImageShape.prototype.getNumByCardDirection = CShape.prototype.getNumByCardDirection;
CImageShape.prototype.getCardDirectionByNum = CShape.prototype.getCardDirectionByNum;
CImageShape.prototype.getResizeCoefficients = CShape.prototype.getResizeCoefficients;
CImageShape.prototype.check_bounds = CShape.prototype.check_bounds;
......@@ -68,12 +68,7 @@ CChartSpace.prototype.getInvertTransform = CShape.prototype.getInvertTransform;
CChartSpace.prototype.hit = CShape.prototype.hit;
CChartSpace.prototype.hitInInnerArea = CShape.prototype.hitInInnerArea;
CChartSpace.prototype.hitInPath = CShape.prototype.hitInPath;
CChartSpace.prototype.getNumByCardDirection = CShape.prototype.getNumByCardDirection;
CChartSpace.prototype.getCardDirectionByNum = CShape.prototype.getCardDirectionByNum;
CChartSpace.prototype.getResizeCoefficients = CShape.prototype.getResizeCoefficients;
CChartSpace.prototype.check_bounds = CShape.prototype.check_bounds;
CChartSpace.prototype.getFullFlipH = CShape.prototype.getFullFlipH;
CChartSpace.prototype.getFullFlipV = CShape.prototype.getFullFlipV;
CChartSpace.prototype.Get_Theme = CShape.prototype.Get_Theme;
CChartSpace.prototype.Get_ColorMap = CShape.prototype.Get_ColorMap;
CChartSpace.prototype.Get_AbsolutePage = CShape.prototype.Get_AbsolutePage;
......@@ -265,7 +260,6 @@ CChartSpace.prototype.canRotate = function()
CChartSpace.prototype.createResizeTrack = CShape.prototype.createResizeTrack;
CChartSpace.prototype.createMoveTrack = CShape.prototype.createMoveTrack;
CChartSpace.prototype.getAspect = CShape.prototype.getAspect;
CChartSpace.prototype.getRectBounds = CShape.prototype.getRectBounds;
CChartSpace.prototype.recalculate = function()
......
......@@ -210,9 +210,6 @@ CImageShape.prototype.hitInInnerArea = CShape.prototype.hitInInnerArea;
CImageShape.prototype.hitInPath = CShape.prototype.hitInPath;
CImageShape.prototype.hitToHandles = CShape.prototype.hitToHandles;
CImageShape.prototype.hitInBoundingRect = CShape.prototype.hitInBoundingRect;
CImageShape.prototype.getNumByCardDirection = CShape.prototype.getNumByCardDirection;
CImageShape.prototype.getCardDirectionByNum = CShape.prototype.getCardDirectionByNum;
CImageShape.prototype.getResizeCoefficients = CShape.prototype.getResizeCoefficients;
CImageShape.prototype.check_bounds = CShape.prototype.check_bounds;
CImageShape.prototype.updatePosition = CShape.prototype.updatePosition;
CImageShape.prototype.updateTransformMatrix = CShape.prototype.updateTransformMatrix;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment