00001 /*! @file Landmark/Tree.H [put description here] */ 00002 00003 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Landmark/Tree.H $ 00004 // $Id: Tree.H 9412 2008-03-10 23:10:15Z farhan $ 00005 00006 // Program to implement a tree type structure 00007 00008 #include "Image/Image.H" 00009 #include "Image/Point2D.H" 00010 00011 #include <vector> 00012 00013 template <class T> class Image; 00014 template <class T> class PixRGB; 00015 00016 //############################################################### 00017 00018 class Tree 00019 { 00020 00021 public: 00022 00023 struct Node 00024 { 00025 Node* parent; 00026 Point2D<int> loc; 00027 double height; 00028 std::vector<Node*> children; 00029 }*node; 00030 00031 //public: 00032 00033 Tree(Point2D<int> loc, double height); 00034 void search(int n, int& found, Node* &parent); 00035 void insert(Point2D<int> loc, double height); 00036 void traverse(Image<float>& input, Image<PixRGB<byte> >& output); 00037 void mergeTrees(std::vector<Tree* > trees); 00038 void mergeNodes(std::vector<Node* > nodes); 00039 void bfs(Node* root, Image<float>& input, Image<PixRGB<byte> >& output, 00040 int& idx); 00041 void search(Point2D<int> loc); 00042 }; 00043 00044 //###############################################################