+ #region Group\r
+\r
+ partial class Group\r
+ {\r
+ internal void initialize__()\r
+ {\r
+ Canvas.default_api_canvas.Dispatcher.BeginInvoke(new Canvas.SimpleProcedure(create__));\r
+ }\r
+ internal void create__()\r
+ {\r
+ cnvs = new System.Windows.Controls.Canvas();\r
+ trans = new System.Windows.Media.TransformGroup();\r
+ transF = new System.Windows.Media.TransformCollection();\r
+ rotateF = new System.Windows.Media.RotateTransform();\r
+ scaleF = new System.Windows.Media.ScaleTransform();\r
+ translateF = new System.Windows.Media.TranslateTransform();\r
+ transF.Add(rotateF);\r
+ transF.Add(scaleF);\r
+ transF.Add(translateF);\r
+ trans.Children = transF;\r
+ cnvs.RenderTransform = trans;\r
+ AsyncBool = true;\r
+ }\r
+ public Group clone()\r
+ {\r
+ return (Group)MemberwiseClone();\r
+ }\r
+\r
+ delegate void AppendFunc1(Internal.PrimitiveFigure func);\r
+ void append__(Internal.PrimitiveFigure fig)\r
+ {\r
+ fig.centering(0, 0);\r
+ UIElement e = fig.toNative();\r
+ cnvs.Children.Add(e);\r
+ System.Windows.Controls.Canvas.SetLeft(e, fig.datum.x);\r
+ System.Windows.Controls.Canvas.SetTop(e, fig.datum.y);\r
+ }\r
+ delegate void SimpleProcedure();\r
+ void getRotation__() { rotation_ = rotateF.Angle; }\r
+ void setRotation__() { rotateF.Angle = rotation_; }\r
+ //void getTranslation__() { rotation_ = rotateF.Angle; }\r
+ void setTranslation__() { translateF.X = datum.x; translateF.Y = datum.y; }\r
+ void setScaling__() { scaleF.ScaleX = scaling_.x; scaleF.ScaleY = scaling_.y; }\r
+\r
+ public static implicit operator System.Windows.Controls.Canvas(Group d)\r
+ {\r
+ var tmp = d.cnvs;//new System.Windows.Controls.Canvas();\r
+ System.Windows.Controls.Canvas.SetLeft(d.cnvs, d.datum.x);\r
+ System.Windows.Controls.Canvas.SetTop(d.cnvs, d.datum.y);\r
+ return tmp;\r
+ }\r
+ public UIElement toNative() { return this; }\r
+\r
+ public void copyToStack(Templates.StackableDrawable d)\r
+ {\r
+ var tmp = d.groupStack[d.groupStackN];\r
+ tmp.datum = datum;\r
+ tmp.cnvs = cnvs;\r
+ d.stack[d.stackN] = tmp;\r
+ d.groupStackN++;\r
+ d.stackN++;\r
+ }\r
+ public UIElement poolNative(Canvas d)\r
+ {\r
+ //d.groupPool[d.groupPoolN] = cnvs;\r
+ //var tmp = d.groupPool[d.groupPoolN];\r
+ var tmp = cnvs;\r
+ System.Windows.Controls.Canvas.SetLeft(tmp, datum.x);\r
+ System.Windows.Controls.Canvas.SetTop(tmp, datum.y);\r
+ tmp.Visibility = Visibility.Visible;\r
+ //d.groupPoolN++;\r
+ return tmp;\r
+ }\r
+ public void modifyNative(System.Windows.Controls.Canvas tmp, Canvas d)\r
+ {\r
+ d.groupPool[d.groupPoolN] = cnvs;\r
+ System.Windows.Controls.Canvas.SetLeft(cnvs, datum.x);\r
+ System.Windows.Controls.Canvas.SetTop(cnvs, datum.y);\r
+ tmp.Visibility = Visibility.Visible;\r
+ }\r
+\r
+ }\r
+ #endregion\r
+ \r
+ #endregion\r
+\r