Changeset 8207


Ignore:
Timestamp:
05/09/11 11:14:58 (14 years ago)
Author:
jschierm
Message:

KML file reader: First round of changes to KML objects.

Location:
issm/trunk/src/c/objects/KML
Files:
34 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/objects/KML/KML_ColorStyle.cpp

    r7653 r8207  
    9090/*}}}*/
    9191
     92/*FUNCTION KML_ColorStyle::Read {{{1*/
     93KML_Object*  KML_ColorStyle::Read(FILE* filin,char* kstr){
     94
     95
     96        return(NULL);
     97}
     98/*}}}*/
     99
    92100/*FUNCTION KML_ColorStyle::Id {{{1*/
    93101int   KML_ColorStyle::Id(){
  • issm/trunk/src/c/objects/KML/KML_ColorStyle.h

    r8069 r8207  
    3434                void  DeepEcho(char* indent);
    3535                void  Write(FILE* fid,char* indent);
     36                KML_Object*  Read(FILE* fid,char* kstr);
    3637                int   Id();
    3738                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Container.cpp

    r7653 r8207  
    7474/*}}}*/
    7575
     76/*FUNCTION KML_Container::Read {{{1*/
     77KML_Object*  KML_Container::Read(FILE* fid,char* kstr){
     78
     79        KML_Feature::Read(fid,kstr);
     80
     81        return(NULL);
     82}
     83/*}}}*/
     84
    7685/*FUNCTION KML_Container::Id {{{1*/
    7786int   KML_Container::Id(){
  • issm/trunk/src/c/objects/KML/KML_Container.h

    r7653 r8207  
    2828                void  DeepEcho(char* indent);
    2929                void  Write(FILE* fid,char* indent);
     30                KML_Object*  Read(FILE* fid,char* kstr);
    3031                int   Id();
    3132                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Document.cpp

    r7653 r8207  
    119119/*}}}*/
    120120
     121/*FUNCTION KML_Document::Read {{{1*/
     122KML_Object*  KML_Document::Read(FILE* fid,char* kstr){
     123
     124        char*        kstri;
     125        KML_Object*  kobj;
     126
     127/*  check for id attribute  */
     128
     129//      KML_Object::Read(fid,kstr);
     130        KMLFileTagAttrib( id        ,NULL,KML_OBJECT_ID_LENGTH,
     131                                         kstr,
     132                                         "id");
     133
     134/*  loop over and process fields within opening and closing tags  */
     135
     136        while (kstri=KMLFileToken(fid)) {
     137                if      (!strncmp(kstri,"</Document",10)) {
     138                        xfree((void**)&kstri);
     139                        break;
     140                }
     141                else if (!strncmp(kstri,"</",2))
     142                        _error_("KML_Document::Read -- Unexpected closing tag %s.\n",kstri);
     143                else if (strncmp(kstri,"<",1))
     144                        _error_("KML_Document::Read -- Unexpected field \"%s\".\n",kstri);
     145
     146                else if (!strncmp(kstri,"<Placemark",10)) {
     147                        kobj=(KML_Object*)new KML_Placemark();
     148                        kobj->Read(fid,kstri);
     149                        feature   ->AddObject((Object*)kobj);
     150                }
     151
     152                else if (!strncmp(kstri,"<Folder",7)) {
     153                        kobj=(KML_Object*)new KML_Folder();
     154                        kobj->Read(fid,kstri);
     155                        feature   ->AddObject((Object*)kobj);
     156                }
     157
     158                else if (!strncmp(kstri,"<Document",9)) {
     159                        kobj=(KML_Object*)new KML_Document();
     160                        kobj->Read(fid,kstri);
     161                        feature   ->AddObject((Object*)kobj);
     162                }
     163
     164                else if (!strncmp(kstri,"<",1))
     165                        KML_Container::Read(fid,kstri);
     166
     167                xfree((void**)&kstri);
     168        }
     169
     170        return(NULL);
     171}
     172/*}}}*/
     173
    121174/*FUNCTION KML_Document::Id {{{1*/
    122175int   KML_Document::Id(){
  • issm/trunk/src/c/objects/KML/KML_Document.h

    r7653 r8207  
    3232                void  DeepEcho(char* indent);
    3333                void  Write(FILE* fid,char* indent);
     34                KML_Object*  Read(FILE* fid,char* kstr);
    3435                int   Id();
    3536                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Feature.cpp

    r7653 r8207  
    140140/*}}}*/
    141141
     142/*FUNCTION KML_Feature::Read {{{1*/
     143KML_Object*  KML_Feature::Read(FILE* fid,char* kstr){
     144
     145        KML_Object*  kobj;
     146
     147/*  process field within opening and closing tags  */
     148
     149        if      (!strncmp(kstr,"</Feature", 9))
     150                return(NULL);
     151        else if (!strncmp(kstr,"</",2))
     152                _error_("KML_Feature::Read -- Unexpected closing tag %s.\n",kstr);
     153        else if (strncmp(kstr,"<",1))
     154                _error_("KML_Feature::Read -- Unexpected field \"%s\".\n",kstr);
     155
     156        else if (!strncmp(kstr,"<Style", 6)) {
     157                kobj=(KML_Object*)new KML_Style();
     158                kobj->Read(fid,kstr);
     159                style     ->AddObject((Object*)kobj);
     160        }
     161
     162        else if (!strcmp(kstr,"<name>"))
     163                KMLFileTokenParse( name      ,NULL,KML_FEATURE_NAME_LENGTH,
     164                                                  kstr,
     165                                                  fid);
     166        else if (!strcmp(kstr,"<visibility>"))
     167                KMLFileTokenParse(&visibility,
     168                                                  kstr,
     169                                                  fid);
     170        else if (!strcmp(kstr,"<open>"))
     171                KMLFileTokenParse(&open      ,
     172                                                  kstr,
     173                                                  fid);
     174        else if (!strncmp(kstr,"<snippet", 8))
     175                KMLFileTokenParse( snippet   ,NULL,KML_FEATURE_SNIPPET_LENGTH,
     176                                                  kstr,
     177                                                  fid);
     178        else if (!strcmp(kstr,"<description>"))
     179                KMLFileTokenParse( descript  ,NULL,KML_FEATURE_DESCRIPT_LENGTH,
     180                                                  kstr,
     181                                                  fid);
     182        else if (!strcmp(kstr,"<styleUrl>"))
     183                KMLFileTokenParse( styleurl  ,NULL,KML_FEATURE_STYLEURL_LENGTH,
     184                                                  kstr,
     185                                                  fid);
     186
     187        else if (!strncmp(kstr,"<",1))
     188                KML_Object::Read(fid,kstr);
     189
     190        return(NULL);
     191}
     192/*}}}*/
     193
    142194/*FUNCTION KML_Feature::Id {{{1*/
    143195int   KML_Feature::Id(){
  • issm/trunk/src/c/objects/KML/KML_Feature.h

    r8069 r8207  
    4343                void  DeepEcho(char* indent);
    4444                void  Write(FILE* fid,char* indent);
     45                KML_Object*  Read(FILE* fid,char* kstr);
    4546                int   Id();
    4647                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Folder.cpp

    r7653 r8207  
    119119/*}}}*/
    120120
     121/*FUNCTION KML_Folder::Read {{{1*/
     122KML_Object*  KML_Folder::Read(FILE* filin,char* kstr){
     123
     124
     125        return(NULL);
     126}
     127/*}}}*/
     128
    121129/*FUNCTION KML_Folder::Id {{{1*/
    122130int   KML_Folder::Id(){
  • issm/trunk/src/c/objects/KML/KML_Folder.h

    r7653 r8207  
    3232                void  DeepEcho(char* indent);
    3333                void  Write(FILE* fid,char* indent);
     34                KML_Object*  Read(FILE* fid,char* kstr);
    3435                int   Id();
    3536                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Geometry.cpp

    r7653 r8207  
    7474/*}}}*/
    7575
     76/*FUNCTION KML_Geometry::Read {{{1*/
     77KML_Object*  KML_Geometry::Read(FILE* filin,char* kstr){
     78
     79
     80        return(NULL);
     81}
     82/*}}}*/
     83
    7684/*FUNCTION KML_Geometry::Id {{{1*/
    7785int   KML_Geometry::Id(){
  • issm/trunk/src/c/objects/KML/KML_Geometry.h

    r7653 r8207  
    2828                void  DeepEcho(char* indent);
    2929                void  Write(FILE* fid,char* indent);
     30                KML_Object*  Read(FILE* fid,char* kstr);
    3031                int   Id();
    3132                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_LineString.cpp

    r7653 r8207  
    122122/*}}}*/
    123123
     124/*FUNCTION KML_LineString::Read {{{1*/
     125KML_Object*  KML_LineString::Read(FILE* filin,char* kstr){
     126
     127
     128        return(NULL);
     129}
     130/*}}}*/
     131
    124132/*FUNCTION KML_LineString::Id {{{1*/
    125133int   KML_LineString::Id(){
  • issm/trunk/src/c/objects/KML/KML_LineString.h

    r8069 r8207  
    3636                void  DeepEcho(char* indent);
    3737                void  Write(FILE* fid,char* indent);
     38                KML_Object*  Read(FILE* fid,char* kstr);
    3839                int   Id();
    3940                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_LineStyle.cpp

    r7653 r8207  
    9696/*}}}*/
    9797
     98/*FUNCTION KML_LineStyle::Read {{{1*/
     99KML_Object*  KML_LineStyle::Read(FILE* filin,char* kstr){
     100
     101
     102        return(NULL);
     103}
     104/*}}}*/
     105
    98106/*FUNCTION KML_LineStyle::Id {{{1*/
    99107int   KML_LineStyle::Id(){
  • issm/trunk/src/c/objects/KML/KML_LineStyle.h

    r7653 r8207  
    3030                void  DeepEcho(char* indent);
    3131                void  Write(FILE* fid,char* indent);
     32                KML_Object*  Read(FILE* fid,char* kstr);
    3233                int   Id();
    3334                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_LinearRing.cpp

    r7653 r8207  
    122122/*}}}*/
    123123
     124/*FUNCTION KML_LinearRing::Read {{{1*/
     125KML_Object*  KML_LinearRing::Read(FILE* filin,char* kstr){
     126
     127
     128        return(NULL);
     129}
     130/*}}}*/
     131
    124132/*FUNCTION KML_LinearRing::Id {{{1*/
    125133int   KML_LinearRing::Id(){
  • issm/trunk/src/c/objects/KML/KML_LinearRing.h

    r8069 r8207  
    3636                void  DeepEcho(char* indent);
    3737                void  Write(FILE* fid,char* indent);
     38                KML_Object*  Read(FILE* fid,char* kstr);
    3839                int   Id();
    3940                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_MultiGeometry.cpp

    r7653 r8207  
    119119/*}}}*/
    120120
     121/*FUNCTION KML_MultiGeometry::Read {{{1*/
     122KML_Object*  KML_MultiGeometry::Read(FILE* filin,char* kstr){
     123
     124
     125        return(NULL);
     126}
     127/*}}}*/
     128
    121129/*FUNCTION KML_MultiGeometry::Id {{{1*/
    122130int   KML_MultiGeometry::Id(){
  • issm/trunk/src/c/objects/KML/KML_MultiGeometry.h

    r7653 r8207  
    3232                void  DeepEcho(char* indent);
    3333                void  Write(FILE* fid,char* indent);
     34                KML_Object*  Read(FILE* fid,char* kstr);
    3435                int   Id();
    3536                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Object.cpp

    r7653 r8207  
    8080/*}}}*/
    8181
     82/*FUNCTION KML_Object::Read {{{1*/
     83KML_Object*  KML_Object::Read(FILE* fid,char* kstr){
     84
     85/*  process field within opening and closing tags  */
     86
     87        if      (!strncmp(kstr,"</Object", 8))
     88                return(NULL);
     89        else if (!strncmp(kstr,"</",2))
     90                _error_("KML_Object::Read -- Unexpected closing tag %s.\n",kstr);
     91        else if (strncmp(kstr,"<",1))
     92                _error_("KML_Object::Read -- Unexpected field \"%s\".\n",kstr);
     93
     94        else if (!strncmp(kstr,"<",1)) {
     95                _printf_(true,"KML_Object::Read -- Unrecognized opening tag %s.\n",kstr);
     96                KMLFileTagSkip(kstr,
     97                                           fid);
     98        }
     99
     100        return(NULL);
     101}
     102/*}}}*/
     103
    82104/*FUNCTION KML_Object::Id {{{1*/
    83105int   KML_Object::Id(){
  • issm/trunk/src/c/objects/KML/KML_Object.h

    r8069 r8207  
    2727                /*}}}*/
    2828                /*Object virtual functions definitions:{{{1*/
    29                 void  Echo();
    30                 void  DeepEcho();
    31                 void  DeepEcho(char* indent);
     29                virtual void  Echo();
     30                virtual void  DeepEcho();
     31                virtual void  DeepEcho(char* indent);
    3232                int   Id();
    3333                int   MyRank();
     
    4141                /*virtual functions: */
    4242                virtual void  Write(FILE* fid,char* indent)=0;
     43                virtual KML_Object*  Read(FILE* fid,char* kstr)=0;
    4344
    4445
  • issm/trunk/src/c/objects/KML/KML_Placemark.cpp

    r7653 r8207  
    119119/*}}}*/
    120120
     121/*FUNCTION KML_Placemark::Read {{{1*/
     122KML_Object*  KML_Placemark::Read(FILE* filin,char* kstr){
     123
     124
     125        return(NULL);
     126}
     127/*}}}*/
     128
    121129/*FUNCTION KML_Placemark::Id {{{1*/
    122130int   KML_Placemark::Id(){
  • issm/trunk/src/c/objects/KML/KML_Placemark.h

    r7653 r8207  
    3232                void  DeepEcho(char* indent);
    3333                void  Write(FILE* fid,char* indent);
     34                KML_Object*  Read(FILE* fid,char* kstr);
    3435                int   Id();
    3536                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_PolyStyle.cpp

    r7653 r8207  
    100100/*}}}*/
    101101
     102/*FUNCTION KML_PolyStyle::Read {{{1*/
     103KML_Object*  KML_PolyStyle::Read(FILE* filin,char* kstr){
     104
     105
     106        return(NULL);
     107}
     108/*}}}*/
     109
    102110/*FUNCTION KML_PolyStyle::Id {{{1*/
    103111int   KML_PolyStyle::Id(){
  • issm/trunk/src/c/objects/KML/KML_PolyStyle.h

    r7653 r8207  
    3131                void  DeepEcho(char* indent);
    3232                void  Write(FILE* fid,char* indent);
     33                KML_Object*  Read(FILE* fid,char* kstr);
    3334                int   Id();
    3435                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Polygon.cpp

    r7653 r8207  
    155155/*}}}*/
    156156
     157/*FUNCTION KML_Polygon::Read {{{1*/
     158KML_Object*  KML_Polygon::Read(FILE* filin,char* kstr){
     159
     160
     161        return(NULL);
     162}
     163/*}}}*/
     164
    157165/*FUNCTION KML_Polygon::Id {{{1*/
    158166int   KML_Polygon::Id(){
  • issm/trunk/src/c/objects/KML/KML_Polygon.h

    r8069 r8207  
    3838                void  DeepEcho(char* indent);
    3939                void  Write(FILE* fid,char* indent);
     40                KML_Object*  Read(FILE* fid,char* kstr);
    4041                int   Id();
    4142                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_Style.cpp

    r7653 r8207  
    175175/*}}}*/
    176176
     177/*FUNCTION KML_Style::Read {{{1*/
     178KML_Object*  KML_Style::Read(FILE* filin,char* kstr){
     179
     180
     181        return(NULL);
     182}
     183/*}}}*/
     184
    177185/*FUNCTION KML_Style::Id {{{1*/
    178186int   KML_Style::Id(){
  • issm/trunk/src/c/objects/KML/KML_Style.h

    r7653 r8207  
    3737                void  DeepEcho(char* indent);
    3838                void  Write(FILE* fid,char* indent);
     39                KML_Object*  Read(FILE* fid,char* kstr);
    3940                int   Id();
    4041                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_StyleSelector.cpp

    r7653 r8207  
    7474/*}}}*/
    7575
     76/*FUNCTION KML_StyleSelector::Read {{{1*/
     77KML_Object*  KML_StyleSelector::Read(FILE* filin,char* kstr){
     78
     79
     80        return(NULL);
     81}
     82/*}}}*/
     83
    7684/*FUNCTION KML_StyleSelector::Id {{{1*/
    7785int   KML_StyleSelector::Id(){
  • issm/trunk/src/c/objects/KML/KML_StyleSelector.h

    r7653 r8207  
    2828                void  DeepEcho(char* indent);
    2929                void  Write(FILE* fid,char* indent);
     30                KML_Object*  Read(FILE* fid,char* kstr);
    3031                int   Id();
    3132                int   MyRank();
  • issm/trunk/src/c/objects/KML/KML_SubStyle.cpp

    r7653 r8207  
    7474/*}}}*/
    7575
     76/*FUNCTION KML_SubStyle::Read {{{1*/
     77KML_Object*  KML_SubStyle::Read(FILE* filin,char* kstr){
     78
     79
     80        return(NULL);
     81}
     82/*}}}*/
     83
    7684/*FUNCTION KML_SubStyle::Id {{{1*/
    7785int   KML_SubStyle::Id(){
  • issm/trunk/src/c/objects/KML/KML_SubStyle.h

    r7653 r8207  
    2828                void  DeepEcho(char* indent);
    2929                void  Write(FILE* fid,char* indent);
     30                KML_Object*  Read(FILE* fid,char* kstr);
    3031                int   Id();
    3132                int   MyRank();
Note: See TracChangeset for help on using the changeset viewer.