#ifndef _SEARCH_STAR_H__ #define _SEARCH_STAR_H__ #include #include #define PI 3.14159265358979 #define LY_PER_PARSEC 3.261633 struct QueryVariable { char *name; char *value; static QueryVariable *head; QueryVariable *next; QueryVariable (const char *varName, const char *varValue); static void Append (QueryVariable *newLast); static void MakeAndAppend (const char *varName, const char *varValue); static const char *FindName (const char *varName); ~QueryVariable(); }; struct RawPosition { bool bRA, bDec, bDistance, bDistanceError, bDistanceSource; // if a component position, any new data?: bool bRefinedRA, bRefinedDec, bRefinedDist; UCHAR RA_hr; UCHAR RA_min; float RA_sec; short Dec_deg; UCHAR Dec_arcmin; float Dec_arcsec; double Distance, DistanceError; char DistanceSource[11]; DATE_STRUCT LastUpdated; double Epoch; }; struct RawSpectrum { bool bSpectralClass; char SpectralClass[51]; bool bLuminosityClass; char LuminosityClass[51]; bool bSpectrumSource; char SpectrumSource[11]; DATE_STRUCT LastUpdated; }; bool display_id (HDBC hdbc, HSTMT hstmt, long id); int ParseToList (const char *szQueryString); bool RDD2XYZ (const struct RawPosition *pos, double &x, double &y, double &z, bool bUseGalacticCoords); bool FetchRawPosition (HSTMT hstmt, long id, struct RawPosition *pos); const char *CatAbbrev2LongName (const char *abbrev); void FetchCatalogNames (HSTMT hstmt); bool FetchMainSystemName (HSTMT hstmt, long id, char *nameBuf); bool FetchRawSpectrum (HSTMT hstmt, long id, RawSpectrum &spec); void DisposeCatalogNames(); const char *FormatWithSignificantDigits (double value, double standardError, const char *flagsWidth = NULL, char *buf = NULL); #endif /* _SEARCH_STAR_H__ */