00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OPENMS_FORMAT_HANDLERS_FEATUREPAIRSHANDLER_H
00028 #define OPENMS_FORMAT_HANDLERS_FEATUREPAIRSHANDLER_H
00029
00030 #include <OpenMS/KERNEL/Feature.h>
00031 #include <OpenMS/DATASTRUCTURES/DPosition.h>
00032 #include <OpenMS/FORMAT/UniqueIdGenerator.h>
00033 #include <OpenMS/FORMAT/HANDLERS/XMLHandler.h>
00034 #include <OpenMS/DATASTRUCTURES/Param.h>
00035 #include <OpenMS/DATASTRUCTURES/String.h>
00036 #include <OpenMS/TRANSFORMATIONS/FEATUREFINDER/ModelDescription.h>
00037
00038 #include <OpenMS/ANALYSIS/MAPMATCHING/ElementPair.h>
00039
00040
00041 #include <iostream>
00042 #include <valarray>
00043 #include <string>
00044
00045 #include <xercesc/sax2/Attributes.hpp>
00046
00047 namespace OpenMS
00048 {
00049 namespace Internal
00050 {
00051
00054 class FeaturePairsHandler
00055 : public XMLHandler
00056 {
00057 public:
00060
00061 FeaturePairsHandler(std::vector< ElementPair < Feature > > & map, const String& filename, const String& version)
00062 : XMLHandler(filename,version),
00063 pairs_(&map),
00064 cpairs_(0),
00065 id_generator_(UniqueIdGenerator::instance())
00066 {
00067 }
00068
00070 FeaturePairsHandler(const std::vector< ElementPair < Feature > > & map, const String& filename, const String& version)
00071 : XMLHandler(filename,version),
00072 pairs_(0),
00073 cpairs_(&map),
00074 id_generator_(UniqueIdGenerator::instance())
00075 {
00076 }
00078 virtual ~FeaturePairsHandler()
00079 {
00080 }
00082
00083
00084 virtual void endElement(const XMLCh* const , const XMLCh* const , const XMLCh* const qname);
00085
00086
00087 virtual void startElement(const XMLCh* const , const XMLCh* const , const XMLCh* const qname, const xercesc::Attributes& attributes);
00088
00089
00090 virtual void characters(const XMLCh* const chars, unsigned int length);
00091
00093 void writeTo(std::ostream& os);
00094
00095 protected:
00096
00098 std::vector< ElementPair < Feature > > * pairs_;
00100 const std::vector< ElementPair < Feature > > * cpairs_;
00102 UniqueIdGenerator id_generator_;
00104 UInt dim_;
00105
00106
00107 ElementPair < Feature > pair_;
00108 Feature feature_;
00109 ModelDescription<2>* model_desc_;
00110 Param param_;
00111 ConvexHull2D current_chull_;
00112 Feature::PositionType hull_position_;
00113
00114 void writeFeature_(std::ostream& os, Feature dfeat);
00115
00116 };
00117
00118
00119
00120 }
00121 }
00122
00123 #endif