#ifndef STREAKSASTROM_H
#define STREAKSASTROM_H

// Structure that encapsulates Astrometry
// Note: this file should have no dependence on ipp data types
// XXX: we might be able to remove this restrction. Paul S has
// used some of our datatypes in his code
//
typedef struct {
    // opaque pointers to psModules types
    void    *pt;        // pmAstromObj *
    void    *fpa;       // pmFPA *
    void    *chip;      // pmChip *

    double  cell_x0;
    double  cell_y0;
    double  xParity;    // 1 or -1
    double  yParity;
    int     numCols;
    int     numRows;
} strkAstrom;


// XXX: Since Paul is including ipp headers perhaps we can replace uses of strkPt with psPlane
typedef struct {
    double  x;
    double  y;
} strkPt;

extern bool skyToCell(strkPt *, strkAstrom *astrom, double ra, double dec);
extern bool cellToSky(strkPt *, strkAstrom *astrom, double x, double y);
extern void linearizeTransforms(strkAstrom *astrom);

#endif // STREAKS_ASTROM_H
