point-set-list.h

Go to the documentation of this file.
00001 // Copyright 2007, Massachusetts Institute of Technology.
00002 // The use of this code is permitted for research only. There is
00003 // absolutely no warranty for this software.
00004 //
00005 // Author: John Lee (jjl@mit.edu)
00006 //
00007 #ifndef POINT_SET_POINT_SET_LIST_H
00008 #define POINT_SET_POINT_SET_LIST_H
00009 
00010 #include <assert.h>
00011 #include <vector>
00012 #include <string>
00013 #include <iostream>
00014 #include "point_set/point-set.h"
00015 #include "point_set/point-ref.h"
00016 #include "point_set/feature.h"
00017 
00018 using namespace std;
00019 
00020 namespace libpmk {
00021 
00022 class PointRef;
00023 
00025 
00051 class PointSetList {
00052  public:
00053    virtual ~PointSetList() { }
00054 
00056    virtual int GetNumPointSets() const = 0;
00057    
00059 
00063    virtual int GetNumPoints() const = 0;
00064 
00066    virtual int GetFeatureDim() const = 0;
00067 
00069 
00074    virtual vector<int> GetSetCardinalities() const = 0;
00075 
00077    virtual const PointSet& operator[](int index) const = 0;
00078 
00080 
00085    const Feature& GetFeature(int index) const;
00086 
00088 
00093    pair<int, int> GetFeatureIndices(int index) const;
00094    
00096 
00104    void GetPointRefs(vector<PointRef>* out_refs) const;   
00105    
00107 
00108    void WriteToStream(ostream& output_stream) const;
00109 
00111    void WriteHeaderToStream(ostream& output_stream) const;
00112 
00114    void WritePointSetsToStream(ostream& output_stream) const;
00115 
00117 
00118    void WriteToFile(const char* output_file) const;
00119 };
00120 }  // namespace libpmk
00121 
00122 #endif  // POINT_SET_POINT_SET_LIST_H

Generated on Wed May 2 11:17:12 2007 for libpmk by  doxygen 1.5.1