public void AddRecognitionResult(TemplatePack template)
        {
            int insertIndex = -1;
            for(int i=0; i<lvRecognition.Items.Count; i++)
            {
                if ( ((TemplatePack)lvRecognition.Items[i].Tag).similarity < template.similarity )
                {
                    insertIndex = i;
                    break;
                }
            }
            if ( insertIndex < 0 && lvRecognition.Items.Count < 50 )
            {
                insertIndex = lvRecognition.Items.Count;
            }

            if ( insertIndex >= 0 )
            {
                ListViewItem	item;

                imgsRecognition.Images.Add(template.bitmap);

                item = new ListViewItem();
                item.Text = template.template.id;
                item.Tag = template;
                item.ImageIndex = imgsRecognition.Images.Count - 1;

                lvRecognition.Items.Insert(insertIndex, item);

                if ( lvRecognition.Items.Count > 50 )
                {
                    lvRecognition.Items.RemoveAt(lvRecognition.Items.Count - 1);
                }
            }
        }
        public void ReplaceCurrentSketching(TemplatePack template)
        {
            GOMLib.GOM_Object_Primitive	primitive;

            if (status.Action == UserActions.Sketching)
            {
                m_sketch = null;

                primitive = new GOMLib.GOM_Object_Primitive();
                primitive.InitializeFromTemplate(template.template);

                primitive.xOffset	= template.rect.Left;
                primitive.yOffset	= template.rect.Top;

                GOMLib.GOM_Default_Values.ScaleObject(primitive, 25, 25);
            //				GOMLib.GOM_Default_Values.ScaleObject(primitive, template.rect.Width, template.rect.Height);
            /*
                double rotation = (template.rotation / System.Math.PI) * 180;

                if (rotation < 0)
                {
                    rotation += 360;
                }
                rotation = (float)System.Math.Round(rotation / 45) * 45;

                primitive.rotation	= (float)rotation;
            */
                m_rgObjects.Add(primitive);
                //save to somewhere
                //end

                m_sketch = new GOMLib.GOM_Object_Sketch();
                tagFishEye.ClearFishEyeItems();

                DrawObjectsOnCanvas();
            }
        }
 public void AddRecognitionResult(TemplatePack template)
 {
     tagFishEye.AddFishEyeItem(template.template.id, template.bitmap, template);
     DrawObjectsOnCanvas();
 }
        private void m_recognition_RecognitionResultSelected(TemplatePack template)
        {
            DrawingForm	frmDrawing;

            if (this.ActiveMdiChild != null)
            {
                frmDrawing = (DrawingForm)this.ActiveMdiChild;
                frmDrawing.ReplaceCurrentSketching(template);
            }
        }