Changeset 10256


Ignore:
Timestamp:
10/20/11 15:16:57 (13 years ago)
Author:
jschierm
Message:

KML: Addition of KML_Point object and associated utility.

Location:
issm/trunk/src/c
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/c/Makefile.am

    r10239 r10256  
    111111                                        ./objects/KML/KML_Overlay.cpp\
    112112                                        ./objects/KML/KML_Overlay.h\
     113                                        ./objects/KML/KML_Point.cpp\
     114                                        ./objects/KML/KML_Point.h\
    113115                                        ./objects/KML/KML_Placemark.cpp\
    114116                                        ./objects/KML/KML_Placemark.h\
  • issm/trunk/src/c/objects/KML/KMLFileReadUtils.cpp

    r9761 r10256  
    353353
    354354/*FUNCTION  KMLFileTokenParse {{{1*/
     355int KMLFileTokenParse(double **pdval,int* m,int maxlen,
     356                                          char* ktag,
     357                                          FILE* fid){
     358
     359        int     i=-1,j;
     360        char*   kstr;
     361        char*   ktok;
     362        char    delim[]={' ',',','\f','\n','\r','\t','\v','\0'};
     363
     364/*  get next token and allocate if necessary  */
     365
     366        if (!(kstr=KMLFileToken(fid)) ||
     367                (kstr[0] == '<'))
     368                _error_("KMLFileTokenParse -- Missing double [m] field for %s.\n",ktag);
     369
     370        if (!*pdval)
     371                if (maxlen)
     372                        *pdval=(double *) xmalloc(maxlen              *sizeof(double));
     373                else
     374                        *pdval=(double *) xmalloc(((strlen(kstr)+1)/2)*sizeof(double));
     375
     376/*  loop through string to get all values  */
     377
     378        ktok=strtok(kstr,delim);
     379        while (ktok) {
     380                i++;
     381                if (maxlen && (maxlen < i+1))
     382                        _error_("KMLFileTokenParse -- Double [m] field too short for %s.\n",ktag);
     383                sscanf(ktok,"%lg",&((*pdval)[i]));
     384                ktok=strtok(NULL,delim);
     385        }
     386        xfree((void**)&kstr);
     387
     388        if (!maxlen)
     389                *pdval=(double *) xrealloc(*pdval,(i+1)*sizeof(double));
     390
     391        if (m)
     392                *m=i+1;
     393
     394/*  get additional token and compare to closing tag  */
     395
     396        if (ktag)
     397                if (!(kstr=KMLFileToken(fid)) ||
     398                        (kstr[0] != '<') ||
     399                        (kstr[1] != '/') ||
     400                        (strncmp(&(kstr[2]),&(ktag[1]),strlen(ktag)-1)))
     401                        _error_("KMLFileTokenParse -- Missing closing tag for %s.\n",ktag);
     402                else
     403                        xfree((void**)&kstr);
     404
     405//      _printf_(true,"KMLFileTokenParse -- %s=...\n",ktag);
     406//      for (j=0; j<=i; j++)
     407//              _printf_(true,"   [%d]: %g\n",j,(*pdval)[j]);
     408
     409        return(0);
     410}
     411/*}}}*/
     412
     413/*FUNCTION  KMLFileTokenParse {{{1*/
    355414int KMLFileTokenParse(double (**pdval3)[3],int* m,int maxlen,
    356415                                          char* ktag,
  • issm/trunk/src/c/objects/KML/KMLFileReadUtils.h

    r8464 r10256  
    3636                                          char* ktag,
    3737                                          FILE* fid);
     38int KMLFileTokenParse(double **pdval,int* m,int maxlen,
     39                                          char* ktag,
     40                                          FILE* fid);
    3841int KMLFileTokenParse(double (**pdval3)[3],int* m,int maxlen,
    3942                                          char* ktag,
  • issm/trunk/src/c/objects/objects.h

    r9291 r10256  
    6464#include "./KML/KML_Object.h"
    6565#include "./KML/KML_Overlay.h"
     66#include "./KML/KML_Point.h"
    6667#include "./KML/KML_Placemark.h"
    6768#include "./KML/KML_Polygon.h"
Note: See TracChangeset for help on using the changeset viewer.