<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>NTv2 File Processing Routines: libntv2.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">NTv2 File Processing Routines </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.2 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_d44c64559bbebec7f509842c48db8b23.html">include</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">libntv2.h</div> </div> </div><!--header--> <div class="contents"> <a href="libntv2_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/* ------------------------------------------------------------------------- */</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">/* Copyright 2013 Esri */</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">/* Licensed under the Apache License, Version 2.0 (the "License"); */</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">/* you may not use this file except in compliance with the License. */</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment">/* You may obtain a copy of the License at */</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">/* http://www.apache.org/licenses/LICENSE-2.0 */</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">/* Unless required by applicable law or agreed to in writing, software */</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">/* distributed under the License is distributed on an "AS IS" BASIS, */</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">/* See the License for the specific language governing permissions and */</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="comment">/* limitations under the License. */</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="comment">/* ------------------------------------------------------------------------- */</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> </div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="comment">/* ------------------------------------------------------------------------- */</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> <span class="comment">/* public header for the libntv2 library */</span></div> <div class="line"><a name="l00019"></a><span class="lineno"> 19</span> <span class="comment">/* ------------------------------------------------------------------------- */</span></div> <div class="line"><a name="l00020"></a><span class="lineno"> 20</span> </div> <div class="line"><a name="l00021"></a><span class="lineno"> 21</span> <span class="preprocessor">#ifndef LIBNTV2_INCLUDED</span></div> <div class="line"><a name="l00022"></a><span class="lineno"> 22</span> <span class="preprocessor"></span><span class="preprocessor">#define LIBNTV2_INCLUDED</span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#include <stdio.h></span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> </div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {</div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="comment">/* ---------------------------------------------------------------------- */</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> <span class="comment">/* version info */</span></div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> <span class="comment">/* ---------------------------------------------------------------------- */</span></div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> </div> <div class="line"><a name="l00034"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a1d229fc44ad3986f25ec40b62aec7ab8"> 34</a></span> <span class="preprocessor">#define NTV2_VERSION_MAJOR 1</span></div> <div class="line"><a name="l00035"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a31e7a621ffc7757c736c125a62ed0437"> 35</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_VERSION_MINOR 0</span></div> <div class="line"><a name="l00036"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ab867381a70724953aa6fbf35e3873ddb"> 36</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_VERSION_RELEASE 0</span></div> <div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="libntv2_8h.html#afc42d5222cb45cc0a75fcffc0973a356"> 37</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_VERSION_STR "1.0.0"</span></div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="comment">/* external definitions & structs */</span></div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> </div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="preprocessor">#define FALSE 0</span></div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="preprocessor"></span><span class="preprocessor">#define TRUE 1</span></div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00046"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a2cfbed77a3bc39771d0961d9abadfbab"> 46</a></span> <span class="preprocessor">#define NTV2_NULL 0 </span></div> <div class="line"><a name="l00048"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ae59be51b452fca4a6f79583bb2cec304"> 48</a></span> <span class="preprocessor">#define NTV2_COORD_LON 0 </span></div> <div class="line"><a name="l00049"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ae6f52958cc8e1d6322ea00bd59137225"> 49</a></span> <span class="preprocessor">#define NTV2_COORD_LAT 1 </span></div> <div class="line"><a name="l00051"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aea0bca060b640ae0440fe7b92f38b95c"> 51</a></span> <span class="preprocessor">#define NTV2_MAX_PATH_LEN 256 </span></div> <div class="line"><a name="l00052"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a9d526ee1ae0a34611157e5774ad74639"> 52</a></span> <span class="preprocessor">#define NTV2_MAX_ERR_LEN 32 </span></div> <div class="line"><a name="l00054"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007"> 54</a></span> <span class="preprocessor">typedef int NTV2_BOOL; </span></div> <div class="line"><a name="l00055"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ae76b4de123251d6b3579547f13bf29d4"> 55</a></span> <span class="preprocessor">typedef double NTV2_COORD [2]; </span></div> <div class="line"><a name="l00057"></a><span class="lineno"> 57</span> <span class="preprocessor"></span><span class="comment">/*---------------------------------------------------------------------*/</span><span class="preprocessor"></span></div> <div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__extent.html">ntv2_extent</a> NTV2_EXTENT;</div> <div class="line"><a name="l00075"></a><span class="lineno"><a class="code" href="structntv2__extent.html"> 75</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__extent.html">ntv2_extent</a></div> <div class="line"><a name="l00076"></a><span class="lineno"> 76</span> {</div> <div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="comment">/* lower-left corner */</span></div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="structntv2__extent.html#a6b8aef435fa610e68bbe3326fb8ad500"> 78</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__extent.html#a6b8aef435fa610e68bbe3326fb8ad500">wlon</a>; </div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="structntv2__extent.html#a3bd0e2c135d6791e2d8afbdcb8dd85a3"> 79</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__extent.html#a3bd0e2c135d6791e2d8afbdcb8dd85a3">slat</a>; </div> <div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="comment">/* upper-right corner */</span></div> <div class="line"><a name="l00082"></a><span class="lineno"><a class="code" href="structntv2__extent.html#aadda6c13333b5696129baf06848c4c6b"> 82</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__extent.html#aadda6c13333b5696129baf06848c4c6b">elon</a>; </div> <div class="line"><a name="l00083"></a><span class="lineno"><a class="code" href="structntv2__extent.html#a973ac42bcc9de831e326b14ef74048e3"> 83</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__extent.html#a973ac42bcc9de831e326b14ef74048e3">nlat</a>; </div> <div class="line"><a name="l00084"></a><span class="lineno"> 84</span> };</div> <div class="line"><a name="l00085"></a><span class="lineno"> 85</span> </div> <div class="line"><a name="l00086"></a><span class="lineno"> 86</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="comment">/* NTv2 file layout */</span></div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00089"></a><span class="lineno"> 89</span> <span class="comment">/* A NTv2 file (either binary or text) is laid out as follows: */</span></div> <div class="line"><a name="l00090"></a><span class="lineno"> 90</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <span class="comment">/* overview record */</span></div> <div class="line"><a name="l00092"></a><span class="lineno"> 92</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> <span class="comment">/* sub-file record 1 */</span></div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> <span class="comment">/* gs_count grid-shift records */</span></div> <div class="line"><a name="l00095"></a><span class="lineno"> 95</span> <span class="comment">/* ... */</span></div> <div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <span class="comment">/* sub-file record n (if present) */</span></div> <div class="line"><a name="l00097"></a><span class="lineno"> 97</span> <span class="comment">/* gs_count grid-shift records */</span></div> <div class="line"><a name="l00098"></a><span class="lineno"> 98</span> <span class="comment">/* */</span></div> <div class="line"><a name="l00099"></a><span class="lineno"> 99</span> <span class="comment">/* end record */</span></div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00101"></a><span class="lineno"> 101</span> </div> <div class="line"><a name="l00102"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416"> 102</a></span> <span class="preprocessor">#define NTV2_NAME_LEN 8 </span></div> <div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a67d5bea90143e6702f3fc023d7139ffd"> 104</a></span> <span class="preprocessor">#define NTV2_FILE_BIN_EXTENSION "gsb" </span></div> <div class="line"><a name="l00105"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a0fb87ed06181fd6902c93fe1b25a7e22"> 105</a></span> <span class="preprocessor">#define NTV2_FILE_ASC_EXTENSION "gsa" </span></div> <div class="line"><a name="l00107"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a3ec57d433c47ccb7df7bd094d385b6f3"> 107</a></span> <span class="preprocessor">#define NTV2_FILE_TYPE_UNK 0 </span></div> <div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a459c14f5e3b499b4973d0a450638ff75"> 108</a></span> <span class="preprocessor">#define NTV2_FILE_TYPE_BIN 1 </span></div> <div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a459ddadac38a5641ca122a81f94b0191"> 109</a></span> <span class="preprocessor">#define NTV2_FILE_TYPE_ASC 2 </span></div> <div class="line"><a name="l00111"></a><span class="lineno"> 111</span> <span class="preprocessor"></span><span class="comment">/*---------------------------------------------------------------------*/</span><span class="preprocessor"></span></div> <div class="line"><a name="l00112"></a><span class="lineno"> 112</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__file__ov.html">ntv2_file_ov</a> NTV2_FILE_OV;</div> <div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html"> 126</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__file__ov.html">ntv2_file_ov</a></div> <div class="line"><a name="l00127"></a><span class="lineno"> 127</span> {</div> <div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a0af3bf8fce24a64f832f99510ec250c2"> 128</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a0af3bf8fce24a64f832f99510ec250c2">n_num_orec</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a07bf7e8ad71f490c8defc8faed42c012"> 129</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__ov.html#a07bf7e8ad71f490c8defc8faed42c012">i_num_orec</a>; </div> <div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a742c6d4f295e8d49263196d941e2f42d"> 130</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__ov.html#a742c6d4f295e8d49263196d941e2f42d">p_num_orec</a>; </div> <div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a8286d2e2727dead248c8450c6183450b"> 132</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a8286d2e2727dead248c8450c6183450b">n_num_srec</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a194f4e492436ff8d7ef849ba66521537"> 133</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__ov.html#a194f4e492436ff8d7ef849ba66521537">i_num_srec</a>; </div> <div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#afa57590459c518b5a8bcaaf75dafc0fe"> 134</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__ov.html#afa57590459c518b5a8bcaaf75dafc0fe">p_num_srec</a>; </div> <div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#ae031e9acafe2d9f8549fc61fd57870cf"> 136</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#ae031e9acafe2d9f8549fc61fd57870cf">n_num_file</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00137"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a87017e2e4d7fa07ec5b997e37db0ea3e"> 137</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__ov.html#a87017e2e4d7fa07ec5b997e37db0ea3e">i_num_file</a>; </div> <div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#afefe571fa8bd1cadefd892d8666ff328"> 138</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__ov.html#afefe571fa8bd1cadefd892d8666ff328">p_num_file</a>; </div> <div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a1daa598b00199e4321f127c1387cd2cb"> 140</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a1daa598b00199e4321f127c1387cd2cb">n_gs_type</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#ad53ab84a929cb17a22d6fb4d6b058b9f"> 141</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#ad53ab84a929cb17a22d6fb4d6b058b9f">s_gs_type</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00143"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#ad60ff5d2e1f9053bf17d04539278fa23"> 143</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#ad60ff5d2e1f9053bf17d04539278fa23">n_version</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00144"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a32778af5358d301bed6fc05b49c32bc4"> 144</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a32778af5358d301bed6fc05b49c32bc4">s_version</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00146"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a24894edac085a9868960eb1d28475273"> 146</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a24894edac085a9868960eb1d28475273">n_system_f</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00147"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#ae010eb47c441541af29f1475a2c741c0"> 147</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#ae010eb47c441541af29f1475a2c741c0">s_system_f</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00149"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a0b26f1068fe3a8cbb7dc5760e386809b"> 149</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a0b26f1068fe3a8cbb7dc5760e386809b">n_system_t</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#afe63db94bffb13b5fc6b0a4dbc3242c1"> 150</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#afe63db94bffb13b5fc6b0a4dbc3242c1">s_system_t</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00152"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a3a46c6645374335672810e464cb827b0"> 152</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a3a46c6645374335672810e464cb827b0">n_major_f</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00153"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a6158bab0bdd947c25032ecb3484383b4"> 153</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__ov.html#a6158bab0bdd947c25032ecb3484383b4">d_major_f</a>; </div> <div class="line"><a name="l00155"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#ac6b5782e4166a376fa44acf61e6887cc"> 155</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#ac6b5782e4166a376fa44acf61e6887cc">n_minor_f</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00156"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a875de7b7725f83ca2d443829b0efd961"> 156</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__ov.html#a875de7b7725f83ca2d443829b0efd961">d_minor_f</a>; </div> <div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a7d3f3562af33112a88ad5df52a5ffe74"> 158</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#a7d3f3562af33112a88ad5df52a5ffe74">n_major_t</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#a280cef37a6d9f9fcbe2dee2442f89e7e"> 159</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__ov.html#a280cef37a6d9f9fcbe2dee2442f89e7e">d_major_t</a>; </div> <div class="line"><a name="l00161"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#ab1e54f0f5988f6acc298c46da1fa4b65"> 161</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__ov.html#ab1e54f0f5988f6acc298c46da1fa4b65">n_minor_t</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00162"></a><span class="lineno"><a class="code" href="structntv2__file__ov.html#acb5bb5372e22b681e11ce7e5c07fa84e"> 162</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__ov.html#acb5bb5372e22b681e11ce7e5c07fa84e">d_minor_t</a>; </div> <div class="line"><a name="l00163"></a><span class="lineno"> 163</span> };</div> <div class="line"><a name="l00164"></a><span class="lineno"> 164</span> </div> <div class="line"><a name="l00165"></a><span class="lineno"> 165</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00182"></a><span class="lineno"> 182</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__file__sf.html">ntv2_file_sf</a> NTV2_FILE_SF;</div> <div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html"> 183</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__file__sf.html">ntv2_file_sf</a></div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span> {</div> <div class="line"><a name="l00185"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#ab49652b226cd4b767959505685da4fa6"> 185</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#ab49652b226cd4b767959505685da4fa6">n_sub_name</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00186"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#af8c51ef940748a702fb11532f19d753b"> 186</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#af8c51ef940748a702fb11532f19d753b">s_sub_name</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00188"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#ab05b9896be80c69b0031b59f403c5a05"> 188</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#ab05b9896be80c69b0031b59f403c5a05">n_parent</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00189"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#abd329d0e193cf73eb8cc864954d55db4"> 189</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#abd329d0e193cf73eb8cc864954d55db4">s_parent</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00191"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#ab1cf9136282b12b781a544184b255416"> 191</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#ab1cf9136282b12b781a544184b255416">n_created</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#af82f72344cdeced11bc4b8005125143a"> 192</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#af82f72344cdeced11bc4b8005125143a">s_created</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a42aaef9f0de1ab5f1ed99281bae6877b"> 194</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a42aaef9f0de1ab5f1ed99281bae6877b">n_updated</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a84be7b2903ed1e5a3d15b18908073cb0"> 195</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a84be7b2903ed1e5a3d15b18908073cb0">s_updated</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a040f8f7e3852ccf30d51d4812e48cfa6"> 197</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a040f8f7e3852ccf30d51d4812e48cfa6">n_s_lat</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#abc8f2136a91800ab3a7a0c4548b7a863"> 198</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__sf.html#abc8f2136a91800ab3a7a0c4548b7a863">d_s_lat</a>; </div> <div class="line"><a name="l00200"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a9c8d932f7cfddf2c779e120a63d1a378"> 200</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a9c8d932f7cfddf2c779e120a63d1a378">n_n_lat</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#abd7f66ca4e8d9c953f82982db797f9e9"> 201</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__sf.html#abd7f66ca4e8d9c953f82982db797f9e9">d_n_lat</a>; </div> <div class="line"><a name="l00203"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#ab09426323fecd4a7e7a1209258cb33c5"> 203</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#ab09426323fecd4a7e7a1209258cb33c5">n_e_lon</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#ad88d199158fc8ac8f97ed245b7973c26"> 204</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__sf.html#ad88d199158fc8ac8f97ed245b7973c26">d_e_lon</a>; </div> <div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#abece0c29aaaf8c686f8f52c27f57f0c8"> 206</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#abece0c29aaaf8c686f8f52c27f57f0c8">n_w_lon</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a326074423076bb253d609899c1555dd2"> 207</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__sf.html#a326074423076bb253d609899c1555dd2">d_w_lon</a>; </div> <div class="line"><a name="l00209"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a08dc816cdd807de02bdadbbc1575a4a8"> 209</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a08dc816cdd807de02bdadbbc1575a4a8">n_lat_inc</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00210"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#af2024f61a85be42d5d5b6dfccaa42c94"> 210</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__sf.html#af2024f61a85be42d5d5b6dfccaa42c94">d_lat_inc</a>; </div> <div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a24264e3b9e95173c77a4adf17f00d4a2"> 212</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a24264e3b9e95173c77a4adf17f00d4a2">n_lon_inc</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00213"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a5be8ca88c10f1976c99c7d0fee0c2780"> 213</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__file__sf.html#a5be8ca88c10f1976c99c7d0fee0c2780">d_lon_inc</a>; </div> <div class="line"><a name="l00215"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a645f1b6353ac4aec58537d1c9b378cc8"> 215</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__sf.html#a645f1b6353ac4aec58537d1c9b378cc8">n_gs_count</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00216"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a013944665607792c0502534487173694"> 216</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__sf.html#a013944665607792c0502534487173694">i_gs_count</a>; </div> <div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="structntv2__file__sf.html#a1ceff07040cd8637f7b4ce8bc5c3fc31"> 217</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__file__sf.html#a1ceff07040cd8637f7b4ce8bc5c3fc31">p_gs_count</a>; </div> <div class="line"><a name="l00218"></a><span class="lineno"> 218</span> };</div> <div class="line"><a name="l00219"></a><span class="lineno"> 219</span> </div> <div class="line"><a name="l00220"></a><span class="lineno"> 220</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00235"></a><span class="lineno"> 235</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__file__end.html">ntv2_file_end</a> NTV2_FILE_END;</div> <div class="line"><a name="l00236"></a><span class="lineno"><a class="code" href="structntv2__file__end.html"> 236</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__file__end.html">ntv2_file_end</a></div> <div class="line"><a name="l00237"></a><span class="lineno"> 237</span> {</div> <div class="line"><a name="l00238"></a><span class="lineno"><a class="code" href="structntv2__file__end.html#a801cd328a42a0f3ba5da42201dd92f4e"> 238</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__end.html#a801cd328a42a0f3ba5da42201dd92f4e">n_end</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00239"></a><span class="lineno"><a class="code" href="structntv2__file__end.html#a50df9cd0bebce55591bec9dd9b3e415b"> 239</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__file__end.html#a50df9cd0bebce55591bec9dd9b3e415b">filler</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>]; </div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span> };</div> <div class="line"><a name="l00242"></a><span class="lineno"> 242</span> </div> <div class="line"><a name="l00243"></a><span class="lineno"> 243</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00251"></a><span class="lineno"> 251</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__file__gs.html">ntv2_file_gs</a> NTV2_FILE_GS;</div> <div class="line"><a name="l00252"></a><span class="lineno"><a class="code" href="structntv2__file__gs.html"> 252</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__file__gs.html">ntv2_file_gs</a></div> <div class="line"><a name="l00253"></a><span class="lineno"> 253</span> {</div> <div class="line"><a name="l00254"></a><span class="lineno"><a class="code" href="structntv2__file__gs.html#a6031e82dbac89422aad82d1c65ff275e"> 254</a></span>  <span class="keywordtype">float</span> <a class="code" href="structntv2__file__gs.html#a6031e82dbac89422aad82d1c65ff275e">f_lat_shift</a>; </div> <div class="line"><a name="l00255"></a><span class="lineno"><a class="code" href="structntv2__file__gs.html#ae136b8f19d76e50a807806106966375b"> 255</a></span>  <span class="keywordtype">float</span> <a class="code" href="structntv2__file__gs.html#ae136b8f19d76e50a807806106966375b">f_lon_shift</a>; </div> <div class="line"><a name="l00256"></a><span class="lineno"><a class="code" href="structntv2__file__gs.html#a6c650b9b0976cfa7cd188a1c55a13f33"> 256</a></span>  <span class="keywordtype">float</span> <a class="code" href="structntv2__file__gs.html#a6c650b9b0976cfa7cd188a1c55a13f33">f_lat_accuracy</a>; </div> <div class="line"><a name="l00257"></a><span class="lineno"><a class="code" href="structntv2__file__gs.html#aa30c11f50c89f07b0f6ca4b25f019d61"> 257</a></span>  <span class="keywordtype">float</span> <a class="code" href="structntv2__file__gs.html#aa30c11f50c89f07b0f6ca4b25f019d61">f_lon_accuracy</a>; </div> <div class="line"><a name="l00258"></a><span class="lineno"> 258</span> };</div> <div class="line"><a name="l00259"></a><span class="lineno"> 259</span> </div> <div class="line"><a name="l00260"></a><span class="lineno"> 260</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00261"></a><span class="lineno"> 261</span> <span class="comment">/* NTv2 internal structs */</span></div> <div class="line"><a name="l00262"></a><span class="lineno"> 262</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00263"></a><span class="lineno"> 263</span> </div> <div class="line"><a name="l00264"></a><span class="lineno"> 264</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00265"></a><span class="lineno"> 265</span> </div> <div class="line"><a name="l00266"></a><span class="lineno"><a class="code" href="libntv2_8h.html#acccdea4f2bf68cc0186fe50dbbcd1305"> 266</a></span> <span class="keyword">typedef</span> <span class="keywordtype">float</span> <a class="code" href="libntv2_8h.html#acccdea4f2bf68cc0186fe50dbbcd1305">NTV2_SHIFT</a> [2]; </div> <div class="line"><a name="l00275"></a><span class="lineno"> 275</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__rec.html">ntv2_rec</a> NTV2_REC;</div> <div class="line"><a name="l00276"></a><span class="lineno"><a class="code" href="structntv2__rec.html"> 276</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__rec.html">ntv2_rec</a></div> <div class="line"><a name="l00277"></a><span class="lineno"> 277</span> {</div> <div class="line"><a name="l00278"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a28c0c71533aa52db51483310d3c37270"> 278</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__rec.html#a28c0c71533aa52db51483310d3c37270">record_name</a>[<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>+4]; </div> <div class="line"><a name="l00279"></a><span class="lineno"><a class="code" href="structntv2__rec.html#ad95990239ddca25c6d02b2911d604179"> 279</a></span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__rec.html#ad95990239ddca25c6d02b2911d604179">parent_name</a>[<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>+4]; </div> <div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a216a97cbec4baef0fc8d6f8f1477364a"> 281</a></span>  NTV2_REC * <a class="code" href="structntv2__rec.html#a216a97cbec4baef0fc8d6f8f1477364a">parent</a>; </div> <div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="structntv2__rec.html#aac55a8d8c3b1d69b9c5cb08189843a4b"> 282</a></span>  NTV2_REC * <a class="code" href="structntv2__rec.html#aac55a8d8c3b1d69b9c5cb08189843a4b">sub</a>; </div> <div class="line"><a name="l00283"></a><span class="lineno"><a class="code" href="structntv2__rec.html#adfaefa601b2ed7a8d2d35870f160adff"> 283</a></span>  NTV2_REC * <a class="code" href="structntv2__rec.html#adfaefa601b2ed7a8d2d35870f160adff">next</a>; </div> <div class="line"><a name="l00285"></a><span class="lineno"><a class="code" href="structntv2__rec.html#ade81c8949824fee15bfb92a137dd4d3c"> 285</a></span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> <a class="code" href="structntv2__rec.html#ade81c8949824fee15bfb92a137dd4d3c">active</a>; </div> <div class="line"><a name="l00287"></a><span class="lineno"><a class="code" href="structntv2__rec.html#add508512efa828b527f0c841ebe22831"> 287</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#add508512efa828b527f0c841ebe22831">num_subs</a>; </div> <div class="line"><a name="l00288"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a239c2b424062dd19692ab08d310e6852"> 288</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#a239c2b424062dd19692ab08d310e6852">rec_num</a>; </div> <div class="line"><a name="l00290"></a><span class="lineno"><a class="code" href="structntv2__rec.html#afd560b804aebcd44057f619100a5a9f0"> 290</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#afd560b804aebcd44057f619100a5a9f0">num</a>; </div> <div class="line"><a name="l00291"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a7bca8818cb0446bbc8dd13cf2b75fafc"> 291</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#a7bca8818cb0446bbc8dd13cf2b75fafc">nrows</a>; </div> <div class="line"><a name="l00292"></a><span class="lineno"><a class="code" href="structntv2__rec.html#af1af1a7328979814d5c8e281550b7332"> 292</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#af1af1a7328979814d5c8e281550b7332">ncols</a>; </div> <div class="line"><a name="l00294"></a><span class="lineno"><a class="code" href="structntv2__rec.html#aadd8d4f2e53649a2c7e030fb82499f81"> 294</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__rec.html#aadd8d4f2e53649a2c7e030fb82499f81">lat_min</a>; </div> <div class="line"><a name="l00295"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a60e349fe747bd19c2d403d57969afd00"> 295</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__rec.html#a60e349fe747bd19c2d403d57969afd00">lat_max</a>; </div> <div class="line"><a name="l00296"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a18fa793e4312a55e064acb0324bd243b"> 296</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__rec.html#a18fa793e4312a55e064acb0324bd243b">lat_inc</a>; </div> <div class="line"><a name="l00298"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a179f8f5b65af3dfd07f467cb9dbc0761"> 298</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__rec.html#a179f8f5b65af3dfd07f467cb9dbc0761">lon_min</a>; </div> <div class="line"><a name="l00299"></a><span class="lineno"><a class="code" href="structntv2__rec.html#ad4482252de99977a2ddd085d9cbcccfd"> 299</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__rec.html#ad4482252de99977a2ddd085d9cbcccfd">lon_max</a>; </div> <div class="line"><a name="l00300"></a><span class="lineno"><a class="code" href="structntv2__rec.html#ab070e026158db3aa4bcc3ec0e5526e0d"> 300</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__rec.html#ab070e026158db3aa4bcc3ec0e5526e0d">lon_inc</a>; </div> <div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  <span class="comment">/* These fields are only used for binary files. */</span></div> <div class="line"><a name="l00303"></a><span class="lineno"> 303</span> </div> <div class="line"><a name="l00304"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a50f8ff1d9cb54dfb5024997d8d14cf9a"> 304</a></span>  <span class="keywordtype">long</span> <a class="code" href="structntv2__rec.html#a50f8ff1d9cb54dfb5024997d8d14cf9a">offset</a>; </div> <div class="line"><a name="l00305"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a168dcbd60b3bba0a2761aa6eaeca6e8d"> 305</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#a168dcbd60b3bba0a2761aa6eaeca6e8d">sskip</a>; </div> <div class="line"><a name="l00306"></a><span class="lineno"><a class="code" href="structntv2__rec.html#a6a640a964c4b350d991b2b0db78f1848"> 306</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#a6a640a964c4b350d991b2b0db78f1848">nskip</a>; </div> <div class="line"><a name="l00307"></a><span class="lineno"><a class="code" href="structntv2__rec.html#aff3d481716e335563dd5d471e9bee65d"> 307</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#aff3d481716e335563dd5d471e9bee65d">wskip</a>; </div> <div class="line"><a name="l00308"></a><span class="lineno"><a class="code" href="structntv2__rec.html#afbdc7a18f8ea8936550edfaba155c92d"> 308</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__rec.html#afbdc7a18f8ea8936550edfaba155c92d">eskip</a>; </div> <div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  <span class="comment">/* This may be null if data is to be read on-the-fly. */</span></div> <div class="line"><a name="l00311"></a><span class="lineno"> 311</span> </div> <div class="line"><a name="l00312"></a><span class="lineno"><a class="code" href="structntv2__rec.html#aeedf56dcb6b5247a69502c743970f789"> 312</a></span>  NTV2_SHIFT * <a class="code" href="structntv2__rec.html#aeedf56dcb6b5247a69502c743970f789">shifts</a>; </div> <div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <span class="comment">/* This may be null if not wanted. Always null if shifts is null. */</span></div> <div class="line"><a name="l00315"></a><span class="lineno"> 315</span> </div> <div class="line"><a name="l00316"></a><span class="lineno"><a class="code" href="structntv2__rec.html#aed0425c16156d8eea0d576d931d5858c"> 316</a></span>  NTV2_SHIFT * <a class="code" href="structntv2__rec.html#aed0425c16156d8eea0d576d931d5858c">accurs</a>; </div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span> };</div> <div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div> <div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structntv2__hdr.html">ntv2_hdr</a> NTV2_HDR;</div> <div class="line"><a name="l00326"></a><span class="lineno"><a class="code" href="structntv2__hdr.html"> 326</a></span> <span class="keyword">struct </span><a class="code" href="structntv2__hdr.html">ntv2_hdr</a></div> <div class="line"><a name="l00327"></a><span class="lineno"> 327</span> {</div> <div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__hdr.html#aed4ec48d0d7f7a437fccf775e6546d06">path</a> [<a class="code" href="libntv2_8h.html#aea0bca060b640ae0440fe7b92f38b95c">NTV2_MAX_PATH_LEN</a>];</div> <div class="line"><a name="l00330"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a1050ae9b697b2a3abad9d90d51537c5d"> 330</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__hdr.html#a1050ae9b697b2a3abad9d90d51537c5d">file_type</a>; </div> <div class="line"><a name="l00332"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#ab40eaecc0e28998763e5ca1f9958b172"> 332</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__hdr.html#ab40eaecc0e28998763e5ca1f9958b172">num_recs</a>; </div> <div class="line"><a name="l00333"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a102d5a99677dcfe821f6d450d523ddb4"> 333</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__hdr.html#a102d5a99677dcfe821f6d450d523ddb4">num_parents</a>; </div> <div class="line"><a name="l00335"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a1ab18938f2537509e9bf7b3e955c143c"> 335</a></span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> <a class="code" href="structntv2__hdr.html#a1ab18938f2537509e9bf7b3e955c143c">keep_orig</a>; </div> <div class="line"><a name="l00336"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#ac073bfb566396bdbc371b54787ee743a"> 336</a></span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> <a class="code" href="structntv2__hdr.html#ac073bfb566396bdbc371b54787ee743a">pads_present</a>; </div> <div class="line"><a name="l00337"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a78a1e84142fddb860393c0b916eba0b8"> 337</a></span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> <a class="code" href="structntv2__hdr.html#a78a1e84142fddb860393c0b916eba0b8">swap_data</a>; </div> <div class="line"><a name="l00338"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#ac13329f7c044d681e60ae9859ce1af36"> 338</a></span>  <span class="keywordtype">int</span> <a class="code" href="structntv2__hdr.html#ac13329f7c044d681e60ae9859ce1af36">fixed</a>; </div> <div class="line"><a name="l00340"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a9bb5b41482f22d145ec983f24f825afe"> 340</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__hdr.html#a9bb5b41482f22d145ec983f24f825afe">hdr_conv</a>; </div> <div class="line"><a name="l00341"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a33e6b1b2a763a9e3f43c5d4108ce1d67"> 341</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__hdr.html#a33e6b1b2a763a9e3f43c5d4108ce1d67">dat_conv</a>; </div> <div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordtype">char</span> <a class="code" href="structntv2__hdr.html#a581c50c72d4eb168a9c82392ad377d5c">gs_type</a> [<a class="code" href="libntv2_8h.html#a2cbf1baafedc0f272ebab0f953db5416">NTV2_NAME_LEN</a>+4];</div> <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="comment">/* These are the mins and maxes across all sub-files */</span></div> <div class="line"><a name="l00347"></a><span class="lineno"> 347</span> </div> <div class="line"><a name="l00348"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#aa662bf44c64ae3ee92e46250e8f67d8d"> 348</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__hdr.html#aa662bf44c64ae3ee92e46250e8f67d8d">lat_min</a>; </div> <div class="line"><a name="l00349"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a681921796226eece84212c1e4e79797a"> 349</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__hdr.html#a681921796226eece84212c1e4e79797a">lat_max</a>; </div> <div class="line"><a name="l00350"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a6623aa1b74649ef5bd22d890db227f5e"> 350</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__hdr.html#a6623aa1b74649ef5bd22d890db227f5e">lon_min</a>; </div> <div class="line"><a name="l00351"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#ad15865c9fa07ff3a0bd4d6ea0668a774"> 351</a></span>  <span class="keywordtype">double</span> <a class="code" href="structntv2__hdr.html#ad15865c9fa07ff3a0bd4d6ea0668a774">lon_max</a>; </div> <div class="line"><a name="l00353"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a9cf2a8bc778e96aef1e2ac2ce61d017a"> 353</a></span>  NTV2_REC * <a class="code" href="structntv2__hdr.html#a9cf2a8bc778e96aef1e2ac2ce61d017a">recs</a>; </div> <div class="line"><a name="l00354"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a4f709cc0c39fdd25d070ad2a11e1828a"> 354</a></span>  NTV2_REC * <a class="code" href="structntv2__hdr.html#a4f709cc0c39fdd25d070ad2a11e1828a">first_parent</a>; </div> <div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="comment">/* This will be null if data is in memory. */</span></div> <div class="line"><a name="l00357"></a><span class="lineno"> 357</span> </div> <div class="line"><a name="l00358"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a68dcb215af394ee9a5b451367306acd8"> 358</a></span>  FILE * <a class="code" href="structntv2__hdr.html#a68dcb215af394ee9a5b451367306acd8">fp</a>; </div> <div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="comment">/* This should be used if mutex control is needed */</span></div> <div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  <span class="comment">/* for multi-threaded access to the file when */</span></div> <div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  <span class="comment">/* transforming points and reading data on-the-fly. */</span></div> <div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="comment">/* This mutex does not need to be recursive. */</span></div> <div class="line"><a name="l00364"></a><span class="lineno"> 364</span> </div> <div class="line"><a name="l00365"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a95a73dbddd2ad0550f0597c9bb952cc8"> 365</a></span>  <span class="keywordtype">void</span> * <a class="code" href="structntv2__hdr.html#a95a73dbddd2ad0550f0597c9bb952cc8">mutex</a>; </div> <div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="comment">/* These may be null if not wanted. */</span></div> <div class="line"><a name="l00368"></a><span class="lineno"> 368</span> </div> <div class="line"><a name="l00369"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#a073bf52894aa684769ae76d2ba724ae5"> 369</a></span>  NTV2_FILE_OV * <a class="code" href="structntv2__hdr.html#a073bf52894aa684769ae76d2ba724ae5">overview</a>; </div> <div class="line"><a name="l00370"></a><span class="lineno"><a class="code" href="structntv2__hdr.html#af6cb26557238ee9f4768a61ef0605075"> 370</a></span>  NTV2_FILE_SF * <a class="code" href="structntv2__hdr.html#af6cb26557238ee9f4768a61ef0605075">subfiles</a>; </div> <div class="line"><a name="l00371"></a><span class="lineno"> 371</span> };</div> <div class="line"><a name="l00372"></a><span class="lineno"> 372</span> </div> <div class="line"><a name="l00373"></a><span class="lineno"> 373</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00374"></a><span class="lineno"> 374</span> <span class="comment">/* NTv2 error codes */</span></div> <div class="line"><a name="l00375"></a><span class="lineno"> 375</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div> <div class="line"><a name="l00377"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ac60af9d0cfd0ca60b048b6e18924f9a7"> 377</a></span> <span class="preprocessor">#define NTV2_ERR_OK 0</span></div> <div class="line"><a name="l00378"></a><span class="lineno"> 378</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00379"></a><span class="lineno"> 379</span> <span class="comment">/* generic errors */</span></div> <div class="line"><a name="l00380"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ace2ff3dd9579849bac5c8d134a60fbf8"> 380</a></span> <span class="preprocessor">#define NTV2_ERR_NO_MEMORY 1</span></div> <div class="line"><a name="l00381"></a><span class="lineno"><a class="code" href="libntv2_8h.html#acd0a6df7533aaeae68776260b6b7c614"> 381</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_IOERR 2</span></div> <div class="line"><a name="l00382"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ad9bdf80699c85264a61a94c129baa539"> 382</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_NULL_HDR 3</span></div> <div class="line"><a name="l00383"></a><span class="lineno"> 383</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00384"></a><span class="lineno"> 384</span> <span class="comment">/* warnings */</span></div> <div class="line"><a name="l00385"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a0b7206a1b71893485bb8f61913c353d2"> 385</a></span> <span class="preprocessor">#define NTV2_ERR_FILE_NEEDS_FIXING 101</span></div> <div class="line"><a name="l00386"></a><span class="lineno"> 386</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="comment">/* read errors that may be ignored */</span></div> <div class="line"><a name="l00388"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a184c3dc2fb7188b599c9b9880f9dc3ca"> 388</a></span> <span class="preprocessor">#define NTV2_ERR_START 200</span></div> <div class="line"><a name="l00389"></a><span class="lineno"> 389</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00390"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ac46006c45a0080a5f9fd6d4d309fdd2a"> 390</a></span> <span class="preprocessor">#define NTV2_ERR_INVALID_LAT_MIN_MAX 201</span></div> <div class="line"><a name="l00391"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a283df2b1a2fbbba09302263a4cb55ebf"> 391</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LON_MIN_MAX 202</span></div> <div class="line"><a name="l00392"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ad7e4eb0f405ac142be6de395a080aad9"> 392</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LAT_MIN 203</span></div> <div class="line"><a name="l00393"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a7c5f9ffea9ebdd88a54053af0f00b397"> 393</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LAT_MAX 204</span></div> <div class="line"><a name="l00394"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a082584e70287c4201280b5393290c3f4"> 394</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LAT_INC 205</span></div> <div class="line"><a name="l00395"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a86047d8655e50c0eaebac8a5a6a61254"> 395</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LON_INC 206</span></div> <div class="line"><a name="l00396"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a372a46049a02a0cd6b081ca9b1e28f77"> 396</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LON_MIN 207</span></div> <div class="line"><a name="l00397"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a0980ab79fa4d6da9253d4f271aac9fb8"> 397</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LON_MAX 208</span></div> <div class="line"><a name="l00398"></a><span class="lineno"> 398</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00399"></a><span class="lineno"> 399</span> <span class="comment">/* unrecoverable errors */</span></div> <div class="line"><a name="l00400"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a6eff13a374f574edf95b13485bc385a4"> 400</a></span> <span class="preprocessor">#define NTV2_ERR_UNRECOVERABLE_START 300</span></div> <div class="line"><a name="l00401"></a><span class="lineno"> 401</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00402"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aedec8930294b71bdaa02689546fe6c5d"> 402</a></span> <span class="preprocessor">#define NTV2_ERR_INVALID_NUM_OREC 301</span></div> <div class="line"><a name="l00403"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a594e5137af9e32c35395cc92b856b59c"> 403</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_NUM_SREC 302</span></div> <div class="line"><a name="l00404"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a14d49c2b2cd219cd4f07d423b266a4a7"> 404</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_NUM_FILE 303</span></div> <div class="line"><a name="l00405"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a40a320a1eafc41b8aa814a54100e74e4"> 405</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_GS_TYPE 304</span></div> <div class="line"><a name="l00406"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a81e4831b8a9e5cba08fae9071a48c42d"> 406</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_GS_COUNT 305</span></div> <div class="line"><a name="l00407"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a9dccf29d344da87a1fd84eafddb6a001"> 407</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_DELTA 306</span></div> <div class="line"><a name="l00408"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aa725b687f7f5f2b748feba1e29a566c3"> 408</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_PARENT_NAME 307</span></div> <div class="line"><a name="l00409"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a4c2548b4ee132b2d68564dcee61733cb"> 409</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_PARENT_NOT_FOUND 308</span></div> <div class="line"><a name="l00410"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a5a9b260504684696a97314ba671eea95"> 410</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_NO_TOP_LEVEL_PARENT 309</span></div> <div class="line"><a name="l00411"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a4924e0a07d7ef191cadf3e8980cab180"> 411</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_PARENT_LOOP 310</span></div> <div class="line"><a name="l00412"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ae717bb80bcf1b0649066b72b988decb2"> 412</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_PARENT_OVERLAP 311</span></div> <div class="line"><a name="l00413"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aa3498629369a6767d2f98fdcd7e04a03"> 413</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_SUBFILE_OVERLAP 312</span></div> <div class="line"><a name="l00414"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a8f290be000231225bf0a3208915f280d"> 414</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_EXTENT 313</span></div> <div class="line"><a name="l00415"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a35d3d8d7d7efbf69052b9f5565dd05f5"> 415</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_HDRS_NOT_READ 314</span></div> <div class="line"><a name="l00416"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a773eaf2f80ada39169ccf395fe64dde6"> 416</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_UNKNOWN_FILE_TYPE 315</span></div> <div class="line"><a name="l00417"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ab7419633544225e74158dc9bde0a3355"> 417</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_FILE_NOT_BINARY 316</span></div> <div class="line"><a name="l00418"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a30cb633fecb135d7fefb7e5bce8443e8"> 418</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_FILE_NOT_ASCII 317</span></div> <div class="line"><a name="l00419"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ac789d2a381876394db109316a17a4245"> 419</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_NULL_PATH 318</span></div> <div class="line"><a name="l00420"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a21628df2035cbea0f4cd4277654a8ccb"> 420</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_ORIG_DATA_NOT_KEPT 319</span></div> <div class="line"><a name="l00421"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a842967a496abedef5bf91c800be60da4"> 421</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_DATA_NOT_READ 320</span></div> <div class="line"><a name="l00422"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ad7f66c674e6d351790ed93e09606df96"> 422</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_CANNOT_OPEN_FILE 321</span></div> <div class="line"><a name="l00423"></a><span class="lineno"><a class="code" href="libntv2_8h.html#af3847ea1b143dcd64c0e3437d058c3c6"> 423</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_UNEXPECTED_EOF 322</span></div> <div class="line"><a name="l00424"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a453429f5b2a339a7632632e7469b1c78"> 424</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_ERR_INVALID_LINE 323</span></div> <div class="line"><a name="l00425"></a><span class="lineno"> 425</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00426"></a><span class="lineno"> 426</span> <span class="comment">/* fix header reasons (bit-mask) */</span></div> <div class="line"><a name="l00427"></a><span class="lineno"> 427</span> </div> <div class="line"><a name="l00428"></a><span class="lineno"><a class="code" href="libntv2_8h.html#af7cdc187861577cec417463cf1f1757f"> 428</a></span> <span class="preprocessor">#define NTV2_FIX_UNPRINTABLE_CHAR 0x01</span></div> <div class="line"><a name="l00429"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a9a1c6ba1253afdc6afea680db05c398b"> 429</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_NAME_LOWERCASE 0x02</span></div> <div class="line"><a name="l00430"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a48d5f8d584706dc8f2e70ea59b39864f"> 430</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_NAME_NOT_ALPHA 0x04</span></div> <div class="line"><a name="l00431"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ada9be9ad9668220e8498933f53e0fc13"> 431</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_BLANK_PARENT_NAME 0x08</span></div> <div class="line"><a name="l00432"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aff0a52a7b997ceaf276c865255e961cf"> 432</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_BLANK_SUBFILE_NAME 0x10</span></div> <div class="line"><a name="l00433"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a60ca887c514ac3f0f0d8857ea419206f"> 433</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_END_REC_NOT_FOUND 0x20</span></div> <div class="line"><a name="l00434"></a><span class="lineno"><a class="code" href="libntv2_8h.html#abf7b8b5be4962874c78b79f76842eca1"> 434</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_END_REC_NAME_NOT_ALPHA 0x40</span></div> <div class="line"><a name="l00435"></a><span class="lineno"><a class="code" href="libntv2_8h.html#acde7af76658d7d98a3e51e809e183928"> 435</a></span> <span class="preprocessor"></span><span class="preprocessor">#define NTV2_FIX_END_REC_PAD_NOT_ZERO 0x80</span></div> <div class="line"><a name="l00436"></a><span class="lineno"> 436</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00448"></a><span class="lineno"> 448</span> <span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">char</span> * <a class="code" href="libntv2_8h.html#a476058083ab47808ba6823fceeaf13da">ntv2_errmsg</a>(</div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keywordtype">int</span> err_num,</div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keywordtype">char</span> msg_buf[<a class="code" href="libntv2_8h.html#a9d526ee1ae0a34611157e5774ad74639">NTV2_MAX_ERR_LEN</a>]);</div> <div class="line"><a name="l00451"></a><span class="lineno"> 451</span> </div> <div class="line"><a name="l00452"></a><span class="lineno"> 452</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00453"></a><span class="lineno"> 453</span> <span class="comment">/* NTv2 file methods */</span></div> <div class="line"><a name="l00454"></a><span class="lineno"> 454</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00455"></a><span class="lineno"> 455</span> </div> <div class="line"><a name="l00456"></a><span class="lineno"> 456</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="libntv2_8h.html#a500ae54f9d10eb244d3100110ae63e6f">ntv2_filetype</a>(</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *ntv2file);</div> <div class="line"><a name="l00474"></a><span class="lineno"> 474</span> </div> <div class="line"><a name="l00475"></a><span class="lineno"> 475</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00502"></a><span class="lineno"> 502</span> <span class="keyword">extern</span> NTV2_HDR * <a class="code" href="libntv2_8h.html#acac99444b7787a5272348158399d35b1">ntv2_load_file</a>(</div> <div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> * ntv2file,</div> <div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> keep_orig,</div> <div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> read_data,</div> <div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  NTV2_EXTENT * extent,</div> <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordtype">int</span> * prc);</div> <div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div> <div class="line"><a name="l00509"></a><span class="lineno"> 509</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00517"></a><span class="lineno"> 517</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="libntv2_8h.html#ac4929a7b55225938f1bf3bb883b5ddd4">ntv2_delete</a>(</div> <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  NTV2_HDR *hdr);</div> <div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div> <div class="line"><a name="l00520"></a><span class="lineno"> 520</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00521"></a><span class="lineno"> 521</span> </div> <div class="line"><a name="l00522"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a02f7b35edf1f5d2d93f839cc3bcacdfd"> 522</a></span> <span class="preprocessor">#define NTV2_ENDIAN_INP_FILE 0 </span></div> <div class="line"><a name="l00523"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a740545072a411568ba08009ac27828bb"> 523</a></span> <span class="preprocessor">#define NTV2_ENDIAN_BIG 1 </span></div> <div class="line"><a name="l00524"></a><span class="lineno"><a class="code" href="libntv2_8h.html#abd8503df76fd44ee07b63594d1b86e7a"> 524</a></span> <span class="preprocessor">#define NTV2_ENDIAN_LITTLE 2 </span></div> <div class="line"><a name="l00525"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ac2678837d36a7795b92613d6a68d5562"> 525</a></span> <span class="preprocessor">#define NTV2_ENDIAN_NATIVE 3 </span></div> <div class="line"><a name="l00564"></a><span class="lineno"> 564</span> <span class="preprocessor">extern int ntv2_write_file(</span></div> <div class="line"><a name="l00565"></a><span class="lineno"> 565</span> <span class="preprocessor"></span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  <span class="keyword">const</span> <span class="keywordtype">char</span> *path,</div> <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordtype">int</span> byte_order);</div> <div class="line"><a name="l00568"></a><span class="lineno"> 568</span> </div> <div class="line"><a name="l00569"></a><span class="lineno"> 569</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00603"></a><span class="lineno"> 603</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="libntv2_8h.html#ae470a547597f6950e650aaa7f2d0d133">ntv2_validate</a>(</div> <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  NTV2_HDR *hdr,</div> <div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  FILE *fp);</div> <div class="line"><a name="l00606"></a><span class="lineno"> 606</span> </div> <div class="line"><a name="l00607"></a><span class="lineno"> 607</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00608"></a><span class="lineno"> 608</span> </div> <div class="line"><a name="l00609"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a536bae53f072571271bf2103c9be4a39"> 609</a></span> <span class="preprocessor">#define NTV2_DUMP_HDRS_EXT 0x01 </span></div> <div class="line"><a name="l00610"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a3d4d860fbedb5d2acaa01db58e308a6b"> 610</a></span> <span class="preprocessor">#define NTV2_DUMP_HDRS_INT 0x02 </span></div> <div class="line"><a name="l00611"></a><span class="lineno"><a class="code" href="libntv2_8h.html#adc4942933a684cae8e3ed1072d740cea"> 611</a></span> <span class="preprocessor">#define NTV2_DUMP_HDRS_BOTH 0x03 </span></div> <div class="line"><a name="l00612"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aad9d0fd3345539df1792e24a4e04ce68"> 612</a></span> <span class="preprocessor">#define NTV2_DUMP_HDRS_SUMMARY 0x04 </span></div> <div class="line"><a name="l00613"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a395dd2f7ce4a8ce17ec4773f99e67b7f"> 613</a></span> <span class="preprocessor">#define NTV2_DUMP_DATA 0x10 </span></div> <div class="line"><a name="l00614"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aba55dc7d624e7f1bc1d028f7b9e8bbf3"> 614</a></span> <span class="preprocessor">#define NTV2_DUMP_DATA_ACC 0x30 </span></div> <div class="line"><a name="l00627"></a><span class="lineno"> 627</span> <span class="preprocessor">extern void ntv2_dump(</span></div> <div class="line"><a name="l00628"></a><span class="lineno"> 628</span> <span class="preprocessor"></span> <span class="keyword">const</span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  FILE *fp,</div> <div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordtype">int</span> mode);</div> <div class="line"><a name="l00631"></a><span class="lineno"> 631</span> </div> <div class="line"><a name="l00632"></a><span class="lineno"> 632</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00648"></a><span class="lineno"> 648</span> <span class="keyword">extern</span> <span class="keywordtype">void</span> <a class="code" href="libntv2_8h.html#ac591c26a640a695db355ac819f3751de">ntv2_list</a>(</div> <div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  <span class="keyword">const</span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  FILE *fp,</div> <div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  <span class="keywordtype">int</span> mode,</div> <div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  <a class="code" href="libntv2_8h.html#ab2479579ea4e6da398d5dc38fc0f0007">NTV2_BOOL</a> do_hdr_line);</div> <div class="line"><a name="l00653"></a><span class="lineno"> 653</span> </div> <div class="line"><a name="l00654"></a><span class="lineno"> 654</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00655"></a><span class="lineno"> 655</span> <span class="comment">/* NTv2 transformation methods */</span></div> <div class="line"><a name="l00656"></a><span class="lineno"> 656</span> <span class="comment">/*------------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00657"></a><span class="lineno"> 657</span> </div> <div class="line"><a name="l00658"></a><span class="lineno"> 658</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00659"></a><span class="lineno"> 659</span> </div> <div class="line"><a name="l00660"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a3e2c4254d2ac0f61328e18f2a2463b1b"> 660</a></span> <span class="preprocessor">#define NTV2_STATUS_NOTFOUND 0 </span></div> <div class="line"><a name="l00661"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a76534c1f127a8c03cc9f836a37e40ab0"> 661</a></span> <span class="preprocessor">#define NTV2_STATUS_CONTAINED 1 </span></div> <div class="line"><a name="l00662"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a9ec58f5064d7fc7a47cce99df7775e81"> 662</a></span> <span class="preprocessor">#define NTV2_STATUS_NORTH 2 </span></div> <div class="line"><a name="l00663"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a29a901d47ad16e87f5daabc03ebc3224"> 663</a></span> <span class="preprocessor">#define NTV2_STATUS_WEST 3 </span></div> <div class="line"><a name="l00664"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aa33162b7dd9f82aa4fe2f80de975b1c6"> 664</a></span> <span class="preprocessor">#define NTV2_STATUS_NORTH_WEST 4 </span></div> <div class="line"><a name="l00665"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a213a31f2deb8e5ff6f85cf1875847cbe"> 665</a></span> <span class="preprocessor">#define NTV2_STATUS_OUTSIDE_CELL 5 </span></div> <div class="line"><a name="l00680"></a><span class="lineno"> 680</span> <span class="preprocessor">extern const NTV2_REC * ntv2_find_rec(</span></div> <div class="line"><a name="l00681"></a><span class="lineno"> 681</span> <span class="preprocessor"></span> <span class="keyword">const</span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordtype">double</span> lon,</div> <div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keywordtype">double</span> lat,</div> <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordtype">int</span> *pstatus);</div> <div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div> <div class="line"><a name="l00686"></a><span class="lineno"> 686</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="libntv2_8h.html#a82816ba328a56ee4dd4cee595b9ccb04">ntv2_forward</a>(</div> <div class="line"><a name="l00706"></a><span class="lineno"> 706</span>  <span class="keyword">const</span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keywordtype">double</span> deg_factor,</div> <div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  <span class="keywordtype">int</span> n,</div> <div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <a class="code" href="libntv2_8h.html#ae76b4de123251d6b3579547f13bf29d4">NTV2_COORD</a> coord[]);</div> <div class="line"><a name="l00710"></a><span class="lineno"> 710</span> </div> <div class="line"><a name="l00711"></a><span class="lineno"> 711</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00730"></a><span class="lineno"> 730</span> <span class="keyword">extern</span> <span class="keywordtype">int</span> <a class="code" href="libntv2_8h.html#a33688ca8984125ebd57f2e86d57e0946">ntv2_inverse</a>(</div> <div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  <span class="keyword">const</span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordtype">double</span> deg_factor,</div> <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordtype">int</span> n,</div> <div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <a class="code" href="libntv2_8h.html#ae76b4de123251d6b3579547f13bf29d4">NTV2_COORD</a> coord[]);</div> <div class="line"><a name="l00735"></a><span class="lineno"> 735</span> </div> <div class="line"><a name="l00736"></a><span class="lineno"> 736</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00737"></a><span class="lineno"> 737</span> </div> <div class="line"><a name="l00738"></a><span class="lineno"><a class="code" href="libntv2_8h.html#ac33d0080b2937f7c7b59cc0684e71198"> 738</a></span> <span class="preprocessor">#define NTV2_CVT_FORWARD 1 </span></div> <div class="line"><a name="l00739"></a><span class="lineno"><a class="code" href="libntv2_8h.html#a3bd57939bb3c51a520a6cce055002ca2"> 739</a></span> <span class="preprocessor">#define NTV2_CVT_INVERSE 0 </span></div> <div class="line"><a name="l00740"></a><span class="lineno"><a class="code" href="libntv2_8h.html#aca58e6d341e32d764893248e74caebfc"> 740</a></span> <span class="preprocessor">#define NTV2_CVT_REVERSE(n) (1 - n) </span></div> <div class="line"><a name="l00760"></a><span class="lineno"> 760</span> <span class="preprocessor">extern int ntv2_transform(</span></div> <div class="line"><a name="l00761"></a><span class="lineno"> 761</span> <span class="preprocessor"></span> <span class="keyword">const</span> NTV2_HDR *hdr,</div> <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordtype">double</span> deg_factor,</div> <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordtype">int</span> n,</div> <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <a class="code" href="libntv2_8h.html#ae76b4de123251d6b3579547f13bf29d4">NTV2_COORD</a> coord[],</div> <div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  <span class="keywordtype">int</span> direction);</div> <div class="line"><a name="l00766"></a><span class="lineno"> 766</span> </div> <div class="line"><a name="l00767"></a><span class="lineno"> 767</span> <span class="comment">/*---------------------------------------------------------------------*/</span></div> <div class="line"><a name="l00768"></a><span class="lineno"> 768</span> </div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="preprocessor">#ifdef __cplusplus</span></div> <div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="preprocessor"></span>}</div> <div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00773"></a><span class="lineno"> 773</span> <span class="preprocessor">#endif </span><span class="comment">/* LIBNTV2_INCLUDED */</span><span class="preprocessor"></span></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Wed Aug 7 2013 13:28:26 for NTv2 File Processing Routines by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.2 </small></address> </body> </html>