[Cmap-cvs] mp2mp mp2mp.cpp,1.1.1.1,1.2 mp2mp.dsp,1.1.1.1,1.2 mp_parser.cpp,1.1.1.1,1.2 mp_parser.h,1
Status: Beta
Brought to you by:
dyp
From: Denis P. <dy...@us...> - 2004-11-14 15:01:11
|
Update of /cvsroot/cmap/mp2mp In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11758 Modified Files: mp2mp.cpp mp2mp.dsp mp_parser.cpp mp_parser.h object.cpp parserImpl.cpp Log Message: Implement attributes handling First working version with converting. Index: mp2mp.cpp =================================================================== RCS file: /cvsroot/cmap/mp2mp/mp2mp.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mp2mp.cpp 7 Nov 2004 13:58:57 -0000 1.1.1.1 +++ mp2mp.cpp 14 Nov 2004 15:00:57 -0000 1.2 @@ -39,8 +39,10 @@ file->process(f); } +const char *outFile; + void ObjectConfImpl::process(FILE *fo) { - printf("Processing: %s\n", filename.c_str()); + fprintf(stderr, "Processing: %s\n", filename.c_str()); FILE *f = fopen(filename.c_str(), "rt"); if (f == NULL) { @@ -61,6 +63,14 @@ throw; } +// p.map.printHeader(stdout); + ObjectProp op; + for (std::list<Rgn>::iterator it = p.map.rgns.begin(); it != p.map.rgns.end(); it++) { + Rgn &rgn = *it; + if (handle(&rgn, op, 0)) + rgn.print(fo, op); + } + fclose(f); } @@ -98,8 +108,6 @@ fclose(f); } -const char *outFile; - int main(int argc, char* argv[]) { bool doSplit = false; Index: object.cpp =================================================================== RCS file: /cvsroot/cmap/mp2mp/object.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- object.cpp 7 Nov 2004 13:58:57 -0000 1.1.1.1 +++ object.cpp 14 Nov 2004 15:00:57 -0000 1.2 @@ -1,8 +1,29 @@ #include "object.h" +#include "mp_parser.h" ObjectConfImpl *firstObj = NULL; void ObjectConfImpl::init(const void *obj, ObjectProp &o) { + const Rgn *rgn = (const Rgn *)obj; + + o.index = false; + o.city = 0; + + o.garminType = rgn->type; + o.layerMax = rgn->endLevel; + o.label = rgn->label; + + switch (rgn->rgnType) { + case Rgn::POI: + o.kind = kind::Point; + break; + case Rgn::Polyline: + o.kind = kind::Line; + break; + case Rgn::Polygon: + o.kind = kind::Polygon; + break; + } } void add(ObjectConfImpl *obj) { Index: mp_parser.h =================================================================== RCS file: /cvsroot/cmap/mp2mp/mp_parser.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mp_parser.h 7 Nov 2004 13:58:57 -0000 1.1.1.1 +++ mp_parser.h 14 Nov 2004 15:00:57 -0000 1.2 @@ -48,7 +48,7 @@ std::list<Attr> attrs; std::list<Element> elements; - void print(FILE *f); + void print(FILE *f, const ObjectProp &op); }; class Map { @@ -72,7 +72,8 @@ int rgnLimit; bool POIIndex; - void print(FILE *f); +// void print(FILE *f); + void printHeader(FILE *f); std::list<Rgn> rgns; }; @@ -84,6 +85,8 @@ bool parseRgn(Map &map); void parseElement(Element &e); bool parseObject(); + + Map map; private: std::string filename; Tokenizer t; Index: parserImpl.cpp =================================================================== RCS file: /cvsroot/cmap/mp2mp/parserImpl.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- parserImpl.cpp 7 Nov 2004 13:58:57 -0000 1.1.1.1 +++ parserImpl.cpp 14 Nov 2004 15:00:57 -0000 1.2 @@ -1,5 +1,6 @@ #include "parserImpl.h" #include "object.h" +#include "mp_parser.h" class AttrVar : public StringRVar { public: @@ -10,6 +11,11 @@ } virtual std::string getValue(const void *obj, const ObjectProp &) { + const Rgn *rgn = (const Rgn *)obj; + for (std::list<Attr>::const_iterator it = rgn->attrs.begin(); it != rgn->attrs.end(); it++) + if ((*it).name == name) + return (*it).value; + std::string value; return value; } Index: mp2mp.dsp =================================================================== RCS file: /cvsroot/cmap/mp2mp/mp2mp.dsp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mp2mp.dsp 7 Nov 2004 13:58:57 -0000 1.1.1.1 +++ mp2mp.dsp 14 Nov 2004 15:00:57 -0000 1.2 @@ -49,8 +49,8 @@ # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 !ELSEIF "$(CFG)" == "mp2mp - Win32 Debug" @@ -65,16 +65,16 @@ # PROP Intermediate_Dir "Debug" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "eval" /I "." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "eval" /I "." /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c # ADD BASE RSC /l 0x419 /d "_DEBUG" # ADD RSC /l 0x419 /d "_DEBUG" BSC32=bscmake.exe # ADD BASE BSC32 /nologo # ADD BSC32 /nologo LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept !ENDIF Index: mp_parser.cpp =================================================================== RCS file: /cvsroot/cmap/mp2mp/mp_parser.cpp,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mp_parser.cpp 7 Nov 2004 13:58:57 -0000 1.1.1.1 +++ mp_parser.cpp 14 Nov 2004 15:00:57 -0000 1.2 @@ -3,7 +3,7 @@ Map::Map() { } -void Map::print(FILE *f) { +void Map::printHeader(FILE *f) { fprintf(f, "id = %s\n", id.c_str()); fprintf(f, "name = %s\n", name.c_str()); fprintf(f, "typeSet = %s\n", typeSet.c_str()); @@ -25,10 +25,15 @@ fprintf(f, "POIIndex = %s\n", POIIndex ? "true" : "false"); fprintf(f, "\n"); +} +/* +void Map::print(FILE *f) { + printHeader(f); for (std::list<Rgn>::iterator it = rgns.begin(); it != rgns.end(); it++) (*it).print(f); } +*/ void Attr::print(FILE *f) { fprintf(f, "; %s=%s\n", name.c_str(), value.c_str()); @@ -37,7 +42,7 @@ Rgn::Rgn() : rgnType(POI), type(0), endLevel(0) { } -void Rgn::print(FILE *f) { +void Rgn::print(FILE *f, const ObjectProp &op) { for (std::list<Attr>::iterator it = attrs.begin(); it != attrs.end(); it++) (*it).print(f); @@ -53,13 +58,12 @@ break; }; - if (type != 0) - fprintf(f, "Type=0x%x\n", type); + fprintf(f, "Type=0x%x\n", op.garminType); - if (endLevel != 0) - fprintf(f, "EndLevel=%d\n", endLevel); - if (label.length() > 0) - fprintf(f, "Label=%s\n", label.c_str()); + if (op.layerMax != 0) + fprintf(f, "EndLevel=%d\n", op.layerMax); + if (op.label.length() > 0) + fprintf(f, "Label=%s\n", op.label.c_str()); for (std::list<Element>::iterator it2 = elements.begin(); it2 != elements.end(); it2++) (*it2).print(f); @@ -319,11 +323,9 @@ } bool MPParser::parseObject() { - Map map; parseHeader(map); while (parseRgn(map)) ; - map.print(stdout); // while (t.nextToken() != TT_EOF) // t.printToken(); return false; |