Annotation of researchv10no/cmd/map/export/map.h, revision 1.1

1.1     ! root        1: #include <math.h>
        !             2: #include <stdlib.h>
        !             3: #include <stdio.h>
        !             4: #include <string.h>
        !             5: #ifdef PLOT
        !             6: #include PLOT
        !             7: #else
        !             8: #include "iplot.h"
        !             9: #endif
        !            10: 
        !            11: #ifndef PI
        !            12: #define PI     3.1415926535897932384626433832795028841971693993751
        !            13: #endif
        !            14: 
        !            15: #define TWOPI (2*PI)
        !            16: #define RAD (PI/180)
        !            17: double hypot(double, double);  /* sqrt(a*a+b*b) */
        !            18: double tan(double);            /* not in K&R library */
        !            19: 
        !            20: #define ECC .08227185422       /* eccentricity of earth */
        !            21: #define EC2 .006768657997
        !            22: 
        !            23: #define FUZZ .0001
        !            24: #define UNUSED 0.0             /* a dummy double parameter */
        !            25: 
        !            26: struct coord {
        !            27:        double l;       /* lat or lon in radians*/
        !            28:        double s;       /* sin */
        !            29:        double c;       /* cos */
        !            30: };
        !            31: struct place {
        !            32:        struct coord nlat;
        !            33:        struct coord wlon;
        !            34: };
        !            35: 
        !            36: typedef int (*proj)(struct place *, double *, double *);
        !            37: 
        !            38: struct index {         /* index of known projections */
        !            39:        char *name;     /* name of projection */
        !            40:        proj (*prog)(double, double);
        !            41:                        /* pointer to projection function */
        !            42:        int npar;       /* number of params */
        !            43:        int (*cut)(struct place *, struct place *, double *);
        !            44:                        /* function that handles cuts--eg longitude 180 */
        !            45:        int poles;      /*1 S pole is a line, 2 N pole is, 3 both*/
        !            46:        int spheroid;   /* poles must be at 90 deg if nonzero */
        !            47:        int (*limb)(double *lat, double *lon, double resolution);
        !            48:                        /* get next place on limb */
        !            49:                        /* return -1 if done, 0 at gap, else 1 */
        !            50: };
        !            51: 
        !            52: 
        !            53: proj   aitoff(void);
        !            54: proj   albers(double, double);
        !            55: int    Xazequalarea(struct place *, double *, double *);
        !            56: proj   azequalarea(void);
        !            57: int    Xazequidistant(struct place *, double *, double *);
        !            58: proj   azequidistant(void);
        !            59: proj   bicentric(double);
        !            60: proj   bonne(double);
        !            61: proj   conic(double);
        !            62: proj   cylequalarea(double);
        !            63: int    Xcylindrical(struct place *, double *, double *);
        !            64: proj   cylindrical(void);
        !            65: proj   elliptic(double);
        !            66: proj   fisheye(double);
        !            67: proj   gall(double);
        !            68: proj   globular(void);
        !            69: proj   gnomonic(void);
        !            70: int    guycut(struct place *, struct place *, double *);
        !            71: int    Xguyou(struct place *, double *, double *);
        !            72: proj   guyou(void);
        !            73: proj   harrison(double, double);
        !            74: int    hexcut(struct place *, struct place *, double *);
        !            75: proj   hex(void);
        !            76: proj   homing(double);
        !            77: int    hlimb(double*, double*, double resolution);
        !            78: proj   lagrange(void);
        !            79: proj   lambert(double, double);
        !            80: proj   laue(void);
        !            81: proj   loxodromic(double);     /* not in library */
        !            82: proj   mecca(double);
        !            83: int    mlimb(double*, double*, double resolution);
        !            84: proj   mercator(void);
        !            85: proj   mollweide(void);
        !            86: proj   newyorker(double);
        !            87: proj   ortelius(double, double);       /* not in library */
        !            88: int    Xorthographic(struct place *place, double *x, double *y);
        !            89: proj   orthographic(void);
        !            90: int    olimb(double*, double*, double);
        !            91: proj   perspective(double);
        !            92: int    plimb(double*, double*, double resolution);
        !            93: int    Xpolyconic(struct place *, double *, double *);
        !            94: proj   polyconic(void);
        !            95: proj   rectangular(double);
        !            96: proj   simpleconic(double, double);
        !            97: int    Xsinusoidal(struct place *, double *, double *);
        !            98: proj   sinusoidal(void);
        !            99: proj   sp_albers(double, double);
        !           100: proj   sp_mercator(void);
        !           101: proj   square(void);
        !           102: int    Xstereographic(struct place *, double *, double *);
        !           103: proj   stereographic(void);
        !           104: int    Xtetra(struct place *, double *, double *);
        !           105: int    tetracut(struct place *, struct place *, double *);
        !           106: proj   tetra(void);
        !           107: proj   trapezoidal(double, double);
        !           108: proj   vandergrinten(void);
        !           109: proj   wreath(double, double); /* not in library */
        !           110: 
        !           111: void   findxy(double, double *, double *);
        !           112: void   albscale(double, double, double, double);
        !           113: void   invalb(double, double, double *, double *);
        !           114: 
        !           115: void   cdiv(double, double, double, double, double *, double *);
        !           116: void   cmul(double, double, double, double, double *, double *);
        !           117: void   csq(double, double, double *, double *);
        !           118: void   csqrt(double, double, double *, double *);
        !           119: void   ccubrt(double, double, double *, double *);
        !           120: double cubrt(double);
        !           121: int    elco2(double, double, double, double, double, double *, double *);
        !           122: void   cdiv2(double, double, double, double, double *, double *);
        !           123: void   csqr(double, double, double *, double *);
        !           124: 
        !           125: void   orient(double, double, double);
        !           126: void   latlon(double, double, struct place *);
        !           127: void   deg2rad(double, struct coord *);
        !           128: void   sincos(struct coord *);
        !           129: void   normalize(struct place *);
        !           130: void   invert(struct place *);
        !           131: void   norm(struct place *, struct place *, struct coord *);
        !           132: void   printp(struct place *);
        !           133: void   copyplace(struct place *, struct place *);
        !           134: 
        !           135: int    picut(struct place *, struct place *, double *);
        !           136: int    ckcut(struct place *, struct place *, double);
        !           137: double reduce(double);
        !           138: 
        !           139: void   getsyms(char *);
        !           140: int    putsym(struct place *, char *, double, int);
        !           141: void   filerror(char *s, char *f);
        !           142: void   error(char *s);
        !           143: int    doproj(struct place *, int *, int *);
        !           144: int    cpoint(int, int, int);
        !           145: int    plotpt(struct place *, int);
        !           146: int    nocut(struct place *, struct place *, double *);
        !           147: 
        !           148: extern int (*projection)(struct place *, double *, double *);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.