00001 /******************************************************************** 00002 * 00003 * mi32/tinfuncs.h - TIN manipulation functions include file 00004 * 00005 * \if NODOC 00006 * $Id: tinfuncs.h_v 1.36 2003/09/15 13:49:56 fileserver!dwilliss Exp $ 00007 * 00008 * $Log: tinfuncs.h_v $ 00009 * Revision 1.36 2003/09/15 13:49:56 fileserver!dwilliss 00010 * Doxygen 00011 * 00012 * Revision 1.35 2002/10/04 21:46:04 scowan 00013 * nc. 00014 * 00015 * Revision 1.34 2001/12/27 18:32:21 scowan 00016 * More const for parms. 00017 * 00018 * Revision 1.33 2000/10/10 21:39:57 msmith 00019 * Genitor documentation. 00020 * 00021 * Revision 1.32 2000/09/01 13:16:02 mju 00022 * Include rvcqtree.h for QTREEHANDLE defn. 00023 * 00024 * Revision 1.31 2000/08/31 21:51:54 scowan 00025 * Undo changes. 00026 * 00027 * Revision 1.30 2000/05/12 16:00:22 scowan 00028 * Added grouping. 00029 * 00030 * Revision 1.29 1999/10/20 20:43:49 mju 00031 * const filenames. 00032 * 00033 * Revision 1.28 1999/10/04 21:03:33 scowan 00034 * Fixed elem type changes. 00035 * 00036 * Revision 1.27 1999/07/30 21:57:08 dfrolov 00037 * add MfTINMerge() function 00038 * 00039 * Revision 1.26 1999/05/26 16:00:15 mju 00040 * Add headers and forward declarations so will compile on own. 00041 * 00042 * 00043 * \endif 00044 *********************************************************************/ 00045 00046 #ifndef INC_MI32_TINFUNCS_H 00047 #define INC_MI32_TINFUNCS_H 00048 00049 #ifndef INC_MI32_STDDEFNS_H 00050 #include <mi32/stddefns.h> 00051 #endif 00052 00053 #ifndef INC_MI32_FNAMEMAX_H 00054 #include <mi32/fnamemax.h> 00055 #endif 00056 00057 #ifndef INC_MI32_ELEMTYPE_H 00058 #include <mi32/elemtype.h> 00059 #endif 00060 00061 #ifndef INC_MI32_RVCQTREE_H 00062 #include <mi32/rvcqtree.h> 00063 #endif 00064 00065 /* Forward declarations */ 00066 00067 struct RVCTININFO; 00068 struct RVCTINEDGE; 00069 struct DBLISTELMT; 00070 00071 00072 typedef void* TEHANDLE; 00073 00074 struct MftAnyCallbackStruct { 00075 TEHANDLE th; 00076 UINT32 reason; 00077 INT32 ElemNum; 00078 INT32 OtherElemNum; //!< Set if reason is a Delete 00079 ELEMTYPE ElemType; 00080 }; 00081 00082 struct TEDCBL { 00083 void (*NotifyCB)(MftAnyCallbackStruct*, void*); 00084 void *NotifyUserData; 00085 TEDCBL *next; 00086 }; 00087 00088 #define MftCR_Add 0x00000001 00089 #define MftCR_Delete 0x00000002 00090 #define MftCR_MoveBegin 0x00000004 00091 #define MftCR_MoveEnd 0x00000008 00092 00093 #define MftSave_ComputeStat 0x00000001 00094 #define MftRebuild_Hulls 0x00000002 00095 00096 #define TINCLIPMODE_Include 1 00097 #define TINCLIPMODE_Exclude 2 00098 00099 struct TEDITINFO { 00100 UNICODE filename[FILENAME_MAX]; 00101 int findex; //!< Handle to open RVC file 00102 int TINid; //!< Handle to open tin object 00103 int dbid; //!< TIN database handle 00104 RVCTININFO *Info; 00105 double SnapDist; 00106 UINT32 SnapOpt; 00107 QTREEHANDLE triQtree; 00108 QTREEHANDLE nodeQtree; 00109 QTREEHANDLE edgeQtree; 00110 bool WasPreOpened; 00111 bool EnableCallback; 00112 bool IsChanged; //!< set to 1 if any changes was made 00113 TEDCBL *NotifyCBList; 00114 UINT32 flags; 00115 00116 //! Call notify callback. 00117 void CallNotifyCallback ( 00118 UINT32 reason, 00119 ELEMTYPE ElemType, 00120 INT32 ElemNum, 00121 INT32 OtherElemNum 00122 ); 00123 00124 //! Remove all q-tree from the memory. 00125 ERRVALUE ShutdownQTrees ( 00126 ); 00127 00128 }; 00129 00130 00131 #define MFTFLAG_NoSaveQTree 0x00000010 00132 00133 #if defined(__cplusplus) 00134 extern "C" { 00135 #endif 00136 00137 //!:Associate with "TIN Toolkit" 00138 //!\addtogroup TINToolkit TIN Toolkit 00139 //!@{ 00140 00141 //! Initialize TIN toolkit handle. 00142 //! 00143 //! @return TIN Handle 00144 TEHANDLE MftInit ( 00145 void 00146 ); 00147 00148 //! Open TIN object and setup. 00149 int MftOpen ( 00150 TEHANDLE vh, //!< TIN toolkit handle 00151 const UNICODE *filename, //!< Filename to open 00152 INT32 inode, //!< Inode of TIN object 00153 RVCTININFO *vinfo, //!< TIN info 00154 UINT32 flags //!< Flags 00155 ); 00156 00157 //! Setup TIN toolkit for specified TIN object. 00158 int MftSetup ( 00159 TEHANDLE vh, //!< TIN toolkit handle 00160 int id, //!< Id of TIN object 00161 RVCTININFO *tinfo, //!< TIN info 00162 UINT32 flags //!< Flags 00163 ); 00164 00165 //! Create new TIN object and initialize toolkit 00166 int MftNew ( 00167 TEHANDLE vh, //!< TIN toolkit handle 00168 const UNICODE *filename, //!< Filename to open 00169 RVCTININFO *Info, //!< TIN info 00170 UINT32 flags //!< Flags 00171 ); 00172 00173 //! Get TIN handle. 00174 //! 00175 //! @return TIN id 00176 int MftGetHandle ( 00177 TEHANDLE th //!< TIN toolkit handle 00178 ); 00179 00180 //! Enable/disable callback calls. 00181 int MftEnableCallbacks ( 00182 TEHANDLE vh, //!< TIN toolkit handle 00183 bool Flag //!< Enable / disable callback flag 00184 ); 00185 00186 //! Recompute extents for whole TIN object. 00187 int MftComputeExtents ( 00188 TEHANDLE th //!< TIN toolkit handle 00189 ); 00190 00191 //! Close current TIN object. 00192 int MftClose ( 00193 TEHANDLE th, //!< TIN toolkit handle 00194 UINT32 flags //!< Flags 00195 ); 00196 00197 //! Save TIN object in the suppled object. 00198 int MftSave ( 00199 TEHANDLE th, //!< TIN toolkit handle 00200 int dfindex, 00201 RVCGENINFO *geninfo, 00202 UINT32 flags //!< Flags 00203 ); 00204 00205 //! Set flags. 00206 UINT32 MftSetFlags ( 00207 TEHANDLE vh, //!< TIN toolkit handle 00208 UINT32 flags //!< Flags 00209 ); 00210 00211 //! Assign notify callback. 00212 void MftSetNotifyCallback ( 00213 TEHANDLE th, //!< TIN toolkit handle 00214 void (*NotifyCB)(MftAnyCallbackStruct*, void*), //! Callback function 00215 void *udata //!< Callback data 00216 ); 00217 00218 //! Remove previously assigned notify callback. 00219 void MftRemoveNotifyCallback ( 00220 TEHANDLE th, //!< TIN toolkit handle 00221 void (*NotifyCB)(MftAnyCallbackStruct*, void*) //! Callback function 00222 ); 00223 00224 //! Does nothing now. 00225 void MftSetDatabaseMode ( 00226 TEHANDLE th, //!< TIN toolkit handle 00227 int ElemType, //!< Element type 00228 UINT32 dbtype //!< Database type 00229 ); 00230 00231 //! Get qtree handle for specified element. 00232 void *MftGetQTree ( 00233 TEHANDLE th, //!< TIN toolkit handle 00234 int ElemType //!< Element type 00235 ); 00236 00237 //! Get number of element of specified type. 00238 INT32 MftGetNumElements ( 00239 TEHANDLE th, //!< TIN toolkit handle 00240 int ElemType //!< Element type 00241 ); 00242 00243 //! Does nothing now. 00244 int MftGetDBHandle ( 00245 TEHANDLE th, //!< TIN toolkit handle 00246 int ElemType //!< Element type 00247 ); 00248 00249 //! Does nothing now. 00250 int MftGetStyleHandle ( 00251 TEHANDLE th //!< TIN toolkit handle 00252 ); 00253 00254 //! Get extents for specified element. 00255 int MftGetElemRect ( 00256 TEHANDLE vh, //!< TIN toolkit handle 00257 int ElemType, //!< Element type 00258 INT32 ElemNum, //!< Element number 00259 DRECT2D *rect //!< Extents rectangle returned 00260 ); 00261 00262 //! Get internal z-value of TIN node. 00263 //! 00264 //! @return z-value 00265 double MftGetZValue ( 00266 TEHANDLE th, //!< TIN toolkit handle 00267 int ElemType, //!< Element type 00268 INT32 ElemNum //!< Element number 00269 ); 00270 00271 //! Set internal z-value (for TIN node). 00272 int MftSetZValue ( 00273 TEHANDLE vh, //!< TIN toolkit handle 00274 int ElemType, //!< Element type 00275 INT32 ElemNum, //!< Element number 00276 double zvalue //!< Z-value 00277 ); 00278 00279 //! Set qtree handle for specified ELEMENTTYPE. 00280 void MftSetQTree ( 00281 TEHANDLE vh, //!< TIN toolkit handle 00282 int ElemType, //!< Element type 00283 QTREEHANDLE qtree //!< Qtree handle 00284 ); 00285 00286 //! Close & free TIN toolkit. 00287 void MftStop ( 00288 TEHANDLE th //!< TIN toolkit handle 00289 ); 00290 00291 //! Add a "hard edge" breakline to the TIN structure. 00292 int MftAddLine ( 00293 TEHANDLE th, //!< TIN toolkit handle 00294 DPOINT3D *Line, //!< Line to add 00295 INT32 Num //!< Number of points in line 00296 ); 00297 00298 //! Add a "hard edge" breakline to the TIN structure, with elevation control. 00299 int MftAddLineExt ( 00300 TEHANDLE th, //!< TIN toolkit handle 00301 DPOINT3D *Line, //!< Line to add 00302 INT32 Num, //!< Number of points in line 00303 int HasElevation //!< Set to TRUE if this is a "real" 3D line, otherwise set to FALSE 00304 ); 00305 00306 //! Add new node to the TIN structure. 00307 int MftAddNode ( 00308 TEHANDLE th, //!< TIN toolkit handle 00309 DPOINT3D *P //!< New node location 00310 ); 00311 00312 //! Add new node to TIN. 00313 int MftAddNodeExt ( 00314 TEHANDLE th, //!< TIN toolkit handle 00315 DPOINT3D *P, //!< New node location 00316 int TryOutside 00317 ); 00318 00319 //! Add breaklines to the TIN structure from the vector object. 00320 int MftAddVectorBreaklines ( 00321 TEHANDLE th, //!< TIN toolkit handle 00322 const UNICODE *filename, //!< Vector filename 00323 INT32 inode, //!< Vector object inode 00324 INT32 gvectinode //!< Inode of the georeference subobject to use 00325 ); 00326 00327 //! Add a breakline to the TIN structure as a 2 point segment. 00328 int MftAddSegment ( 00329 TEHANDLE th, //!< TIN toolkit handle 00330 DPOINT3D *start, //!< Start point 00331 DPOINT3D *end, //!< End point 00332 UINT8 type, //!< 0 for "soft" edge, TINEDGE_Hard for "hard" edge 00333 int HasElevation //!< Number of points in line - not set when breakline doesn't have an elevation 00334 ); 00335 00336 //! Remove all triangles that fall within given list of exclude areas (polygons). 00337 int MftApplyExclude ( 00338 TEHANDLE th, //!< TIN toolkit handle 00339 DPOLYGON *Exclude, //!< List of polygons 00340 INT32 NumExclude //!< Number of exclude polygons 00341 ); 00342 00343 //! Create list of connected edges for each node (Node-to-Edge link table). 00344 int MftBuildNodeToEdgeLinks ( 00345 TEHANDLE th //!< TIN toolkit handle 00346 ); 00347 00348 //! Clip TIN structure using vector object. 00349 int MftClipByVector ( 00350 TEHANDLE th, //!< TIN toolkit handle 00351 const UNICODE *filename, //!< Vector filename 00352 INT32 inode, //!< Vector object inode 00353 INT32 gvectinode, //!< Inode of the georeference subobject to use 00354 int ClipMode //!< Flag: TINCLIPMODE_Include or TINCLIPMODE_Exclude 00355 ); 00356 00357 //! Compute z-value for a given x,y location. 00358 int MftComputeElevation ( 00359 TEHANDLE thandle, //!< TIN toolkit handle 00360 DPOINT3D *P //!< Point to calculate z-value from 00361 ); 00362 00363 //! Compute standart statistics for TIN triangles. 00364 int MftComputeStatistics ( 00365 TEHANDLE th //!< TIN toolkit handle 00366 ); 00367 00368 //! Create TIN from scratch or replace existing TIN. 00369 int MftCreateTIN ( 00370 TEHANDLE th, //!< TIN toolkit handle 00371 DPOINT3D *Nodes, //!< List of input points 00372 INT32 NumNodes, //!< Number of input points 00373 DOUBLE zscale, //!< Scale coeff 00374 DOUBLE zoffset, //!< Offset coeff 00375 DOUBLE xytolerance //!< Tolerance, minim. allowed distance between points 00376 ); 00377 00378 //! Create TIN from scratch with minimized memory usage. 00379 //! 00380 //! NO QTREE WILL BE MAINTAINED !!! 00381 //! THIS FUNCTIONS IS NOT FOR USAGE WITHIN TNTedit! 00382 int MftCreateTINBatch ( 00383 TEHANDLE th, //!< TIN toolkit handle 00384 DPOINT3D **Data, 00385 INT32 NumNodes, //!< Number of nodes 00386 DOUBLE zscale, //!< Z scale 00387 DOUBLE zoffset, //!< Z offset 00388 DOUBLE xytolerance //!< XY tolerance 00389 ); 00390 00391 //! Delete given node and recompute triangulation in affected area. 00392 int MftDeleteNode ( 00393 TEHANDLE th, //!< TIN toolkit handle 00394 INT32 Num //!< Node number to delete 00395 ); 00396 00397 //! Delete set of nodes. 00398 int MftDeleteNodes ( 00399 TEHANDLE th, //!< TIN toolkit handle 00400 INT32 *NodeList, //!< Nodes to delete 00401 INT32 Nums //!< Number of nodes 00402 ); 00403 00404 //! Delete set of nodes. 00405 int MftDeleteNodesHole ( 00406 TEHANDLE th, //!< TIN toolkit handle 00407 INT32 *NodeList, //!< Nodes to delete 00408 INT32 Nums //!< Number of nodes 00409 ); 00410 00411 //! Delete node from tin object and make a hole there. 00412 //! 00413 //! IMPORTANT: Do not use this function to delete more than one node, 00414 //! UNLESS you have sorted NodeNum in descending order. 00415 //! Node numbers might changed after each call. 00416 int MftDeleteNodeHole ( 00417 TEHANDLE th, //!< TIN toolkit handle 00418 INT32 NodeNum //!< Number of node 00419 ); 00420 00421 //! Delete set of triangles. 00422 int MftDeleteTriangles ( 00423 TEHANDLE th, //!< TIN toolkit handle 00424 INT32 *List, //!< Triangles to delete 00425 INT32 Nums //!< Number of triangles 00426 ); 00427 00428 //! Make a "hole" from triangle. 00429 //! 00430 //! IMPORTANT: Do not use this function to delete more than one triangle, 00431 //! UNLESS you have sorted Nums in descending order. 00432 //! Triangle numbers might changed after each call. 00433 int MftDeleteTriangleHole ( 00434 TEHANDLE th, //!< TIN toolkit handle 00435 INT32 Num //!< Triangle number 00436 ); 00437 00438 //! Delete edge (and 2 adj. triangles) and make a hole in the TIN. 00439 //! 00440 //! IMPORTANT: Do not use this function to delete more than one edge, 00441 //! UNLESS you have sorted Nums in descending order. 00442 //! Edge numbers might changed after each call. 00443 int MftDeleteEdgeHole ( 00444 TEHANDLE th, //!< TIN toolkit handle 00445 INT32 Num //!< Edge Number 00446 ); 00447 00448 //! Delete set of edges. 00449 int MftDeleteEdges ( 00450 TEHANDLE th, //!< TIN toolkit handle 00451 INT32 *List, //!< Edges to delete 00452 INT32 Nums //!< Number of edges 00453 ); 00454 00455 //! Get list of all nodes connected to given node. 00456 //! 00457 //! @return number of nodes - on success, < 0 on error. 00458 //! NOTE: this function assumes that TIN object has node-to-edge links, 00459 //! if not call MftBuildNodeToEdgeLinks(..) function. 00460 int MftGetConnectedNodeList ( 00461 TEHANDLE th, //!< TIN toolkit handle 00462 INT32 Num, //!< Node number 00463 INT32 **list //!< List of node numbers returned 00464 ); 00465 00466 //! Get orienation for the given edge. 00467 //! 00468 //! NOTE: angle measured in radians 00469 int MftGetEdgeAzimuth ( 00470 TEHANDLE th, //!< TIN toolkit handle 00471 INT32 NodeNum, //!< Node number that will be a start point 00472 RVCTINEDGE *Edge, //!< Edge description (passed) 00473 DOUBLE *Angle //!< Orientation angle (returned) 00474 ); 00475 00476 //! General function for building TINs. 00477 //! AVOID USING THIS FUNCTION UNLESS YOUR COMPLETELY UNDERSTAND 00478 //! THE FOLLOWING INFORMATION. USE SPECIALIZED FUNCTIONS INSTEAD. 00479 //! 00480 //! WARNING: This function intended to rebuild topology for entire TIN or add 00481 //! one hull (!). If programmer wants to rebuild entire TIN and not to use 00482 //! any cliping areas or exclude areas - set all NumNodes, NumEdges and 00483 //! NumTriangles to zero. Otherwise, this function will add new elements 00484 //! to the end of each table. If programmer wants to build complex TIN 00485 //! object with multiple hulls - call this function for each separate hull. 00486 //! Programmers needs in this case description of "CLIP" polygon and 00487 //! list of exclude areas. Clip polygon can be only one per hull. 00488 //! WARNING: if you want to rebuild entire tin object do not forget to 00489 //! set minval and maxval before calling this function to DBL_MAX & DBL_MIN. 00490 //! 00491 //! Note : This function will NOT UPDATE hull structure unless flag is set. 00492 //! ATTENTION: This function will update QTrees. 00493 //! ATTENTION: New nodes should be not in Qtree structure before calling 00494 //! this function - in this case there will be a redundancy. 00495 int MftGenerateTIN ( 00496 TEHANDLE th, //!< TIN toolkit handle 00497 DPOINT3D *Pool, //!< Input points, not necessary all points should belong to this hull 00498 INT32 NumPoints, //!< Number of input points 00499 DPOLYGON *Clip, //!< Clip polygon 00500 DPOLYGON *Exclude, //!< List of exclude areas 00501 INT32 NumExclude, //!< Number of exclude areas in the previous list 00502 INT32 Flag //!< Flag: 1 - update all hull strcutures, 0 - skip 00503 ); 00504 00505 //! Get sorted list of edges that connected to this node. 00506 //! 00507 //! @return number of edges or error if < 0 00508 //! IMPORTANT: This function assumes that there is no Node-to-Edge link 00509 //! table in TIN object. This function used to build such list. 00510 INT32 MftGetNodeEdges ( 00511 TEHANDLE vh, //!< TIN toolkit handle 00512 INT32 Num, //!< Node number 00513 INT32 **edgelist //!< List of edge numbers returned 00514 ); 00515 00516 //! Get a list of tin nodes as DPOINT3D/DPOINT2D/RVCTINNODE array. 00517 int MftGetNodes ( 00518 TEHANDLE th, //!< TIN toolkit handle 00519 INT32 NodeNum, //!< Node number 00520 INT32 *NumNodes, //!< Number of connected nodes returned 00521 void **Array, //!< Nodes data returned 00522 INT32 **List, //!< List of connected node numbers 00523 INT32 flag //!< if flag = 0, output is RVCTINNODE, 1 - DPOINT3D, 2 - DPOINT2D 00524 ); 00525 00526 //! Compute plane equation coefficients for given triangle. 00527 //! 00528 //! NOTE: a * x + b * y + c * z + d = 0 00529 int MftGetPlaneEquation ( 00530 TEHANDLE thandle, //!< TIN toolkit handle 00531 INT32 TriNum, //!< Triangle number 00532 DOUBLE* a, //!< X coefficient returned 00533 DOUBLE* b, //!< Y coefficient returned 00534 DOUBLE* c, //!< Z coefficient returned 00535 DOUBLE *d //!< offset returned 00536 ); 00537 00538 //! Get list of triangles which have given node as vertex. 00539 int MftGetSurroundTriangles ( 00540 TEHANDLE th, //!< TIN toolkit handle 00541 INT32 NodeNum, //!< Node number 00542 INT32 **TriList, //!< List of triangles returned 00543 INT32 **EdgeList, //!< List of surround edges returned 00544 INT32 **NodeList, //!< List of surround nodes returned 00545 INT32 *trinum, //!< Number of triangles 00546 INT32 *edgenum, //!< Number of edges 00547 INT32 *nodenum //!< Number of nodes 00548 ); 00549 00550 //! Get list of triangles that are within (even partially) given polygon. 00551 int MftGetTrianglesPoly ( 00552 TEHANDLE th, //!< TIN toolkit handle 00553 DPOLYGON *poly, //!< Polygon description 00554 INT32 **TList, //!< List of triangles returned 00555 INT32 *num //!< Number of triangles returned 00556 ); 00557 00558 //! Filter TIN structure. 00559 int MftMedianFiltering ( 00560 TEHANDLE thandle //!< TIN toolkit handle 00561 ); 00562 00563 //! Recreate hull structures. 00564 //! 00565 //! 1. Read edges and find any that has "universe" triangle as neighbor. 00566 //! 2. Start tracing hull from this point until "chain" will be closed 00567 //! 3. Determine is it "universe" or "exclude" hull 00568 //! 4. Save information about this hull and start again until any unprocessed 00569 //! edge exists. All processed edges are marked in the binary array. 00570 int MftRebuildHulls ( 00571 TEHANDLE th //!< TIN toolkit handle 00572 ); 00573 00574 //! Rebuild entire TIN as one hull without any respect to exclude areas. 00575 int MftRebuildTIN ( 00576 TEHANDLE th //!< TIN toolkit handle 00577 ); 00578 00579 //! Recover from the undo operation. 00580 ERRVALUE MftRecoverFromUndo ( 00581 TEHANDLE th //!< TIN toolkit handle 00582 ); 00583 00584 //! Removes nodes that connected to nodes with z-value equal to its own. 00585 //! 00586 //! This function removes FLAT TRIANGLES using tolerance. 00587 int MftRemoveFlatNodes ( 00588 TEHANDLE thandle, //!< TIN toolkit handle 00589 DOUBLE dz, //!< Tolerance: max. allowed difference in z-values 00590 DOUBLE minedge //!< Minimum edge length between 2 nodes that are within dz-tolerance 00591 ); 00592 00593 //! This function will delete edges that are longer than specified length and create empty holes in those areas. 00594 int MftRemoveLongEdges ( 00595 TEHANDLE th, //!< TIN toolkit handle 00596 DOUBLE distance //!< Maximum possible distance 00597 ); 00598 00599 //! Validate TIN topology for entire object. 00600 //! 00601 //! THIS FUNCTION CAN'T FIX TOPOLOGY! 00602 int MftValidateTINTopology ( 00603 TEHANDLE th, //!< TIN toolkit handle 00604 INT32 flag //!< If flag equals to 0 process will not check node-edge connectivity 00605 ); 00606 00607 //! This function blindly combines 2 TINs (using georeference) into one, and recomputes topology. 00608 //! 00609 //! This function is not a member of TIN toolkit, but it uses it internally. 00610 //! Georeference handling: The output TIN object will have a georeference 00611 //! based on first (A) TIN object. 00612 int MfTINMerge ( 00613 int idA, //!< Input TIN object 1 00614 INT32 ginodeA, //!< Georeference inode for TIN object 1 00615 int idB, //!< Input TIN object 2 00616 INT32 ginodeB, //!< Georeference inode for TIN object 2 00617 RVC::OBJITEM& ObjItem //!< output object 00618 ); 00619 00620 //!@} 00621 00622 #if defined(__cplusplus) 00623 } 00624 #endif 00625 00626 #endif
1.3.4-20031026