⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rectangle_8h-source.html

📁 俄罗斯牛人KK的作品,著名的ORDBMS,这里上传最新的3.39版本源代码.希望了解对象关系数据库的同好,请不要错过.
💻 HTML
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"><title>rectangle.h Source File</title><link href="doxygen.css" rel="stylesheet" type="text/css"></head><body><!-- Generated by Doxygen 1.2.18 --><center><a class="qindex" href="index.html">Main Page</a> &nbsp; <a class="qindex" href="hierarchy.html">Class Hierarchy</a> &nbsp; <a class="qindex" href="annotated.html">Compound List</a> &nbsp; <a class="qindex" href="files.html">File List</a> &nbsp; <a class="qindex" href="functions.html">Compound Members</a> &nbsp; </center><hr><h1>rectangle.h</h1><div class="fragment"><pre>00001 <span class="comment">//-&lt; RECTANGLE.H &gt;---------------------------------------------------*--------*</span>00002 <span class="comment">// FastDB                   Version 1.0         (c) 1999  GARRET     *     ?  *</span>00003 <span class="comment">// (Post Relational Database Management System)                      *   /\|  *</span>00004 <span class="comment">//                                                                   *  /  \  *</span>00005 <span class="comment">//                          Created:     26-Nov-2001  K.A. Knizhnik  * / [] \ *</span>00006 <span class="comment">//                          Last update: 26-Nov-2001  K.A. Knizhnik  * GARRET *</span>00007 <span class="comment">//-------------------------------------------------------------------*--------*</span>00008 <span class="comment">// Rectangle class</span>00009 <span class="comment">//-------------------------------------------------------------------*--------*</span>00010 00011 <span class="preprocessor">#ifndef __RECTANGLE_H__</span>00012 <span class="preprocessor"></span><span class="preprocessor">#define __RECTANGLE_H__</span>00013 <span class="preprocessor"></span>00014 BEGIN_FASTDB_NAMESPACE00015 00016 <span class="preprocessor">#ifndef RECTANGLE_DIMENSION</span>00017 <span class="preprocessor"></span><span class="preprocessor">#define RECTANGLE_DIMENSION 2</span>00018 <span class="preprocessor"></span><span class="preprocessor">#endif </span>00019 <span class="preprocessor"></span>00020 <span class="preprocessor">#ifndef RECTANGLE_COORDINATE_TYPE</span>00021 <span class="preprocessor"></span><span class="preprocessor">#define RECTANGLE_COORDINATE_TYPE int4</span>00022 <span class="preprocessor"></span><span class="preprocessor">#define RECTANGLE_AREA_TYPE int8</span>00023 <span class="preprocessor"></span><span class="preprocessor">#endif</span>00024 <span class="preprocessor"></span>00025 00026 <span class="keyword">typedef</span> RECTANGLE_COORDINATE_TYPE coord_t;00027 <span class="keyword">typedef</span> RECTANGLE_AREA_TYPE       area_t;00028 <a name="l00032"></a><a class="code" href="classrectangle.html">00032</a> <span class="keyword">class </span>FASTDB_DLL_ENTRY <a class="code" href="classrectangle.html">rectangle</a>00033 {00034   <span class="keyword">public</span>:00035     <span class="keyword">enum</span> { dim = RECTANGLE_DIMENSION };<a name="l00042"></a><a class="code" href="classrectangle.html#rectanglem0">00042</a>     coord_t boundary[dim*2];00043 00047     <span class="keyword">friend</span> coord_t FASTDB_DLL_ENTRY distance(<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r, <a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; q);00048 <a name="l00052"></a><a class="code" href="classrectangle.html#rectanglel1">00052</a>     <span class="keyword">friend</span> area_t area(<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r) { 00053         area_t area = 1;00054         <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = dim; --i &gt;= 0; area *= r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim] - r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i]);00055         <span class="keywordflow">return</span> area;00056     }00057 <a name="l00061"></a><a class="code" href="classrectangle.html#rectanglea0">00061</a>     <span class="keywordtype">void</span> operator +=(<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r) { 00062         <span class="keywordtype">int</span> i = dim; 00063         <span class="keywordflow">while</span> (--i &gt;= 0) { 00064             boundary[i] = (boundary[i] &lt;= r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i]) 00065                 ? boundary[i] : r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i];00066             boundary[i+dim] = (boundary[i+dim] &gt;= r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim]) 00067                 ? boundary[i+dim] : r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim];00068         }00069     }<a name="l00073"></a><a class="code" href="classrectangle.html#rectanglea1">00073</a>     <a class="code" href="classrectangle.html">rectangle</a> operator + (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00074         <a class="code" href="classrectangle.html">rectangle</a> res;00075         <span class="keywordtype">int</span> i = dim; 00076         <span class="keywordflow">while</span> (--i &gt;= 0) { 00077             res.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i] = (boundary[i] &lt;= r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i]) 00078                 ? boundary[i] : r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i];00079             res.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim] = (boundary[i+dim] &gt;= r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim]) 00080                 ? boundary[i+dim] : r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim];00081         }00082         <span class="keywordflow">return</span> res;00083     }<a name="l00087"></a><a class="code" href="classrectangle.html#rectanglea2">00087</a>     <span class="keywordtype">bool</span> operator &amp; (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{00088         <span class="keywordtype">int</span> i = dim; 00089         <span class="keywordflow">while</span> (--i &gt;= 0) { 00090             <span class="keywordflow">if</span> (boundary[i] &gt; r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim] ||00091                 r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i] &gt; boundary[i+dim])00092             {00093                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00094             }00095         }00096         <span class="keywordflow">return</span> <span class="keyword">true</span>;00097     }<a name="l00102"></a><a class="code" href="classrectangle.html#rectanglea3">00102</a>     <span class="keywordtype">bool</span> operator &lt;= (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00103         <span class="keywordtype">int</span> i = dim; 00104         <span class="keywordflow">while</span> (--i &gt;= 0) { 00105             <span class="keywordflow">if</span> (boundary[i] &lt; r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i] ||00106                 boundary[i+dim] &gt; r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim])00107             {00108                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00109             }00110         }00111         <span class="keywordflow">return</span> <span class="keyword">true</span>;00112     }<a name="l00117"></a><a class="code" href="classrectangle.html#rectanglea4">00117</a>     <span class="keywordtype">bool</span> operator &gt;= (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00118         <span class="keywordtype">int</span> i = dim; 00119         <span class="keywordflow">while</span> (--i &gt;= 0) { 00120             <span class="keywordflow">if</span> (r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i] &lt; boundary[i] ||00121                 r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i+dim] &gt; boundary[i+dim])00122             {00123                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00124             }00125         }00126         <span class="keywordflow">return</span> <span class="keyword">true</span>;00127     }00128 <a name="l00133"></a><a class="code" href="classrectangle.html#rectanglea5">00133</a>     <span class="keywordtype">bool</span> operator &lt; (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00134         <span class="keywordflow">return</span> *<span class="keyword">this</span> &lt;= r &amp;&amp; *<span class="keyword">this</span> != r;00135     }<a name="l00140"></a><a class="code" href="classrectangle.html#rectanglea6">00140</a>     <span class="keywordtype">bool</span> operator &gt; (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00141         <span class="keywordflow">return</span> *<span class="keyword">this</span> &gt;= r &amp;&amp; *<span class="keyword">this</span> != r;00142     }<a name="l00146"></a><a class="code" href="classrectangle.html#rectanglea7">00146</a>     <span class="keywordtype">bool</span> operator == (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00147         <span class="keywordtype">int</span> i = dim*2; 00148         <span class="keywordflow">while</span> (--i &gt;= 0) { 00149             <span class="keywordflow">if</span> (boundary[i] != r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i]) { 00150                 <span class="keywordflow">return</span> <span class="keyword">false</span>;00151             }00152         }00153         <span class="keywordflow">return</span> <span class="keyword">true</span>;00154     }<a name="l00158"></a><a class="code" href="classrectangle.html#rectanglea8">00158</a>     <span class="keywordtype">bool</span> operator != (<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r)<span class="keyword"> const </span>{ 00159         <span class="keywordtype">int</span> i = dim*2; 00160         <span class="keywordflow">while</span> (--i &gt;= 0) { 00161             <span class="keywordflow">if</span> (boundary[i] != r.<a class="code" href="classrectangle.html#rectanglem0">boundary</a>[i]) { 00162                 <span class="keywordflow">return</span> <span class="keyword">true</span>;00163             }00164         }00165         <span class="keywordflow">return</span> <span class="keyword">false</span>;00166     }00167 00168     <span class="keyword">typedef</span> bool (rectangle::*comparator)(<a class="code" href="classrectangle.html">rectangle</a> <span class="keyword">const</span>&amp; r) <span class="keyword">const</span>;00169 };00170 00171 END_FASTDB_NAMESPACE00172 00173 <span class="preprocessor">#endif</span>00174 <span class="preprocessor"></span>00175 </pre></div><hr><address style="align: right;"><small>Generated on Mon Oct 23 13:23:58 2006 for FastDB by<a href="http://www.doxygen.org/index.html"><img src="doxygen.png" alt="doxygen" align="middle" border=0 width=110 height=53></a>1.2.18 </small></address></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -