/// <summary> /// The constructor of GOM_Template /// </summary> public GOM_Template() { id = ""; extScale = false; extRotate = false; extConnect = false; keepAspectRatio = false; rgPoints = new GOM_Points(); rgEditingModes = new GOM_Strings(); rgDrawings = new GOM_Drawings(); rgFillings = new GOM_Fillings(); rgDrawingStyles = new GOM_Drawing_Styles(); rgFillingStyles = new GOM_Filling_Styles(); GOM_Style_Drawing drawing; GOM_Style_Filling filling; drawing = new GOM_Style_Drawing(); drawing.id = "default"; rgDrawingStyles.Add(drawing); filling = new GOM_Style_Filling(); filling.id = "default"; rgFillingStyles.Add(filling); }
public GOM_Link(System.Xml.XmlNode node, GOM_ResourceArrays resources) { m_startStyle = GOMLib.GOM_Terminal_Style.None; m_endStyle = GOMLib.GOM_Terminal_Style.Triangle; m_drawingStyle = new GOMLib.GOM_Style_Drawing(); m_linkingStyle = GOM_Linking_Style.Line; m_keyPts = new GOM_Points(); m_drawingStyle.id = "default"; LoadFromXML(node, resources); }
public GOM_Link(GOM_Interface_Graphic_Object startObj, GOM_Point startPt, GOM_Interface_Graphic_Object endObj, GOM_Point endPt, GOM_Style_Drawing drawingStyle, GOM_Linking_Style linkingStyle, GOM_Terminal_Style startStyle, GOM_Terminal_Style endStyle) { m_startObj = startObj; m_endObj = endObj; m_startPt = startPt; m_endPt = endPt; m_startStyle = startStyle; m_endStyle = endStyle; m_drawingStyle = drawingStyle; m_linkingStyle = linkingStyle; m_keyPts = new GOM_Points(); m_drawingStyle.id = "default"; }
/// <summary> /// Add a drawing or filling style to current template /// </summary> /// <param name="node">The XML node that represents a drawing or filling style</param> private void LoadStyleFromXML(System.Xml.XmlNode node) { if (System.String.Compare(node.Name, GOM_TAGS.DRAWING_STYLE, true) == 0) { GOM_Style_Drawing style = new GOM_Style_Drawing(); style.LoadFromXML( node, null ); rgDrawingStyles.AddAndReplace(style); } if (System.String.Compare(node.Name, GOM_TAGS.FILLING_STYLE, true) == 0) { GOM_Style_Filling style = new GOM_Style_Filling(); style.LoadFromXML( node, null ); rgFillingStyles.AddAndReplace(style); } }
public void LoadFromXML(System.Xml.XmlNode node, GOM_ResourceArrays resources) { GOM_Point startPt = null; GOM_Point endPt = null; GOM_Style_Drawing style; style = resources.DrawingStyles["default"]; for (int i = 0; i < node.Attributes.Count; i++) { if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.STYLE, true) == 0) { style = resources.DrawingStyles[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.START_POINT, true) == 0) { startPt = resources.Points[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.END_POINT, true) == 0) { endPt = resources.Points[node.Attributes[i].Value]; } } if ((startPt == null) || (endPt == null)) { throw new Exception("Missing points in line drawing"); } if (style == null) { throw new Exception("Missing style in line drawing"); } this.m_points.Add(startPt); this.m_points.Add(endPt); m_style = style; }
/// <summary> /// The constructor of GOM_Drawing_Line /// </summary> /// <param name="startPoint">The start-point of the line</param> /// <param name="endPoint">The end-point of the line</param> /// <param name="style">The drawing style of line</param> public GOM_Drawing_Line(GOM_Point startPoint, GOM_Point endPoint, GOM_Style_Drawing style) { m_points = new GOM_Points(); m_points.Add(startPoint); m_points.Add(endPoint); m_style = style; }
public void LoadFromXML(System.Xml.XmlNode node, GOM_ResourceArrays resources) { GOM_Point pt; GOM_Points rgPoints; GOM_Style_Drawing style; style = resources.DrawingStyles["default"]; rgPoints = new GOM_Points(); for (int i = 0; i < node.Attributes.Count; i++) { if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.STYLE, true) == 0) { style = resources.DrawingStyles[node.Attributes[i].Value]; } } for (int i = 0; i < node.ChildNodes.Count; i++) { if (System.String.Compare(node.ChildNodes[i].Name, GOM_TAGS.VERTEX, true) == 0) { for (int j = 0; j < node.ChildNodes[i].Attributes.Count; j++) { if (System.String.Compare(node.ChildNodes[i].Attributes[j].Name, GOM_TAGS.POINT, true) == 0) { pt = resources.Points[node.ChildNodes[i].Attributes[j].Value]; if (pt == null) { throw new Exception("Missing points in bezier drawing"); } rgPoints.Add(pt); } } } } if (rgPoints.Count < 4) { throw new Exception("Missing points in bezier drawing"); } if (((rgPoints.Count - 4) % 3) != 0) { throw new Exception("Incorrect number of points in bezier drawing"); } if (style == null) { throw new Exception("Missing style in bezier drawing"); } this.m_points = rgPoints; this.m_style = style; }
/// <summary> /// The constructor of GOM_Drawing_Bezier /// </summary> /// <param name="points">The points used to define the bezier curve</param> /// <param name="style">The drawing style of the bezier curve</param> public GOM_Drawing_Bezier(GOM_Points points, GOM_Style_Drawing style) { m_style = style; m_points = points; }
public void LoadFromXML(System.Xml.XmlNode node, GOM_ResourceArrays resources) { GOM_Point startPt = null; GOM_Point endPt = null; GOM_Point leftTop = null; GOM_Point rightDown = null; GOM_Style_Drawing style; m_rotateAngle = 0F; style = resources.DrawingStyles["default"]; for (int i = 0; i < node.Attributes.Count; i++) { if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.STYLE, true) == 0) { style = resources.DrawingStyles[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.START_POINT, true) == 0) { startPt = resources.Points[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.END_POINT, true) == 0) { endPt = resources.Points[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.LEFT_TOP, true) == 0) { leftTop = resources.Points[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.RIGHT_DOWN, true) == 0) { rightDown = resources.Points[node.Attributes[i].Value]; } if (System.String.Compare(node.Attributes[i].Name, GOM_TAGS.ROTATION, true) == 0) { m_rotateAngle = float.Parse(node.Attributes[i].Value); } } if ((startPt == null) || (endPt == null) || (leftTop == null) || (rightDown == null)) { throw new Exception("Missing points in arc drawing"); } if (style == null) { throw new Exception("Missing style in arc drawing"); } m_points.Add(leftTop); m_points.Add(rightDown); m_points.Add(startPt); m_points.Add(endPt); m_style = style; }
/// <summary> /// The constructor of GOM_Drawing_Arc /// </summary> /// <param name="leftTop">The left top corner of the bounding box of the ellipse which the arc belongs to</param> /// <param name="rightDown">The right down corner of the bounding box of the ellipse which the arc belongs to</param> /// <param name="startPoint">The start-point of the arc</param> /// <param name="endPoint">The end-point of the arc</param> /// <param name="style">The drawing style of the arc</param> public GOM_Drawing_Arc(GOM_Point leftTop, GOM_Point rightDown, GOM_Point startPoint, GOM_Point endPoint, GOM_Style_Drawing style, float rotateAngle) { m_points = new GOM_Points(); m_points.Add(leftTop); m_points.Add(rightDown); m_points.Add(startPoint); m_points.Add(endPoint); m_style = style; m_rotateAngle = rotateAngle; }
public GOM_Object_Sketch() { m_id = Guid.NewGuid().ToString("D"); m_boundingBox = new System.Drawing.RectangleF(0, 0, 0, 0); rgSketchSet = new System.Collections.ArrayList(); rgStrokeToSketch= new System.Collections.ArrayList(); rgDrawings = new GOM_Drawings(); strokeStyle = new GOM_Style_Drawing(); strokeStyle.id = "default"; strokeStyle.drawingStyle = new System.Drawing.Pen(System.Drawing.Color.Green, 1); }
/// <summary> /// Initialize the graphic object according to a given template /// </summary> /// <param name="template"></param> public void InitializeFromTemplate(GOM_Template template) { //Initialize property this.m_template = template; this.extConnect = template.extConnect; this.extRotate = template.extRotate; this.extScale = template.extScale; this.keepAspectRatio = template.keepAspectRatio; //Clear up existing data this.rgPoints.Clear(); this.rgFillings.Clear(); this.rgDrawings.Clear(); this.rgEditingModes.Clear(); this.rgDrawingStyles.Clear(); this.rgFillingStyles.Clear(); //Initialize editing mode for (int i = 0; i < template.rgEditingModes.Count; i++) { this.rgEditingModes.Add(template.rgEditingModes[i]); } //Initialize drawing styles for (int i = 0; i < template.rgDrawingStyles.Count; i++) { GOM_Style_Drawing style; style = new GOM_Style_Drawing(); style.id = template.rgDrawingStyles[i].id; style.drawingStyle = (System.Drawing.Pen)template.rgDrawingStyles[i].drawingStyle.Clone(); this.rgDrawingStyles.Add(style); } //Initialize filling styles for (int i = 0; i < template.rgFillingStyles.Count; i++) { GOM_Style_Filling style; style = new GOM_Style_Filling(); style.id = template.rgFillingStyles[i].id; style.fillingStyle = (System.Drawing.Brush)template.rgFillingStyles[i].fillingStyle.Clone(); this.rgFillingStyles.Add(style); } //Initialize basic properties of points for (int i = 0; i < template.rgPoints.Count; i++) { GOM_Point pt; pt = new GOM_Point(); pt.id = template.rgPoints[i].id; pt.x = template.rgPoints[i].x; pt.y = template.rgPoints[i].y; pt.Connectable = template.rgPoints[i].Connectable; pt.Controllable = template.rgPoints[i].Controllable; this.rgPoints.Add(pt); } //Initialize drawing operations for (int i = 0; i < template.rgDrawings.Count; i++) { rgDrawings.Add(CloneDrawing(template.rgDrawings[i])); } //Initialize filling operations for (int i = 0; i < template.rgFillings.Count; i++) { rgFillings.Add(CloneFilling(template.rgFillings[i])); } //Initialize constraints of points for (int i = 0; i < template.rgPoints.Count; i++) { for (int j = 0; j < template.rgPoints[i].Constraints.Count; j++) { GOM_Constraint_Set constraintSet; constraintSet = new GOM_Constraint_Set(); for (int k = 0; k < template.rgPoints[i].Constraints[j].Count; k++) { constraintSet.Add(CloneConstraint(template.rgPoints[i].Constraints[j][k])); } rgPoints[i].Constraints.Add(constraintSet); } } CalculateBoundingBox(); //from template #region new_modified if (template.var_list != null) { var_list = template.var_list.clone(); } if (template.res_list != null) { res_list = template.res_list.clone(); } #endregion }