/// <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 void LoadFromXML(System.Xml.XmlNode node, GOM_ResourceArrays resources) { // Basic properties for( int i=0; i<node.Attributes.Count; i++ ) { if ( string.Compare(node.Attributes[i].Name, GOM_TAGS.ID, true) == 0 ) { this.id = node.Attributes[i].Value; } if ( string.Compare(node.Attributes[i].Name, GOM_TAGS.TYPE, true) == 0 ) { if ( string.Compare(node.Attributes[i].Value, "sketch", true) != 0 ) { throw new Exception("Invalid input. Not a sketch object node!"); } } } // 1st pass // sketchStrokes // points] GOM_Points points = null; for( int i=0; i<node.ChildNodes.Count; i++ ) { if ( string.Compare(node.ChildNodes[i].Name, GOM_TAGS.SKETCH_STROKES, true) == 0 ) { LoadSketchStrokesFromXML(node.ChildNodes[i]); } if ( string.Compare(node.ChildNodes[i].Name, GOM_TAGS.POINTS, true) == 0 ) { points = LoadPointsFromXML(node.ChildNodes[i]); } } // 2nd pass // drawings rgDrawings.Clear(); if ( points != null ) { GOM_Drawing_Styles styles = new GOM_Drawing_Styles(); styles.Add(strokeStyle); GOM_ResourceArrays res = new GOM_ResourceArrays(points,styles,null); for( int i=0; i<node.ChildNodes.Count; i++ ) { if ( string.Compare(node.ChildNodes[i].Name, GOM_TAGS.DRAWINGS, true) == 0 ) { for ( int j=0; j<node.ChildNodes[i].ChildNodes.Count; j++ ) { GOM_Utility.LoadDrawingFromXML(node.ChildNodes[i].ChildNodes[j], rgDrawings, res); } } } } CalculateBoundingBox(); }