00001 /** 00002 * \file mi32/rvcdefns.h 00003 * \brief RVC Definitions Header File 00004 * 00005 * \if NODOC 00006 * $Id: rvcdefns.h_v 4.428 2004/04/07 23:04:44 scowan Exp $ 00007 * 00008 * $Log: rvcdefns.h_v $ 00009 * Revision 4.428 2004/04/07 23:04:44 scowan 00010 * Added a copy flag. 00011 * 00012 * Revision 4.427 2004/04/07 23:02:27 scowan 00013 * Added new flag. 00014 * 00015 * Revision 4.426 2004/03/22 18:14:46 scowan 00016 * Added field to link item. 00017 * 00018 * Revision 4.425 2003/11/14 15:35:50 mju 00019 * REmove mdlgMaintProjectFile. 00020 * 00021 * Revision 4.424 2003/11/10 18:45:07 mju 00022 * Add objitem.setobjectinfo. 00023 * 00024 * Revision 4.423 2003/11/06 23:04:17 scowan 00025 * Removed prototype of removed function. 00026 * 00027 * Revision 4.422 2003/10/27 17:14:12 scowan 00028 * Changed not selectable filt flag to be the same as filt not usable. 00029 * 00030 * Revision 4.421 2003/10/22 17:46:03 scowan 00031 * Deprecated some filt flags. 00032 * 00033 * Revision 4.420 2003/10/15 17:39:12 mju 00034 * Deprecate groupkey. 00035 * 00036 * Revision 4.419 2003/10/08 22:27:49 scowan 00037 * Removed unused function call. 00038 * 00039 * Revision 4.418 2003/10/06 20:06:30 scowan 00040 * Pruned unused rfunctions. 00041 * 00042 * Revision 4.417 2003/10/03 21:30:29 scowan 00043 * nc. 00044 * 00045 * Revision 4.416 2003/10/02 19:15:27 scowan 00046 * Removed get localized name function. 00047 * 00048 * Revision 4.415 2003/09/26 19:56:07 scowan 00049 * Adjustment of include files. 00050 * 00051 * Revision 4.414 2003/09/26 15:57:04 scowan 00052 * Removed open link file function. 00053 * 00054 * Revision 4.413 2003/09/26 14:47:06 scowan 00055 * Do not export function that will soon be deprecated. 00056 * 00057 * Revision 4.412 2003/09/25 22:25:13 scowan 00058 * Removed unused functions and methods. 00059 * 00060 * Revision 4.411 2003/09/22 19:56:27 scowan 00061 * Removed call to copy file raw, it has been replaced. 00062 * 00063 * Revision 4.410 2003/09/15 23:00:14 scowan 00064 * Added callback reason. 00065 * 00066 * Revision 4.409 2003/09/15 13:49:56 fileserver!dwilliss 00067 * Doxygen 00068 * 00069 * Revision 4.408 2003/09/02 17:10:44 scowan 00070 * Moved some prototypes. 00071 * 00072 * Revision 4.407 2003/09/02 16:56:36 dwilliss 00073 * Added COPYRVC flag to freeze computed fields 00074 * 00075 * Revision 4.406 2003/08/29 23:02:57 scowan 00076 * Removed unused functions. 00077 * 00078 * Revision 4.405 2003/08/29 21:45:27 scowan 00079 * Cleanup unused functions. 00080 * 00081 * Revision 4.404 2003/08/28 19:34:01 scowan 00082 * nc. 00083 * 00084 * Revision 4.403 2003/08/28 15:24:59 scowan 00085 * Removed use of fname obj list struct and functions. 00086 * 00087 * Revision 4.402 2003/08/27 21:31:26 scowan 00088 * Added structures and removed functions and other stuff. 00089 * 00090 * Revision 4.401 2003/08/15 16:42:05 scowan 00091 * Removed unused copy rvc flags. 00092 * 00093 * Revision 4.400 2003/08/13 21:43:24 scowan 00094 * Removed copy object "T" function prototypes. 00095 * 00096 * Revision 4.399 2003/08/11 19:05:29 scowan 00097 * Added another copy function. 00098 * 00099 * Revision 4.398 2003/07/21 19:04:34 mju 00100 * Add MAKELINKFLAG values for ColorComposite and ColorSeparate. 00101 * 00102 * Revision 4.397 2003/05/13 17:23:59 scowan 00103 * Added new object type. 00104 * 00105 * Revision 4.396 2003/05/12 19:22:13 mju 00106 * Make mfwritegen take const ptr. 00107 * 00108 * Revision 4.395 2003/05/07 14:50:31 scowan 00109 * Added new object types. 00110 * 00111 * Revision 4.394 2003/04/29 20:55:40 scowan 00112 * Added shape object type and function prototypes. 00113 * 00114 * Revision 4.393 2003/04/15 13:23:13 mju 00115 * Include rect.h 00116 * 00117 * Revision 4.392 2003/04/09 19:18:13 scowan 00118 * Added shape object type. 00119 * 00120 * Revision 4.391 2003/03/07 18:43:41 scowan 00121 * *** empty log message *** 00122 * 00123 * Revision 4.390 2003/03/07 18:43:22 scowan 00124 * *** empty log message *** 00125 * 00126 * Revision 4.389 2003/03/07 18:41:58 scowan 00127 * Added point type change callback struct. 00128 * 00129 * Revision 4.388 2003/03/04 21:01:18 scowan 00130 * nc. 00131 * 00132 * Revision 4.387 2003/01/28 19:03:00 mju 00133 * nc. 00134 * 00135 * Revision 4.386 2003/01/10 21:49:18 scowan 00136 * Comment out table and metadata otype's to remove a conflict with oracle include file. 00137 * Use rvc object enum values instead. 00138 * 00139 * Revision 4.385 2003/01/06 15:06:31 mju 00140 * Use void* for dlgparent in usernamepassword. 00141 * 00142 * Revision 4.384 2002/12/04 16:08:12 scowan 00143 * Changed parent dlg pointer, hope it works. 00144 * 00145 * Revision 4.383 2002/11/20 15:56:46 mju 00146 * Add initialization ctor to fnameinodeuc. 00147 * 00148 * Revision 4.382 2002/10/02 16:15:17 mju 00149 * Tweak comments to hopefully help surveyor do docs. 00150 * 00151 * Revision 4.381 2002/09/19 15:05:04 mju 00152 * Add OBJITEM ctor from filepath/inode. 00153 * 00154 * Revision 4.380 2002/09/16 17:02:24 mju 00155 * Add objitem::setitem() using filepath/inode. 00156 * 00157 * Revision 4.379 2002/09/11 18:00:06 mju 00158 * Add objitem::setobjectpath. 00159 * 00160 * Revision 4.378 2002/09/11 17:34:38 mju 00161 * Add objitem::isexisting. 00162 * 00163 * Revision 4.377 2002/09/10 21:50:05 mju 00164 * Add objitem::IsAssigned. 00165 * 00166 * Revision 4.376 2002/09/10 17:51:35 mju 00167 * Change objitem getobjectname/desc to return const fixedstr ref. 00168 * 00169 * Revision 4.375 2002/09/09 14:05:35 mju 00170 * Remove deprecated stuff. 00171 * Always prevent_memfunc. 00172 * 00173 * Revision 4.374 2002/09/06 16:10:54 mju 00174 * Add GETOBJFLAG_IniShared. 00175 * 00176 * Revision 4.373 2002/09/03 21:01:53 mju 00177 * Add OBJITEM ctor using name, desc, source. 00178 * 00179 * Revision 4.372 2002/08/30 14:06:00 mju 00180 * Remove obsolete flag. 00181 * Move seltabfield flags to <rvc/dialogs.h> 00182 * 00183 * Revision 4.371 2002/08/28 17:54:09 mju 00184 * Add MAKELINKFLAG_NoContrastTables. 00185 * 00186 * Revision 4.370 2002/08/23 13:24:41 mju 00187 * Remove objitem::setobjectname/desc using const UNICODE* as OBJECTNAME/DESC 00188 * has implicit ctor from const UNICODE* and thus will be used anyway. Having 00189 * overloads causes ambiguity when using MISTRING. 00190 * 00191 * Revision 4.369 2002/08/21 20:39:22 scowan 00192 * Deprecate old object name define. 00193 * 00194 * Revision 4.368 2002/08/20 15:12:11 mju 00195 * Remove obsolete dialog defines. 00196 * Use prevent_memfunc macro, still deprecated. 00197 * 00198 * Revision 4.367 2002/08/13 14:55:20 scowan 00199 * Added comment. 00200 * 00201 * Revision 4.366 2002/08/13 14:14:45 scowan 00202 * Added new filter reason. 00203 * 00204 * Revision 4.365 2002/08/07 22:20:37 dwilliss 00205 * Prototype for a new private function 00206 * 00207 * Revision 4.364 2002/06/10 19:50:02 mju 00208 * Add SELTABFIELD_AllowNone. 00209 * 00210 * Revision 4.363 2002/05/31 15:34:19 mju 00211 * Restore mfinitapplevel prototype. 00212 * 00213 * Revision 4.362 2002/05/30 15:21:30 mju 00214 * Remove obsolete mfinitapplevel prototype. 00215 * 00216 * Revision 4.361 2002/05/30 15:05:44 mju 00217 * Change rvcappfuncs.OpenFont to use const. 00218 * 00219 * Revision 4.360 2002/05/24 20:19:30 scowan 00220 * Added is equal to basic info. 00221 * 00222 * Revision 4.359 2002/05/23 15:07:39 scowan 00223 * Deprecate close all function. 00224 * 00225 * Revision 4.358 2002/05/15 19:47:39 mju 00226 * Remove unimplemented GETOBJFLAG_nochglvl/file. 00227 * 00228 * Revision 4.357 2002/05/03 21:58:07 scowan 00229 * Fixed is copyable. 00230 * 00231 * Revision 4.356 2002/05/03 21:31:45 scowan 00232 * Added is copyable function. 00233 * 00234 * Revision 4.355 2002/05/02 21:18:52 scowan 00235 * Added change object link. 00236 * 00237 * Revision 4.354 2002/05/01 21:41:08 mju 00238 * Add MfCloseFile overload using RVCFILEHANDLE reference. 00239 * 00240 * Revision 4.353 2002/03/20 15:57:39 mju 00241 * Unimplement Mfgetuniquename/mfmakevalidname as has RVC:: equivalents already. 00242 * 00243 * Revision 4.351 2002/03/08 18:16:05 scowan 00244 * Added methods and deprecated mem... of rvc..info structures. 00245 * 00246 * Revision 4.350 2002/02/19 18:03:42 scowan 00247 * Changed basic info object name and desc to use fixedstring<>. 00248 * 00249 * Revision 4.349 2002/02/15 16:36:53 mju 00250 * Make SELTABFIELD enum. 00251 * 00252 * Revision 4.348 2002/02/14 21:43:46 mju 00253 * Add OBJITEM::SetNew. 00254 * 00255 * Revision 4.347 2001/12/27 18:32:02 scowan 00256 * Added method to obj item. 00257 * Removed retired functions. 00258 * 00259 * Revision 4.346 2001/12/10 20:44:09 scowan 00260 * Retired some unused rvc functions. 00261 * 00262 * Revision 4.345 2001/11/01 17:53:03 mju 00263 * Add OBJITEM::SetObjectName/Description using Unicode. 00264 * 00265 * Revision 4.344 2001/11/01 16:57:35 scowan 00266 * Added object type. 00267 * 00268 * Revision 4.343 2001/10/18 14:27:28 scowan 00269 * Added methods to set OBJITEM name and description. 00270 * 00271 * Revision 4.342 2001/09/28 17:56:50 mju 00272 * Add default parm for MfFindFilePath 00273 * 00274 * Revision 4.341 2001/09/20 15:37:04 mju 00275 * Need MfGenerateLockName/Ex prototypes for TNTatlas on Unix. 00276 * 00277 * Revision 4.340 2001/09/19 14:46:29 mju 00278 * Add functions and class to allow disabling of prompt for missing linked file. 00279 * 00280 * Revision 4.339 2001/09/13 20:50:41 mju 00281 * Unify X and MFC versions of object selection dialog prototypes. 00282 * 00283 * Revision 4.338 2001/07/25 15:33:32 scowan 00284 * Flag in wrong place. 00285 * 00286 * Revision 4.337 2001/07/25 15:17:01 scowan 00287 * Added new rvcmode flag. 00288 * 00289 * Revision 4.336 2001/07/19 16:37:48 scowan 00290 * Added clear method to objitem. 00291 * Prevent genitor from adding functions to objitem docs. 00292 * 00293 * Revision 4.335 2001/07/17 20:20:38 scowan 00294 * *** empty log message *** 00295 * 00296 * Revision 4.334 2001/07/17 15:44:21 mju 00297 * Add #undef MIMFCDLLEXPORT at end. 00298 * 00299 * Revision 4.333 2001/07/16 15:24:39 mju 00300 * Use const in MfEditNameDesc. 00301 * 00302 * Revision 4.332 2001/07/16 14:08:28 mju 00303 * Add defaults for filtfunc/data for MfFindObject. 00304 * 00305 * Revision 4.331 2001/07/10 13:38:20 mju 00306 * Add SELTABFIELD_NoInternal. 00307 * 00308 * Revision 4.330 2001/07/06 20:43:07 mju 00309 * Add MfGenerateLockNames() and retire old lock name gernation functions. 00310 * 00311 * Revision 4.329 2001/07/05 15:59:23 mju 00312 * Add OBJITEM::IsResolved(). 00313 * 00314 * Revision 4.328 2001/07/05 13:06:12 mju 00315 * Remove unwanted ; 00316 * 00317 * Revision 4.327 2001/06/29 14:57:45 mju 00318 * Add functions for general lite usability testing. 00319 * 00320 * Revision 4.326 2001/06/25 15:11:58 mju 00321 * Add MfGetAutoLinkPatternList prototype. 00322 * 00323 * Revision 4.325 2001/06/22 22:22:43 mju 00324 * Add MAKELINKFLAGS. 00325 * 00326 * Revision 4.324 2001/06/15 19:19:13 mju 00327 * Use const in MfCompareDateTime. 00328 * Add OBJITEM::GetObjectName/Description. 00329 * Change OBJITEM::GetObjectType() to return OBJTYPE. 00330 * 00331 * Revision 4.323 2001/06/15 15:55:17 scowan 00332 * Changed file open widget poarent type to void*, cannot have changing 00333 * type in a shared library. 00334 * 00335 * Revision 4.322 2001/06/14 17:15:48 mju 00336 * Add RVCFILE_NoDialog defn. 00337 * Make MfFileOpen() using FILEPATH a function instead of inline. 00338 * 00339 * Revision 4.321 2001/06/14 15:58:17 scowan 00340 * Nothing. 00341 * 00342 * Revision 4.320 2001/06/13 16:54:51 scowan 00343 * Adeed objitem, objectname, objectdesc, obectsource to the RVC namespqace. 00344 * Added typedefs for original names. 00345 * 00346 * Revision 4.319 2001/06/07 15:39:19 scowan 00347 * More const. 00348 * 00349 * Revision 4.318 2001/06/01 16:00:08 scowan 00350 * Export YAFF. 00351 * 00352 * Revision 4.317 2001/05/15 17:30:53 scowan 00353 * Added extra read list function. 00354 * 00355 * Revision 4.316 2001/04/09 20:09:30 scowan 00356 * *** empty log message *** 00357 * 00358 * Revision 4.315 2001/01/18 22:04:30 scowan 00359 * Added redo chagnes function. 00360 * 00361 * Revision 4.314 2000/12/29 22:50:54 msmith 00362 * Genitor documentation. 00363 * 00364 * Revision 4.313 2000/12/27 17:37:58 scowan 00365 * Added get filepath function. 00366 * 00367 * Revision 4.312 2000/12/20 15:41:40 mju 00368 * Use ValidMultiProto instead of ValidListProto for older MdlgGetObjectSet function. 00369 * 00370 * Revision 4.311 2000/12/19 17:54:30 msmith 00371 * Fixed GetObjects - broken in documentation. 00372 * 00373 * Revision 4.310 2000/12/19 17:04:54 mju 00374 * Remove obsolete #defines. 00375 * 00376 * Revision 4.309 2000/12/19 16:41:59 msmith 00377 * Genitor documentation. 00378 * 00379 * Revision 4.308 2000/12/01 22:55:43 mju 00380 * Add rvcfilehandle::IsOpen(). 00381 * 00382 * Revision 4.307 2000/11/21 16:38:56 scowan 00383 * Fixed TNTserver build define. 00384 * 00385 * Revision 4.306 2000/11/06 18:15:17 scowan 00386 * *** empty log message *** 00387 * 00388 * Revision 4.305 2000/11/06 17:51:45 scowan 00389 * *** empty log message *** 00390 * 00391 * Revision 4.304 2000/11/06 17:46:35 scowan 00392 * Do not export Mdlg object selection if building for TNTserver. 00393 * 00394 * Revision 4.303 2000/11/02 22:52:48 dwilliss 00395 * Export all the Mdlg functions from mimfc.dll for WIN32_NATIVE 00396 * 00397 * \endif 00398 **/ 00399 00400 #ifndef INC_MI32_RVCDEFNS_H 00401 #define INC_MI32_RVCDEFNS_H 00402 00403 #if defined (__cplusplus) 00404 00405 #ifndef INC_MI32_STDDEFNS_H 00406 #include <mi32/stddefns.h> 00407 #endif 00408 00409 #ifndef INC_MI32_FIXEDSTR_H 00410 #include <mi32/fixedstr.h> 00411 #endif 00412 00413 #ifndef INC_MI32_FILEPATH_H 00414 #include <mi32/filepath.h> 00415 #endif 00416 00417 #ifndef INC_MI32_RECT_H 00418 #include <mi32/rect.h> 00419 #endif 00420 00421 #ifndef INC_MI32_MCB_H 00422 #include <mi32/mcb.h> 00423 #endif 00424 00425 #ifndef INC_RVC_OBJTYPE_H 00426 #include <rvc/objtype.h> 00427 #endif 00428 00429 #ifdef RVCLOWDLL 00430 #define RVCLOWLIBEXPORT MI_DLLEXPORT 00431 #else 00432 #define RVCLOWLIBEXPORT MI_DLLIMPORT 00433 #endif 00434 00435 #ifdef RVCAPPDLL 00436 #define RVCAPPLIBEXPORT MI_DLLEXPORT 00437 #define RVCAPPCLASSEXPORT MI_DLLCLASSEXPORT 00438 #else 00439 #define RVCAPPLIBEXPORT MI_DLLIMPORT 00440 #define RVCAPPCLASSEXPORT MI_DLLCLASSIMPORT 00441 #endif 00442 00443 #include <mi32/hdrtypes.h> 00444 00445 #ifndef INC_MI32_CRYPTO_H 00446 #include <mi32/crypto.h> 00447 #endif 00448 00449 //! Forward declarations 00450 struct DREGION; 00451 struct RVCCADINFO; 00452 struct RVCRASTINFO; 00453 struct RVCTININFO; 00454 struct RVCVECTINFO; 00455 struct TEXTSTYLE; 00456 struct TRANSPARM; 00457 00458 namespace RVC { 00459 class OBJTYPESET; 00460 class OBJECT; 00461 } 00462 00463 00464 #define MfValidNameChar(c) ((c)=='_'||(c)>='A'&&(c)<='Z'||(c)>='a'&&(c)<='z'||(c)>='0'&&(c)<='9'||(c)>=160) 00465 #define FOLDERSEPARATOR ' ' 00466 #define OBJTYPESEPARATOR '.' 00467 00468 /*--------------------------------------------------------------------------*/ 00469 /* Definitions of basic object types supported by RVC */ 00470 /*--------------------------------------------------------------------------*/ 00471 /* mode for opening rvc objects of all kinds */ 00472 #define RVCMODE_Mask 0x7F000000 00473 #define RVCMODE_WriteAttempt 0x10000000 //!< Attempt to open for write, else open for read 00474 #define RVCMODE_Read 0x40000000 00475 #define RVCMODE_Write 0x20000000 00476 #define RVCMODE_RW 0x60000000 00477 #define RVCMODE_RWAttempt 0x70000000 00478 #define RVCMODE_ReadAhead 0x08000000 00479 #define RVCMODE_Bogus 0x04000000 00480 00481 /* mode for opening rvc files */ 00482 #define RVCFILE_OpenMask 0x000000FF 00483 #define RVCFILE_ReadLock 0x00000001 00484 #define RVCFILE_WriteLock 0x00000002 00485 #define RVCFILE_WriteLockAttempt 0x00000004 00486 #define RVCFILE_SharedLock 0x00000008 //!< Not Implemented Yet 00487 #define RVCFILE_NoLock 0x00000010 //!< Not to be used unless file is system file (i.e. icons.ref) 00488 #define RVCFILE_ReadAbsolute 0x00000020 //!< File is to be opened read-only, no lock file and no possibility of change 00489 #define RVCFILE_NoDialog 0x00000040 //!< Don't display dialog if file is locked, just return error 00490 #define RVCFILE_WriteAbsolute 0x00000080 //!< Override ReadAbsolute system flag for a specific file 00491 00492 #define RVCFILE_TempFileMask 0x0000FF00 00493 #define RVCFILE_DeleteOnClose 0x00000100 00494 #define RVCFILE_DeleteOnExit 0x00000200 00495 #define RVCFILE_NoDelete 0x00000800 00496 00497 #define RVCFILE_ForceUnlockBtn 0x00040000 //!< Force 'unlock' button in mxopenfl.c 00498 00499 /************************************************************************** 00500 * Listing of RVC object types 00501 **************************************************************************/ 00502 00503 //! ----- Top level RVC objects ----- 00504 #define OTYPE_ALL 0 //!< Used by Mf??? functions to allow all objects 00505 #define OTYPE_FILE 1 00506 #define OTYPE_FOLDER 2 //!< An object to contain other objects 00507 #define OTYPE_RASTER 3 //!< Raster object 00508 #define OTYPE_VECTOR 4 //!< Vector object 00509 #define OTYPE_CAD 5 //!< CAD object 00510 #define OTYPE_DBASE 6 //!< General database object 00511 #define OTYPE_STYLE 7 //!< Drawing style object 00512 #define OTYPE_DBQUERY 8 //!< Generic database query string 00513 #define OTYPE_FILTER 9 //!< Spatial filter description 00514 #define OTYPE_VIDEOSEQ 10 //!< Ref for sequence of frames on video disk 00515 #define OTYPE_PRTCOLORBAL 30 //!< Printer color balance 00516 #define OTYPE_DISP_GROUP 37 //!< Display group layout information 00517 #define OTYPE_DISP2DWINDOW 38 //!< Display window layout information 00518 #define OTYPE_TIN 39 //!< TIN object 00519 #define OTYPE_LEGEND 41 //!< Legend object 00520 #define OTYPE_REGION 45 //!< Region object 00521 #define OTYPE_DISP_LAYOUT 54 //!< Display layout information 00522 #define OTYPE_SML 55 //!< Stand-alone SML Script 00523 #define OTYPE_SPECTRAL 56 //!< Spectral object 00524 #define OTYPE_RASTERSET 57 //!< Raster Set object 00525 #define OTYPE_DISP_SIM3D 59 //!< Display 3D simulation parameters object 00526 #define OTYPE_HYPERSPECTRAL 60 //!< HyperSpectral object 00527 #define OTYPE_LAYOUTTEMPLATE 65 //!< Layout Template object 00528 #define OTYPE_THUMBNAIL 66 //!< Tumbnail object 00529 #define OTYPE_HOUGHPARMS 71 //!< Hough transformation parameters object 00530 //!#define OTYPE_SHAPE 72 // Geometric "Shape" object (Shapefile, Oracle Spatial, ...) [ USE RVC::OBJECT_Shape ] 00531 00532 //! ----- RVC subobjects common to multiple objects ----- 00533 #define OTYPE_GEOREF 11 //!< Georeference information 00534 #define OTYPE_PAGELAYOUT 12 //!< Information for page layouts 00535 #define OTYPE_HYPER 13 //!< Hyper-index information 00536 #define OTYPE_DBFORM 14 //!< Database display layout 00537 #define OTYPE_TIEPOINT 15 //!< Tie point list 00538 #define OTYPE_DISPPARM 40 //!< Display parameter structure 00539 #define OTYPE_TEXT 42 //!< Generic Text Object 00540 #define OTYPE_ASSOCIATION 46 //!< External file association object 00541 #define OTYPE_QTREE 47 //!< Search Quad Tree object 00542 #define OTYPE_DBPARM 48 //!< Database parameters object 00543 #define OTYPE_THEME 49 //!< Theme Mapping parameters object 00544 //!#define OTYPE_METADATA 50 // Metadata object - text [ CONFLICTS WITH ORACLE INCLUDE FILE, USE RVC::OBJECT_Metadata ] 00545 #define OTYPE_EDITPARM 53 //!< Object Editor parameter structure 00546 #define OTYPE_SPATIALTREEOLD 67 //!< DEPRECATED 00547 #define OTYPE_SPATIALTREEOLD2 69 //!< DEPRECATED 00548 #define OTYPE_SPATIALTREE 70 //!< Vector element sort tree 00549 //!#define OTYPE_ICMPROFILE 74 // ICM Profile object [ USE RVC::OBJTYPE_ICMProfile ] 00550 00551 //! ----- RVC subobjects common to raster objects ----- 00552 #define OTYPE_HISTO 16 //!< Raster histogram 00553 #define OTYPE_CONTAB 17 //!< Contrasting table 00554 #define OTYPE_2DHISTINFO 18 //!< Information about 2-D histogram 00555 #define OTYPE_COLMAP 19 //!< Color table for rasters 00556 #define OTYPE_RASTDBASE 20 //!< Database for raster cells 00557 #define OTYPE_FREQPROCINFO 21 //!< Information to match frequency-domain rasters 00558 #define OTYPE_RASTERTREND 22 //!< Trend Information 00559 #define OTYPE_SPOTHEADER 23 //!< Header (leader) file from SPOT tape 00560 #define OTYPE_CAMERACALIB 24 //!< Camera calibration information 00561 #define OTYPE_SENSORINFOOLD 58 //!< Sensor calibration information for spectral bands (OLD) 00562 #define OTYPE_HYPERHIST 62 //!< Hyperspectral histogram sub-object 00563 #define OTYPE_HYPERSENSOR 63 //!< Hyperspectral sensor sub-object 00564 #define OTYPE_SENSORINFO 64 //!< Sensor calibration information for spectral bands 00565 00566 //! ----- RVC subobjects common to vector objects ----- 00567 #define OTYPE_POINTDBASE 25 //!< Database for point elements 00568 #define OTYPE_LINEDBASE 26 //!< Database for line elements 00569 #define OTYPE_POLYDBASE 27 //!< Database for polygon elements 00570 #define OTYPE_NODEDBASE 28 //!< Database for node elements 00571 #define OTYPE_VECTDBASE 44 //!< Database for vector objects 00572 00573 //! ----- RVC subobjects common to CAD objects ----- 00574 #define OTYPE_CADDBASE 29 //!< Database for CAD objects 00575 00576 //! ----- RVC subobjects common to SHAPE objects ----- 00577 //!#define OTYPE_SHAPEDBASE 73 // Database for CAD objects 00578 00579 //! ----- RVC subobjects common to TIN objects ----- 00580 #define OTYPE_TINDBASE 43 //!< Database for TIN objects 00581 00582 //! ----- RVC subobjects common to database objects ----- 00583 //!#define OTYPE_TABLE 51 // Table OTYPE tag for databases [ CONFLICTS WITH ORACLE INCLUDE FILE, USE RVC::OBJECT_Table ] 00584 #define OTYPE_INVDBLIST 52 //!< Database table to element lists 00585 #define OTYPE_DBCONSTRAINT 61 //!< Database table constraint information 00586 #define OTYPE_DBINDEX 68 //!< Database table constraint information 00587 00588 //! ----- RVC objects used in .REF files ----- 00589 #define OTYPE_PRINTDEF 31 //!< Description for raster printer devices 00590 #define OTYPE_PLOTDEF 32 //!< Description for pen plotter devices 00591 #define OTYPE_OFONT 33 //!< Outline(stroke) font 00592 #define OTYPE_GENERICREF 34 //!< Generic reference object, not user-viewable object 00593 #define OTYPE_SCANDEF 35 //!< Description for scanners 00594 #define OTYPE_XYDIGDEF 36 //!< Description for XY digitizer devices 00595 00596 #define OTYPE_LAST 75 //!< Update rvcmain.c and messages.txt [rvc] section when change 00597 00598 #define RVCCONV_RASTER RVCCONV_RastInfo 00599 #define RVCCONV_CAD RVCCONV_CADInfo 00600 #define RVCCONV_HISTO RVCCONV_HistInfo 00601 #define RVCCONV_CONTAB RVCCONV_ConTab 00602 #define RVCCONV_COLMAP RVCCONV_CMapInfo 00603 #define RVCCONV_DBASE RVCCONV_DbaseInfo 00604 #define RVCCONV_GEOREF RVCCONV_GeoRefInfo 00605 #define RVCCONV_VECTOR RVCCONV_VectInfo 00606 #define RVCCONV_TIEPOINT RVCCONV_TiePointInfo 00607 #define RVCCONV_TIN RVCCONV_TINInfo 00608 #define RVCCONV_CAMERACALIB RVCCONV_CameraInfo 00609 #define RVCCONV_FILTER RVCCONV_FiltInfo 00610 #define RVCCONV_STYLE RVCCONV_StyleInfo 00611 #define RVCCONV_REGION RVCCONV_RegionInfo 00612 #define RVCCONV_DISP2DWINDOW 0 00613 #define RVCCONV_DISP2DGROUP 0 00614 00615 /*----------------------------------------------------------------------------*/ 00616 /* Definitions for general object headers */ 00617 /*----------------------------------------------------------------------------*/ 00618 00619 struct RVCDATETIME { 00620 UINT8 year; //!< Add 1900 to get actual year 00621 UINT8 month; //!< 1-12 00622 UINT8 day; //!< 1-31 00623 UINT8 hour; //!< 0-23 00624 UINT8 minute; //!< 0-59 00625 UINT8 second; //!< 0-59 00626 UINT16 count; //!< count; if more than one object created with this time 00627 }; 00628 00629 namespace RVC { 00630 00631 typedef FIXEDSTRING<16> OBJECTNAME, OBJECTSOURCE; 00632 typedef FIXEDSTRING<64> OBJECTDESC; 00633 00634 } //! End of RVC namespace 00635 00636 typedef RVC::OBJECTNAME RVCOBJECTNAME; 00637 typedef RVC::OBJECTSOURCE RVCOBJECTSOURCE; 00638 typedef RVC::OBJECTDESC RVCOBJECTDESC; 00639 00640 //! Basic rvc info structure. 00641 struct RVCBASICINFO { 00642 RVC::OBJECTNAME name; //!< Object name 00643 RVC::OBJECTDESC desc; //!< Description 00644 RVCDATETIME create; //!< Create date 00645 RVCDATETIME lastmod; //!< Modification date 00646 RVCDATETIME lastused; //!< Used date 00647 RVC::OBJECTSOURCE source; //!< Source 00648 00649 RVCBASICINFO ( 00650 ) {Clear();} 00651 00652 void Clear ( 00653 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00654 00655 bool IsEqual ( 00656 const RVCBASICINFO& rhs 00657 ) const {return (memcmp(static_cast<const void*>(this), static_cast<const void*>(&rhs), sizeof(*this)) == 0);} 00658 00659 }; 00660 00661 inline bool operator== ( 00662 const RVCBASICINFO& lhs, 00663 const RVCBASICINFO& rhs 00664 ) {return (lhs.IsEqual(rhs));} 00665 00666 inline bool operator!= ( 00667 const RVCBASICINFO& lhs, 00668 const RVCBASICINFO& rhs 00669 ) {return (!lhs.IsEqual(rhs));} 00670 00671 00672 //! General rvc info structure. 00673 struct RVCGENINFO : public RVCBASICINFO { 00674 UINT32 objtype; //!< Object type 00675 RVCINODENUM objectinode; //!< Object inode 00676 RVCINODENUM parentinode; //!< Parent inode 00677 INT32 Size; //!< Object size 00678 00679 RVCGENINFO ( 00680 ) {Clear();} 00681 00682 void Clear ( 00683 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00684 00685 RVC::OBJTYPE GetObjectType ( 00686 ) const { return (static_cast<RVC::OBJTYPE>(this->objtype)); } 00687 }; 00688 00689 //! Array info structure. 00690 struct RVCARRAYINFO : public RVCGENINFO { 00691 INT32 NumItems; //!< Number of items 00692 INT32 ItemSize; //!< Item size 00693 00694 RVCARRAYINFO ( 00695 ) {Clear();} 00696 00697 RVCARRAYINFO ( 00698 const RVCGENINFO& ginfo 00699 ) {Clear();*static_cast<RVCGENINFO*>(this) = ginfo;} 00700 00701 RVCARRAYINFO& operator= ( 00702 const RVCGENINFO& ginfo 00703 ) {*static_cast<RVCGENINFO*>(this) = ginfo; return (*this);} 00704 00705 void Clear ( 00706 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00707 00708 }; 00709 00710 //! General list info structure. 00711 struct RVCGENLISTINFO : public RVCGENINFO { 00712 INT32 NumItems; //!< Number of items 00713 INT32 MaxItemSize; //!< Maximum item size 00714 00715 RVCGENLISTINFO ( 00716 ) {Clear();} 00717 00718 RVCGENLISTINFO ( 00719 const RVCGENINFO& ginfo 00720 ) {Clear();*static_cast<RVCGENINFO*>(this) = ginfo;} 00721 00722 RVCGENLISTINFO& operator= ( 00723 const RVCGENINFO& ginfo 00724 ) {*static_cast<RVCGENINFO*>(this) = ginfo; return (*this);} 00725 00726 void Clear ( 00727 ) {memset(static_cast<void*>(this), 0, sizeof(*this));} 00728 00729 }; 00730 00731 //! Disallow memset/memcpy. 00732 PREVENT_MEMFUNC(RVCBASICINFO) 00733 PREVENT_MEMFUNC(RVCGENINFO) 00734 PREVENT_MEMFUNC(RVCARRAYINFO) 00735 PREVENT_MEMFUNC(RVCGENLISTINFO) 00736 00737 00738 //! Structure to hold RVC link information. 00739 struct RVCLINKDATAEX { 00740 FILEPATH m_FilePath; //!< Path name 00741 MISTRING m_ObjName; //!< Holds full name returned by MfGetObjectName() 00742 00743 bool IsEqual ( 00744 const RVCLINKDATAEX& rhs 00745 ) const {return (m_FilePath == rhs.m_FilePath && m_ObjName == rhs.m_ObjName);} 00746 00747 }; 00748 00749 inline bool operator== ( 00750 const RVCLINKDATAEX& lhs, 00751 const RVCLINKDATAEX& rhs 00752 ) {return (lhs.IsEqual(rhs));} 00753 00754 inline bool operator!= ( 00755 const RVCLINKDATAEX& lhs, 00756 const RVCLINKDATAEX& rhs 00757 ) {return (!lhs.IsEqual(rhs));} 00758 00759 00760 namespace RVC { 00761 00762 struct LINKITEM { 00763 FILEPATH m_Filename; 00764 MISTRING m_ObjName; 00765 OBJTYPE m_ObjType; 00766 RVCINODENUM m_SrcInode; //!< The source object that contains the link 00767 00768 LINKITEM ( 00769 ) : 00770 m_ObjType(OBJTYPE_All), 00771 m_SrcInode(-1) 00772 {} 00773 00774 }; 00775 00776 } //! End of RVC namespace 00777 00778 00779 //! GUI functions structure. 00780 struct RVCGUIFUNCS { 00781 INT32 size; //!< Size 00782 int (*GetFile)(void*, UNICODE*, const UNICODE*, void*, int (*)(UNICODE*, char*, void*), void*, UINT32); //! Get a file 00783 int (*OpenFile)(void*, const UNICODE*, UINT32); //! Open a file 00784 int (*ChangeFileLock)(void*, int, UINT32); //! Change the lock on a file 00785 void (*AddCallback)(McbCallbackFunc, void*, UINT32); //! Add a callback 00786 int (*UsernamePasswordDialog)(void *dlgparent, UNICODE*, int, int*, int*, UINT32); //! Username / password dialog 00787 void (*DisplayErrorCode)(void*, int); //! Display an error code 00788 int (*OpenFileEx)(void*, const FILEPATH&, UINT32); //! Open a file 00789 }; 00790 00791 //! App functions structure. 00792 struct RVCAPPFUNCS { 00793 INT32 size; //!< Size 00794 int (*GetStringExtents)(TEXTSTYLE*, DPOINT2D*, INT32, UINT32, const UNICODE*, DRECT2D*); //! Get the extents of a string 00795 int (*GetFontName)(int, UNICODE*); //! Get a font name 00796 int (*OpenFont)(const UNICODE*); //! Open a font 00797 int (*GetStringExtentsJustify)(TEXTSTYLE*, DPOINT2D*, INT32, UINT32, const UNICODE*, DRECT2D*); //! Get the extents of a justified string 00798 }; 00799 00800 /*----------------------------------------------------------------------------*/ 00801 /* Flags for linking to external objects */ 00802 /*----------------------------------------------------------------------------*/ 00803 00804 #define RVCLINKFLAG_LoHi (0x00000001) /* Linked object stored LoHi */ 00805 #define RVCLINKFLAG_HiLo (0x00000002) /* Linked object stored HiLo */ 00806 #define RVCLINKFLAG_RO (0x00000004) /* Linked object is on read only media (internal) */ 00807 #define RVCLINKFLAG_Modified (0x00000008) /* Linked object may have been modified */ 00808 00809 /*----------------------------------------------------------------------------*/ 00810 /* Point conversion modes for vector and CAD */ 00811 /*----------------------------------------------------------------------------*/ 00812 00813 #define VECTMODE_ConvTo3D 0x0001 //!< convert 2D->3D 00814 #define VECTMODE_ConvTo2D 0x0002 //!< convert 3D->2D 00815 #define VECTMODE_Mask 0x0003 //!< Mask for currently valid bits 00816 00817 /*----------------------------------------------------------------------------*/ 00818 /* Values for PointType fields in headers */ 00819 /*----------------------------------------------------------------------------*/ 00820 00821 #define VPOINT_2DXY 1 //!< 2-D coordinates, X and Y given (default) 00822 #define VPOINT_2DXZ 2 //!< 2-D coordinates, X and Z given 00823 #define VPOINT_2DYZ 3 //!< 2-D coordinates, Y and Z given 00824 #define VPOINT_3DXY 4 //!< 3-D coordinates, X, Y given, Z constant 00825 #define VPOINT_3DXZ 5 //!< 3-D coordinates, X, Z given, Y constant 00826 #define VPOINT_3DYZ 6 //!< 3-D coordinates, Y, Z given, X constant 00827 #define VPOINT_3DXYZ 7 //!< 3-D coordinates, X, Y and Z given 00828 00829 /*----------------------------------------------------------------------------*/ 00830 /* FNAMEINODE/FNAMEINODEUC structures */ 00831 /*----------------------------------------------------------------------------*/ 00832 00833 //! Filename / inode structure. 00834 struct FNAMEINODEUC { 00835 UNICODE *filename; //!< Filename 00836 RVCINODENUM inode; //!< Inode 00837 FNAMEINODEUC *next; //!< Next inode 00838 RVCGENINFO *objinfo; //!< Object information 00839 void *userdata; //!< Reference data attached to the entry, useful for Motif list widgets 00840 FNAMEINODEUC ( 00841 ) { memset(this,0,sizeof(*this)); } 00842 }; 00843 00844 /*----------------------------------------------------------------------------*/ 00845 /* RVCFILELOCK structure Used in MfGetFileLockInfo() */ 00846 /*----------------------------------------------------------------------------*/ 00847 00848 //! File lock structure. 00849 struct RVCFILELOCK { 00850 int serialnum; //!< TNTmips key serial number 00851 int processid; //!< Process ID 00852 int userid; //!< User ID if OS uses one 00853 int parentid; //!< Parent process ID if OS uses one 00854 UNICODE username[64]; //!< Owner of the lock 00855 UNICODE stationname[64]; //!< Station lock was generated from 00856 RVCDATETIME locktime; //!< Time that the lock was created 00857 int IsReadOnly; //!< File requested is read only 00858 }; 00859 00860 /*----------------------------------------------------------------------------*/ 00861 /* Definitions (flags) for MfGet[File|Object]Status() */ 00862 /*----------------------------------------------------------------------------*/ 00863 00864 #define RVCFS_ReadOnly 0x00000001 00865 #define RVCFS_ReadLocked 0x00000002 00866 #define RVCFS_Writable 0x00000004 00867 #define RVCFS_WriteLocked 0x00000008 00868 #define RVCFS_Modified 0x00000010 00869 #define RVCFS_Tempfile 0x00000020 00870 #define RVCFS_TNTlite 0x00000040 //!< File was created by TNTlite 00871 #define RVCFS_Open 0x00000080 //!< File is currently opened 00872 00873 #define RVCOS_Composite 0x00000001 00874 #define RVCOS_Free 0x00000002 00875 #define RVCOS_Opened 0x00000004 00876 #define RVCOS_ReadOnly 0x00000008 00877 #define RVCOS_Writable 0x00000010 00878 #define RVCOS_Link 0x00000020 00879 #define RVCOS_ViewProtected 0x00000040 00880 #define RVCOS_EditProtected 0x00000080 00881 #define RVCOS_Bogus 0x00000100 00882 #define RVCOS_TNTlite 0x00000200 //!< Object was created by TNTlite 00883 #define RVCOS_BadInode 0x00000400 00884 00885 /*----------------------------------------------------------------------------*/ 00886 /* Definitions (flags) for MfCopyObject() */ 00887 /*----------------------------------------------------------------------------*/ 00888 00889 #define COPYRVC_SubObjects 0x00000001 //!< Copy subobjects under object 00890 #define COPYRVC_RasterLinks 0x00000002 //!< Transfer raster links instead of copying the raster 00891 #define COPYRVC_DBaseLinks 0x00000004 //!< Transfer dbase links instead of copying the dbase 00892 #define COPYRVC_DemoteIdentityTables 0x00000008 //!< Demote identity tables in MfDatabaseJoin() because they can no longer exist 00893 #define COPYRVC_PointDBase 0x00000010 //!< MfCopyDatabase(): Convert OTYPE_DBASE to OTYPE_POINTDBASE 00894 #define COPYRVC_DontRemoveRecords 0x00000200 //!< MfDatabaseJoin(): Do not remove records while copying 00895 #define COPYRVC_RVCLinks 0x00000400 //!< Copy RVC object links instead of the objects themselves 00896 #define COPYRVC_RemoveStdAttTables 0x00000800 //!< Remove standard attribute tables in MfCopyDatabaseP() 00897 #define COPYRVC_NoDBLists 0x00004000 //!< MfCopyDatabase(): Don't copy DBList of database 00898 #define COPYRVC_IgnoreStdAttTables 0x00040000 //!< MfDatabaseJoin(): Ignore source standard attribute tables 00899 #define COPYRVC_FreezeComputedFields 0x00080000 //!< MfCopyTable(): Computed fields in source become regular fields in dest. 00900 00901 #define COPYRVC_AllLinks (COPYRVC_RasterLinks | COPYRVC_DBaseLinks | COPYRVC_RVCLinks) 00902 00903 namespace RVC { 00904 00905 //! Flags for creating links. 00906 enum MAKELINKFLAGS { 00907 MAKELINKFLAG_NoGeoreference = 0x0001, //!< Don't create georeference subobjects 00908 MAKELINKFLAG_NoPyramidLinks = 0x0002, //!< Don't create raster pyramid tier links 00909 MAKELINKFLAG_BuildHistograms = 0x0004, //!< Build raster histogram subobjects when make link 00910 MAKELINKFLAG_BuildPyramids = 0x0008, //!< Build raster pyramid tiers when make link 00911 MAKELINKFLAG_NoContrastTables = 0x0010, //!< Don't create raster contrast tables 00912 MAKELINKFLAG_ColorComposite = 0x0020, //!< Create raster links as color-composite (RGB) where appropriate 00913 MAKELINKFLAG_ColorSeparate = 0x0040, //!< Create raster links as color separates where appropriate 00914 MAKELINKFLAG_None = 0x0000 00915 }; 00916 DEFINE_ENUM_OPERATORS(MAKELINKFLAGS); 00917 00918 00919 //! TNTlite usability status. 00920 enum LITEUSABILITY { 00921 LITEUSABILITY_OK = 0, //!< Object and all subobjects are usable 00922 LITEUSABILITY_ObjectNo = 1, //!< Object is not usable 00923 LITEUSABILITY_SubObjectNo = 2 //!< Object usable, but at least one subobject is not 00924 // Do not change these enum values as they are used as array indices! 00925 }; 00926 00927 } //! End of RVC namespace 00928 00929 /*-------------------------------------------------------------------------*/ 00930 /* Flags for MfConvertCADTOVector and MfConvertVectorToCAD */ 00931 /*-------------------------------------------------------------------------*/ 00932 00933 #define RVCCTOV_PolyClassFromLabels 0x00000001 00934 #define RVCCTOV_ExternalPolygonAttrib 0x00000002 00935 00936 #define RVCVTOC_ConvLines 0x00000001 00937 #define RVCVTOC_ConvPolys 0x00000002 00938 #define RVCVTOC_ConvIslands 0x00000004 00939 #define RVCVTOC_ConvLabels 0x00000008 00940 #define RVCVTOC_ConvPoints 0x00000010 00941 00942 /*-------------------------------------------------------------------------*/ 00943 /* Define data types for .datatype fields */ 00944 /*-------------------------------------------------------------------------*/ 00945 00946 #define RVCTYPE_Unsigned 1 //!< UINT8, UINT16, UINT32 and < 8 bit 00947 #define RVCTYPE_Signed 2 //!< INT8, INT16, INT32 00948 #define RVCTYPE_Float 3 //!< FLOAT, DOUBLE 00949 #define RVCTYPE_RGB 8 //!< RED, GREEN, BLUE packed (red high bits) 00950 #define RVCTYPE_BGR 9 //!< RED, GREEN, BLUE packed (blue high bits) 00951 #define RVCTYPE_ComplexRI 16 //!< Real, Imaginary 00952 #define RVCTYPE_ComplexMP 17 //!< Magnitude, Phase 00953 00954 /* Due to an obsure but historical bug, 24 bit rasters are actually stored */ 00955 /* in the opposite order of what they say they are. These #defines will */ 00956 /* allow you to account for that in a way that avoids the confusion */ 00957 #define RVCTYPE_RGB24_Really 9 //!< RED, GREEN, BLUE really 00958 #define RVCTYPE_BGR24_Really 8 //!< BLUE, GREEN, RED really 00959 00960 /*----------------------------------------------------------------------------*/ 00961 /* Definitions for object selection tools */ 00962 /*----------------------------------------------------------------------------*/ 00963 00964 #define FILTMSGLEN 100 00965 00966 #define FILT_NotVisible 0 //!< Don't show object on list 00967 #define FILT_NotUsable 0 //!< Not usable (for GetLastUsed, CopySubObjects) 00968 #define FILT_Notusable 0 //!< Not usable (for GetLastUsed, CopySubObjects) 00969 #define FILT_Selectable 1 //!< Let user select 00970 #define FILT_Usable 1 //!< Usable (for GetLastUsed, CopySubObjects) 00971 #define FILT_NotSelectable FILT_NotUsable //!< Show on list but don't let user select 00972 00973 #if !defined(DEPRECATE_GROUPKEY) 00974 #define FILT_UsableSubobjects 4 //!< Object not usable, but has usable subobjects 00975 #define FILT_FolderUsable 5 //!< Folder is usable 00976 #endif 00977 00978 /*-----------------------------------------------------------------------*/ 00979 /* Defines for MfFindLinkFile...() */ 00980 /*-----------------------------------------------------------------------*/ 00981 00982 #define FINDFILE_Stored 0x1 00983 #define FINDFILE_RefDrive 0x2 00984 #define FINDFILE_RefPath 0x3 00985 #define FINDFILE_Subtree 0x4 00986 #define FINDFILE_DontAsk 0x80000000 //!< Don't prompt if not found 00987 00988 #define FINDFILE2(a,b) ((a) | (b<<4)) 00989 #define FINDFILE3(a,b,c) ((a) | (b<<4) | (c<<8)) 00990 #define FINDFILE4(a,b,c,d) ((a) | (b<<4) | (c<<8) | (d<<12)) 00991 00992 #define FINDFILE_Default FINDFILE4(FINDFILE_RefPath,FINDFILE_Stored,FINDFILE_RefDrive,FINDFILE_Subtree) 00993 #define FINDFILE_StoredFirst FINDFILE4(FINDFILE_Stored,FINDFILE_RefDrive,FINDFILE_RefPath,FINDFILE_Subtree) 00994 #define FINDFILE_RefDriveFirst FINDFILE4(FINDFILE_RefDrive,FINDFILE_RefPath,FINDFILE_Stored,FINDFILE_Subtree) 00995 00996 /* For backwards compatabilty, 1 implies FINDFILE_StoredFirst */ 00997 00998 /*----------------------------------------------------------------------------*/ 00999 /* Element number special values, used for database lookup and elsewhere */ 01000 /*----------------------------------------------------------------------------*/ 01001 01002 #define ELEMENTNUM_DefaultList -1 01003 #define ELEMENTNUM_None -2 01004 01005 /*-------------------------------------------------------------------------*/ 01006 /* Definitions for MfConvert... functions */ 01007 /*-------------------------------------------------------------------------*/ 01008 01009 #define CONVRASTCOMP_NoReserveStd64 0x00000001 //!< Don't reserve 64 standard colors in output 01010 01011 #define CONVRASTLINE_Trace0Cells 0x0001 01012 #define CONVRASTLINE_Trace1Cells 0x0000 01013 01014 #define CONVRASTBOUND_NoCreateTable 0x0001 01015 #define CONVRASTBOUND_DoImpliedGeoref 0x0002 //!< Output vector in implied map coordinates if possible 01016 01017 #define TINTORASTER_Linear 0 01018 #define TINTORASTER_Quintic 1 01019 #define TINTORASTER_CopyGeoref 0x0001 01020 #define TINTORASTER_AutoScale 0x0002 01021 #define TIN_ComputeStatistics 0x0001 01022 #define TIN_Optimize 0x0002 01023 01024 /*----------------------------------------------------------------------------*/ 01025 /* Interpolation types for surface fitting conversions */ 01026 /*----------------------------------------------------------------------------*/ 01027 01028 #define INTERPOLATE_Linear 1 01029 #define INTERPOLATE_SplineCubic 2 01030 #define INTERPOLATE_SplineQuad 3 01031 #define INTERPOLATE_SplineBezier 4 01032 01033 #define SURFACEFIT_AutoRescale 0x0001 01034 #define SURFACEFIT_MatchReference 0x0002 01035 #define SURFACEFIT_UseDirection 0x0004 01036 01037 /*----------------------------------------------------------------------------*/ 01038 /* Callback Structure and reasons for Mf(RVC) callbacks */ 01039 /*----------------------------------------------------------------------------*/ 01040 01041 //! Callback structure 01042 struct MfAnyCallbackStruct : public McbAnyCallbackStruct { 01043 int m_FileHandle; //!< File handle 01044 01045 MfAnyCallbackStruct () {} //! Default constructor, performs no initialization. 01046 MfAnyCallbackStruct ( //! Construct with specified reason value. 01047 int FileHandle, 01048 UINT32 ireason 01049 ): 01050 McbAnyCallbackStruct(ireason), 01051 m_FileHandle(FileHandle) 01052 { } 01053 }; 01054 01055 01056 typedef void (*MfCallbackFunc)(MfAnyCallbackStruct*,void*); 01057 01058 //! Callback structure 01059 struct MfExtentsCallbackStruct : public MfAnyCallbackStruct { 01060 DRECT3D m_Extents; 01061 01062 MfExtentsCallbackStruct () {} //! Default constructor, performs no initialization. 01063 MfExtentsCallbackStruct ( //! Construct with specified reason value. 01064 const DRECT3D& Extents, 01065 int FileHandle, 01066 UINT32 ireason 01067 ): 01068 MfAnyCallbackStruct(FileHandle, ireason), 01069 m_Extents(Extents) 01070 { } 01071 }; 01072 01073 01074 struct MfPointTypeCallbackStruct : public MfAnyCallbackStruct { 01075 int m_PointType; 01076 01077 MfPointTypeCallbackStruct () {} //! Default constructor, performs no initialization. 01078 MfPointTypeCallbackStruct ( //! Construct with specified reason value. 01079 int PointType, 01080 int FileHandle, 01081 UINT32 ireason 01082 ): 01083 MfAnyCallbackStruct(FileHandle, ireason), 01084 m_PointType(PointType) 01085 {} 01086 }; 01087 01088 01089 typedef void (*MfCallbackFunc)(MfAnyCallbackStruct*,void*); 01090 01091 #define MFCR_UndoBegin 0x00000101 01092 #define MFCR_UndoEnd 0x00000102 01093 #define MFCR_UndoPossible 0x00000104 //!< MfUndoMark() has been called, set buttons if needed 01094 #define MFCR_ExtentsChanged 0x00000108 01095 #define MFCR_PointTypeChanged 0x00000110 01096 #define MFCR_NullValueChanged 0x00000111 01097 #define MFCR_FileClosing 0x00000112 01098 01099 //--------------------------------------------------------------------------- 01100 01101 namespace RVC { 01102 01103 //! OBJITEM class for specifying a particular file and object. 01104 class OBJITEM { 01105 public: 01106 01107 //! Setup output object item list corresponding to specified input object item list. 01108 static void SetupOutputList ( 01109 MILIST<OBJITEM>& oobjlist, //!< Output list 01110 const MILIST<OBJITEM>& iobjlist, //!< Input list 01111 const char *source = 0 //!< Value to use for "source" in object header, will use application name if null. 01112 ); 01113 01114 //! Default constructor. 01115 OBJITEM ( 01116 ) { 01117 m_ginfo.objectinode = -1; //!< Set to nothing 01118 } 01119 01120 //! Copy constructor. 01121 OBJITEM ( 01122 const OBJITEM& rhs //!< Object to copy from 01123 ) : m_filename(rhs.m_filename), m_ginfo(rhs.m_ginfo), m_ObjectPath(rhs.m_ObjectPath) {} 01124 01125 //! Construct from FILEPATH and RVCGENINFO. 01126 OBJITEM ( 01127 const FILEPATH& filename, //!< Filename 01128 const RVCGENINFO& ginfo //!< General info 01129 <