Changeset 8215


Ignore:
Timestamp:
05/09/11 15:21:32 (14 years ago)
Author:
jschierm
Message:

KML objects: Moved features dataset from KML_Document and KML_Folder to KML_Container.

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

Legend:

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

    r8208 r8215  
    2323KML_Container::KML_Container(){
    2424
    25         ;
     25        feature   =new DataSet;
    2626
    2727}
     
    3030KML_Container::~KML_Container(){
    3131
    32         ;
     32        if (feature) {
     33                delete feature;
     34                feature   =NULL;
     35        }
    3336
    3437}
     
    3942void  KML_Container::Echo(){
    4043
     44        bool  flag=true;
     45
    4146        KML_Feature::Echo();
     47
     48        _printf_(flag,"       feature: (size=%d)\n" ,feature->Size());
    4249
    4350        return;
     
    5966void  KML_Container::DeepEcho(char* indent){
    6067
     68        int   i;
     69        char  indent2[81];
     70        bool  flag=true;
     71
    6172        KML_Feature::DeepEcho(indent);
     73
     74/*  loop over the features for the container  */
     75
     76        strcpy(indent2,indent);
     77        strcat(indent2,"  ");
     78
     79        if (feature->Size())
     80                for (i=0; i<feature->Size(); i++) {
     81                        _printf_(flag,"%s       feature: [%d] begin\n" ,indent,i);
     82                        ((KML_Feature *)feature->GetObjectByOffset(i))->DeepEcho(indent2);
     83                        _printf_(flag,"%s       feature: [%d] end\n"   ,indent,i);
     84                }
     85        else
     86                _printf_(flag,"%s       feature: [empty]\n"    ,indent);
    6287
    6388        return;
     
    6893void  KML_Container::Write(FILE* filout,char* indent){
    6994
     95        int   i;
     96        char  indent2[81];
     97
    7098        KML_Feature::Write(filout,indent);
     99
     100/*  loop over the features for the container  */
     101
     102        strcpy(indent2,indent);
     103        strcat(indent2,"  ");
     104
     105        for (i=0; i<feature->Size(); i++)
     106                ((KML_Feature *)feature->GetObjectByOffset(i))->Write(filout,indent2);
    71107
    72108        return;
     
    77113void  KML_Container::Read(FILE* fid,char* kstr){
    78114
    79         KML_Feature::Read(fid,kstr);
     115        KML_Object*  kobj;
     116
     117/*  process field within opening and closing tags  */
     118
     119        if      (!strncmp(kstr,"</Container",11)) {
     120                xfree((void**)&kstr);
     121                return;
     122        }
     123        else if (!strncmp(kstr,"</",2))
     124                _error_("KML_Container::Read -- Unexpected closing tag %s.\n",kstr);
     125        else if (strncmp(kstr,"<",1))
     126                _error_("KML_Container::Read -- Unexpected field \"%s\".\n",kstr);
     127
     128        else if (!strncmp(kstr,"<Placemark",10)) {
     129                kobj=(KML_Object*)new KML_Placemark();
     130                kobj->Read(fid,kstr);
     131                feature   ->AddObject((Object*)kobj);
     132        }
     133
     134        else if (!strncmp(kstr,"<Folder",7)) {
     135                kobj=(KML_Object*)new KML_Folder();
     136                kobj->Read(fid,kstr);
     137                feature   ->AddObject((Object*)kobj);
     138        }
     139
     140        else if (!strncmp(kstr,"<Document",9)) {
     141                kobj=(KML_Object*)new KML_Document();
     142                kobj->Read(fid,kstr);
     143                feature   ->AddObject((Object*)kobj);
     144        }
     145
     146        else if (!strncmp(kstr,"<",1))
     147                KML_Feature::Read(fid,kstr);
    80148
    81149        return;
  • issm/trunk/src/c/objects/KML/KML_Container.h

    r8208 r8215  
    1818
    1919        public:
     20
     21                DataSet* feature;
    2022
    2123                /*KML_Container constructors, destructors {{{1*/
  • issm/trunk/src/c/objects/KML/KML_Document.cpp

    r8208 r8215  
    2323KML_Document::KML_Document(){
    2424
    25         feature   =new DataSet;
     25        ;
    2626
    2727}
     
    3030KML_Document::~KML_Document(){
    3131
    32         if (feature) {
    33                 delete feature;
    34                 feature   =NULL;
    35         }
     32        ;
    3633
    3734}
     
    4643        _printf_(flag,"KML_Document:\n");
    4744        KML_Container::Echo();
    48 
    49         _printf_(flag,"       feature: (size=%d)\n" ,feature->Size());
    5045
    5146        return;
     
    6762void  KML_Document::DeepEcho(char* indent){
    6863
    69         int   i;
    70         char  indent2[81];
    7164        bool  flag=true;
    7265
    7366        _printf_(flag,"%sKML_Document:\n",indent);
    7467        KML_Container::DeepEcho(indent);
    75 
    76 /*  loop over the features for the document  */
    77 
    78         strcpy(indent2,indent);
    79         strcat(indent2,"  ");
    80 
    81         if (feature->Size())
    82                 for (i=0; i<feature->Size(); i++) {
    83                         _printf_(flag,"%s       feature: [%d] begin\n" ,indent,i);
    84                         ((KML_Feature *)feature->GetObjectByOffset(i))->DeepEcho(indent2);
    85                         _printf_(flag,"%s       feature: [%d] end\n"   ,indent,i);
    86                 }
    87         else
    88                 _printf_(flag,"%s       feature: [empty]\n"    ,indent);
    8968
    9069        return;
     
    9574void  KML_Document::Write(FILE* filout,char* indent){
    9675
    97         int   i;
    98         char  indent2[81];
    99 
    10076        if (this->id && strlen(this->id))
    10177                fprintf(filout,"%s<Document id=\"%s\">\n",indent,this->id);
     
    10480
    10581        KML_Container::Write(filout,indent);
    106 
    107 /*  loop over the features for the document  */
    108 
    109         strcpy(indent2,indent);
    110         strcat(indent2,"  ");
    111 
    112         for (i=0; i<feature->Size(); i++)
    113                 ((KML_Feature *)feature->GetObjectByOffset(i))->Write(filout,indent2);
    11482
    11583        fprintf(filout,"%s</Document>\n",indent);
     
    12391
    12492        char*        kstri;
    125         KML_Object*  kobj;
    12693
    12794/*  check for id attribute  */
     
    143110                else if (strncmp(kstri,"<",1))
    144111                        _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                 }
    163112
    164113                else if (!strncmp(kstri,"<",1))
  • issm/trunk/src/c/objects/KML/KML_Document.h

    r8208 r8215  
    2020
    2121        public:
    22 
    23                 DataSet* feature;
    2422
    2523                /*KML_Document constructors, destructors {{{1*/
  • issm/trunk/src/c/objects/KML/KML_Folder.cpp

    r8208 r8215  
    2323KML_Folder::KML_Folder(){
    2424
    25         feature   =new DataSet;
     25        ;
    2626
    2727}
     
    3030KML_Folder::~KML_Folder(){
    3131
    32         if (feature) {
    33                 delete feature;
    34                 feature   =NULL;
    35         }
     32        ;
    3633
    3734}
     
    4643        _printf_(flag,"KML_Folder:\n");
    4744        KML_Container::Echo();
    48 
    49         _printf_(flag,"       feature: (size=%d)\n" ,feature->Size());
    5045
    5146        return;
     
    6762void  KML_Folder::DeepEcho(char* indent){
    6863
    69         int   i;
    70         char  indent2[81];
    7164        bool  flag=true;
    7265
    7366        _printf_(flag,"%sKML_Folder:\n",indent);
    7467        KML_Container::DeepEcho(indent);
    75 
    76 /*  loop over the features for the folder  */
    77 
    78         strcpy(indent2,indent);
    79         strcat(indent2,"  ");
    80 
    81         if (feature->Size())
    82                 for (i=0; i<feature->Size(); i++) {
    83                         _printf_(flag,"%s       feature: [%d] begin\n" ,indent,i);
    84                         ((KML_Feature *)feature->GetObjectByOffset(i))->DeepEcho(indent2);
    85                         _printf_(flag,"%s       feature: [%d] end\n"   ,indent,i);
    86                 }
    87         else
    88                 _printf_(flag,"%s       feature: [empty]\n"    ,indent);
    8968
    9069        return;
     
    9675
    9776        int   i;
    98         char  indent2[81];
    9977
    10078        if (this->id && strlen(this->id))
     
    10583        KML_Container::Write(filout,indent);
    10684
    107 /*  loop over the features for the folder  */
    108 
    109         strcpy(indent2,indent);
    110         strcat(indent2,"  ");
    111 
    112         for (i=0; i<feature->Size(); i++)
    113                 ((KML_Feature *)feature->GetObjectByOffset(i))->Write(filout,indent2);
    114 
    11585        fprintf(filout,"%s</Folder>\n",indent);
    11686
     
    12090
    12191/*FUNCTION KML_Folder::Read {{{1*/
    122 void  KML_Folder::Read(FILE* filin,char* kstr){
     92void  KML_Folder::Read(FILE* fid,char* kstr){
    12393
    12494
  • issm/trunk/src/c/objects/KML/KML_Folder.h

    r8208 r8215  
    2020
    2121        public:
    22 
    23                 DataSet* feature;
    2422
    2523                /*KML_Folder constructors, destructors {{{1*/
Note: See TracChangeset for help on using the changeset viewer.