/// <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);
        }
Ejemplo n.º 2
0
        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();
        }