/* * Секция Скалиране * тук има 2 рекурсивни метода, защото скалирането на групи се свежда до скалиране(което се извършва спрямо * центъра на координатната система и след това транслиране, за да противодейства на възникналите промени. * Методът предефинира предщественика си с цел подържане на скалиране на групи. */ protected override void Action(PointF point, int type, RectangleF initialBounds, Shape item, PointF iniLocation) { //ако елемента не е група ползва метода на предшественика си if (item.isGroup != true) { base.Action(point, type, initialBounds, item, iniLocation); } else { // ако е група първо скалира всички поелемти на групата RecursiveScale(point, type, initialBounds, item, iniLocation); // след това един по един ги транслира RecursiveScaleTranslate(type, initialBounds, item.ReturnBounds(), item); } }
/*функцията се извиква от MatchType и извиква ScaleItem и TranslateScaledItem*/ protected virtual void Action(PointF point, int type, RectangleF initialBounds, Shape item, PointF iniLocation) { this.ScaleItem(point, type, initialBounds, item, iniLocation); this.TranslateScaledItem(type, initialBounds, item.ReturnBounds(), item);//tuka 6te imam qdove }