degate  0.1.2
WireMatching.h
Go to the documentation of this file.
00001 /* -*-c++-*-
00002 
00003   This file is part of the IC reverse engineering tool degate.
00004 
00005   Copyright 2008, 2009, 2010 by Martin Schobert
00006 
00007   Degate is free software: you can redistribute it and/or modify
00008   it under the terms of the GNU General Public License as published by
00009   the Free Software Foundation, either version 3 of the License, or
00010   any later version.
00011 
00012   Degate is distributed in the hope that it will be useful,
00013   but WITHOUT ANY WARRANTY; without even the implied warranty of
00014   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00015   GNU General Public License for more details.
00016 
00017   You should have received a copy of the GNU General Public License
00018   along with degate. If not, see <http://www.gnu.org/licenses/>.
00019 
00020 */
00021 
00022 #ifndef __WIREMATCHING_H__
00023 #define __WIREMATCHING_H__
00024 
00025 #include <Image.h>
00026 #include <Project.h>
00027 #include <TemplateMatching.h>
00028 
00029 namespace degate {
00030 
00031   class WireMatching : public Matching {
00032 
00033   private:
00034 
00035     Layer_shptr layer;
00036     LogicModel_shptr lmodel;
00037     unsigned int wire_diameter, median_filter_width;
00038     double sigma, min_edge_magnitude;
00039     BackgroundImage_shptr img;
00040 
00041     BoundingBox bounding_box;
00042 
00043   public:
00044 
00045     WireMatching();
00046 
00047     /**
00048      * @exception InvalidPointerException
00049      * @exception DegateRuntimeException
00050      */
00051     virtual void init(BoundingBox const& bounding_box, Project_shptr project);
00052 
00053     virtual void run();
00054 
00055     void set_wire_diameter(unsigned int wire_diameter);
00056     void set_median_filter_width(unsigned int median_filter_width);
00057     void set_sigma(double sigma);
00058     void set_min_edge_magnitude(double min_edge_magnitude);
00059 
00060   };
00061 
00062   typedef std::shared_ptr<WireMatching> WireMatching_shptr;
00063 }
00064 
00065 #endif