00001 /** 00002 * \file scrnunit.h <mi32/scrnunit.h> 00003 * \brief Definitions for SCREENUNIT constants and functions 00004 * 00005 * \if NODOC 00006 * $Id: scrnunit.h_v 1.13 2003/10/17 15:48:45 mju Exp $ 00007 * 00008 * $Log: scrnunit.h_v $ 00009 * Revision 1.13 2003/10/17 15:48:45 mju 00010 * Fix comment. 00011 * 00012 * Revision 1.12 2003/09/25 21:29:07 dwilliss 00013 * Don't capitalize enum any more. Genitor needed it, doxygen doesn't like it. 00014 * 00015 * Revision 1.11 2003/09/15 13:49:56 fileserver!dwilliss 00016 * Doxygen 00017 * 00018 * Revision 1.10 2003/02/07 14:35:44 mju 00019 * Fix Mac warning. 00020 * 00021 * Revision 1.9 2003/01/23 22:37:01 mju 00022 * Add SCREENUNIT_Millimeters. 00023 * 00024 * Revision 1.8 2002/10/10 17:33:52 mju 00025 * Add GetScreenPixelSizeMM. 00026 * 00027 * Revision 1.7 2001/12/21 15:34:59 dwilliss 00028 * Have to include stddefns.h or ENUM not defined 00029 * 00030 * Revision 1.6 2001/12/20 21:47:19 mju 00031 * Enum docs. 00032 * 00033 * Revision 1.5 2001/09/04 20:36:30 mju 00034 * Use void* for DC so don't need defn. 00035 * 00036 * Revision 1.4 2001/09/04 20:22:48 mju 00037 * Add MwinGetPixelSizeMM(). 00038 * 00039 * Revision 1.3 2001/09/04 15:11:37 mju 00040 * Change SCREENUNIT to enum. 00041 * Add ConvertScreenUnits() which doesn't require pixelsize. 00042 * 00043 * Revision 1.2 2000/10/12 21:49:36 msmith 00044 * Genitor documentation. 00045 * 00046 * Revision 1.1 1999/04/28 14:22:25 mju 00047 * Initial revision 00048 * \endif 00049 **/ 00050 00051 #ifndef INC_MI32_SCRNUNIT_H 00052 #define INC_MI32_SCRNUNIT_H 00053 00054 #ifndef INC_MI32_STDDEFNS_H 00055 #include <mi32/stddefns.h> 00056 #endif 00057 00058 //! Screen unit enumeration values. 00059 //! These values are stored in files and thus must not change. 00060 enum SCREENUNIT { 00061 SCREENUNIT_Inches = 0, 00062 SCREENUNIT_Millimeters = 1, 00063 SCREENUNIT_mm = SCREENUNIT_Millimeters, 00064 SCREENUNIT_Points = 2, 00065 SCREENUNIT_Pixels = 3, 00066 SCREENUNIT_1OverInches = 4, 00067 SCREENUNIT_MetersAtCurrentScale = 5, 00068 SCREENUNIT_Arbitrary = 6, 00069 SCREENUNIT_Object = 7, 00070 SCREENUNIT_COUNT = 8 00071 }; 00072 00073 00074 //! Convert SCREENUNIT value using given "pixel size". 00075 //! @return Converted value 00076 double ConvertScreenUnits ( 00077 double val, //!< Input value 00078 double mmPerPixel, //!< Millimeters per pixel 00079 double MapScale, //!< Map scale 00080 int iunit, //!< Input units (SCREENUNIT_...) 00081 int ounit //!< Output units (SCREENUNIT_...) 00082 ); 00083 00084 //! Convert SCREENUNIT value using pixel size determined from screen. 00085 //! @return Converted value 00086 double ConvertScreenUnits ( 00087 double val, //!< Input value 00088 int iunit, //!< Input units (SCREENUNIT_...) 00089 int ounit, //!< Output units (SCREENUNIT_...) 00090 double MapScale = 1.0 //!< Map scale 00091 ); 00092 00093 //! Get screen pixel size in millimeters. 00094 double GetScreenPixelSizeMM ( 00095 ); 00096 00097 #ifdef WIN32_NATIVE 00098 //! Get screen pixel size in millimeters using device context (WIN32_NATIVE only). 00099 double MwinGetPixelSizeMM ( 00100 void *hdc //!< Windows device context, 0 for default 00101 ); 00102 #endif 00103 00104 #endif // INC_MI32_SCRNUNIT_H
1.3.8-20040913