summaryrefslogtreecommitdiffhomepage
path: root/Doc/doxygen/html/_solid_8h_source.html
diff options
context:
space:
mode:
Diffstat (limited to 'Doc/doxygen/html/_solid_8h_source.html')
-rw-r--r--Doc/doxygen/html/_solid_8h_source.html430
1 files changed, 430 insertions, 0 deletions
diff --git a/Doc/doxygen/html/_solid_8h_source.html b/Doc/doxygen/html/_solid_8h_source.html
new file mode 100644
index 0000000..01d93bb
--- /dev/null
+++ b/Doc/doxygen/html/_solid_8h_source.html
@@ -0,0 +1,430 @@
+<!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>Starshatter_Open: D:/SRC/StarshatterSVN/nGenEx/Solid.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="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</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">Starshatter_Open
+ </div>
+ <div id="projectbrief">Open source Starshatter engine</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.1 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li class="current"><a href="files.html"><span>Files</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="files.html"><span>File&#160;List</span></a></li>
+ <li><a href="globals.html"><span>File&#160;Members</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_solid_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Macros</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Solid.h</div> </div>
+</div><!--header-->
+<div class="contents">
+<a href="_solid_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>&#160;<span class="comment">/* Project nGenEx</span></div>
+<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> Destroyer Studios LLC</span></div>
+<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> Copyright © 1997-2004. All Rights Reserved.</span></div>
+<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> SUBSYSTEM: nGenEx.lib</span></div>
+<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> FILE: Solid.h</span></div>
+<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> AUTHOR: John DiCamillo</span></div>
+<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"></span></div>
+<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> OVERVIEW</span></div>
+<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> ========</span></div>
+<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> Classes for rendering solid meshes of polygons</span></div>
+<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment">*/</span></div>
+<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div>
+<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#ifndef Solid_h</span></div>
+<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor"></span><span class="preprocessor">#define Solid_h</span></div>
+<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor"></span></div>
+<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_polygon_8h.html">Polygon.h</a>&quot;</span></div>
+<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_graphic_8h.html">Graphic.h</a>&quot;</span></div>
+<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_video_8h.html">Video.h</a>&quot;</span></div>
+<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_list_8h.html">List.h</a>&quot;</span></div>
+<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div>
+<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div>
+<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_solid.html">Solid</a>;</div>
+<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_model.html">Model</a>;</div>
+<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span><a class="code" href="class_model_file.html">ModelFile</a>;</div>
+<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span><a class="code" href="class_surface.html">Surface</a>;</div>
+<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">class </span><a class="code" href="class_segment.html">Segment</a>;</div>
+<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">class </span><a class="code" href="class_shadow.html">Shadow</a>;</div>
+<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">class </span><a class="code" href="class_light.html">Light</a>;</div>
+<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div>
+<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">class </span><a class="code" href="class_o_p_c_o_d_e__data.html">OPCODE_data</a>; <span class="comment">// for collision detection</span></div>
+<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div>
+<div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div>
+<div class="line"><a name="l00037"></a><span class="lineno"><a class="code" href="class_solid.html"> 37</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_solid.html">Solid</a> : <span class="keyword">public</span> <a class="code" href="class_graphic.html">Graphic</a></div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div>
+<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="code" href="class_solid.html#ad21bf55fa8a51d404142cc6068732688"> 40</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_solid.html#ad21bf55fa8a51d404142cc6068732688">TYPENAME</a>() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;Solid&quot;</span>; }</div>
+<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="code" href="class_solid.html#a3efaf101b464e7ab2722a1afbeaa3552abe8f8f031071632ab6e813cdb128510a"> 42</a></span>&#160; <span class="keyword">enum</span> { <a class="code" href="class_solid.html#a3efaf101b464e7ab2722a1afbeaa3552abe8f8f031071632ab6e813cdb128510a">NAMELEN</a> = 64 };</div>
+<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#addd0b41be579201ab576a27ee727e6db">IsCollisionEnabled</a>();</div>
+<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a49925b6090a9c0e19fd89f23aa3274b6">EnableCollision</a>(<span class="keywordtype">bool</span> enable);</div>
+<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div>
+<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_solid.html#a2cf157c87df66dc3eb8722f9b3ee8f66">Solid</a>();</div>
+<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_solid.html#a55c67924a306157d830520784e3337ca">~Solid</a>();</div>
+<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// operations</span></div>
+<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a0e71ca96f696c318e13076cc4ef44a23">Render</a>(<a class="code" href="class_video.html">Video</a>* video, DWORD flags);</div>
+<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a06e6afdfcca49480605dea4cc4979682">SelectDetail</a>(<a class="code" href="class_projector.html">Projector</a>* p);</div>
+<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a17c9dd93f99482be71e1f0d84a2d1b36">ProjectScreenRect</a>(<a class="code" href="class_projector.html">Projector</a>* p);</div>
+<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a354fc67fa256910a6cdf7a59e11cf38c">Update</a>();</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// accessors / mutators</span></div>
+<div class="line"><a name="l00057"></a><span class="lineno"><a class="code" href="class_solid.html#a994ce9964ce1beb66b08265e7f991ac9"> 57</a></span>&#160; <a class="code" href="class_model.html">Model</a>* <a class="code" href="class_solid.html#a994ce9964ce1beb66b08265e7f991ac9">GetModel</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_solid.html#af40b436e67a38f424ea63758efc063c4">model</a>; }</div>
+<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a1b41e58e7da732a6ec14cd92843ab18f">GetAllTextures</a>(<a class="code" href="class_list.html">List&lt;Bitmap&gt;</a>&amp; textures);</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div>
+<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#a5ee4afbfc3745b1cdd263d9238aeeeab">IsDynamic</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a6241c25ca9257634b252205c7b84cf50">SetDynamic</a>(<span class="keywordtype">bool</span> d);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#afb57078268f5eac0ab7796d2359d9fe8">SetLuminous</a>(<span class="keywordtype">bool</span> l);</div>
+<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(<span class="keyword">const</span> <a class="code" href="struct_matrix.html">Matrix</a>&amp; o);</div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a387ee6d94b3b29bb6411aeca8d519166">SetOrientation</a>(<span class="keyword">const</span> <a class="code" href="class_solid.html">Solid</a>&amp; match);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="class_solid.html#a1d78a55ebf9711da164c72779825806b"> 65</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_matrix.html">Matrix</a>&amp; <a class="code" href="class_solid.html#a1d78a55ebf9711da164c72779825806b">Orientation</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_solid.html#a50b42aa7272e5fcf0d1d74aeb95ae2b6">orientation</a>; }</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="class_solid.html#a5582b706060d4756d533d5d21397e7d7"> 66</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_solid.html#a5582b706060d4756d533d5d21397e7d7">Roll</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_solid.html#aa0aa6b0cd5886f56cb2c8d91a5824a2f">roll</a>; }</div>
+<div class="line"><a name="l00067"></a><span class="lineno"><a class="code" href="class_solid.html#aa187510533606f8edc626de5d62da0ca"> 67</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_solid.html#aa187510533606f8edc626de5d62da0ca">Pitch</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_solid.html#a40144ce380c917462e8cab689c18e0fd">pitch</a>; }</div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="code" href="class_solid.html#a3536c3c9ecb98d4b4d39e98ad52b2c72"> 68</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_solid.html#a3536c3c9ecb98d4b4d39e98ad52b2c72">Yaw</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_solid.html#a3eb52001f0f80ee00527a4238e061c2c">yaw</a>; }</div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="code" href="class_solid.html#a1f92ed2e54146244b7f2a5f7bbba8d1a"> 69</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#a1f92ed2e54146244b7f2a5f7bbba8d1a">IsSolid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div>
+<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// stencil shadows</span></div>
+<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a667d00c2ef4d91b3b9b8ccf2a344561a">CreateShadows</a>(<span class="keywordtype">int</span> nlights=1);</div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#ace814a0fb8b63897d8d07ff169ddd13b">UpdateShadows</a>(<a class="code" href="class_list.html">List&lt;Light&gt;</a>&amp; lights);</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="code" href="class_solid.html#a0833c3d7cc457ce5ef38ae02f020c1ae"> 74</a></span>&#160; <a class="code" href="class_list.html">List&lt;Shadow&gt;</a>&amp; <a class="code" href="class_solid.html#a0833c3d7cc457ce5ef38ae02f020c1ae">GetShadows</a>() { <span class="keywordflow">return</span> <a class="code" href="class_solid.html#afba73851afcd006f5e093f5683c2d945">shadows</a>; }</div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#a6b5a504565c6b6bc18c8d53e1d46963c">Load</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* mag_file, <span class="keywordtype">double</span> scale=1.0);</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#a6b5a504565c6b6bc18c8d53e1d46963c">Load</a>(<a class="code" href="class_model_file.html">ModelFile</a>* loader, <span class="keywordtype">double</span> scale=1.0);</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_solid.html#af3523ca7f8df117565e53bd087ae60f7">UseModel</a>(<a class="code" href="class_model.html">Model</a>* <a class="code" href="class_solid.html#af40b436e67a38f424ea63758efc063c4">model</a>);</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_solid.html#ad3d9c814c5ee8353eb73af7ed690cd5c">ClearModel</a>();</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#aa150d8e66c6c4945adba5835744aa8d2">Rescale</a>(<span class="keywordtype">double</span> scale);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// collision detection</span></div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_solid.html#a0c075aec759aae3776b53556acdfd530">CollidesWith</a>(<a class="code" href="class_graphic.html">Graphic</a>&amp; o);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_solid.html#a964632366bfef0116e8ab4d540ba597f">CheckRayIntersection</a>(<a class="code" href="struct_point.html">Point</a> pt, <a class="code" href="struct_point.html">Point</a> vpn, <span class="keywordtype">double</span> len, <a class="code" href="struct_point.html">Point</a>&amp; ipt,</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">bool</span> treat_translucent_polys_as_solid=<span class="keyword">true</span>);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="class_solid.html#a5632722aadfd205c75652e8bc45780d3"> 86</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_poly.html">Poly</a>* <a class="code" href="class_solid.html#a5632722aadfd205c75652e8bc45780d3">GetIntersectionPoly</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_solid.html#addde609ac5a74116ec53a5795d2fc80e">intersection_poly</a>; }</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// buffer management</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#ab7fc329a579a0a729095fa683e0bbb88">DeletePrivateData</a>();</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a357eb8304578288cbec5118ce3708114">InvalidateSurfaceData</a>();</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_solid.html#a41c282e465e539825a3935762bda3ee5">InvalidateSegmentData</a>();</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="code" href="class_solid.html#af40b436e67a38f424ea63758efc063c4"> 94</a></span>&#160; <a class="code" href="class_model.html">Model</a>* <a class="code" href="class_solid.html#af40b436e67a38f424ea63758efc063c4">model</a>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno"><a class="code" href="class_solid.html#ab4ccd613c87cff8fde6e13b9c4e3be97"> 95</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_solid.html#ab4ccd613c87cff8fde6e13b9c4e3be97">own_model</a>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="code" href="class_solid.html#a3eb52001f0f80ee00527a4238e061c2c"> 97</a></span>&#160; <span class="keywordtype">float</span> <a class="code" href="class_solid.html#aa0aa6b0cd5886f56cb2c8d91a5824a2f">roll</a>, <a class="code" href="class_solid.html#a40144ce380c917462e8cab689c18e0fd">pitch</a>, <a class="code" href="class_solid.html#a3eb52001f0f80ee00527a4238e061c2c">yaw</a>;</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="class_solid.html#a50b42aa7272e5fcf0d1d74aeb95ae2b6"> 98</a></span>&#160; <a class="code" href="struct_matrix.html">Matrix</a> <a class="code" href="class_solid.html#a50b42aa7272e5fcf0d1d74aeb95ae2b6">orientation</a>;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="class_solid.html#addde609ac5a74116ec53a5795d2fc80e"> 99</a></span>&#160; <a class="code" href="struct_poly.html">Poly</a>* <a class="code" href="class_solid.html#addde609ac5a74116ec53a5795d2fc80e">intersection_poly</a>;</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="code" href="class_solid.html#afba73851afcd006f5e093f5683c2d945"> 101</a></span>&#160; <a class="code" href="class_list.html">List&lt;Shadow&gt;</a> <a class="code" href="class_solid.html#afba73851afcd006f5e093f5683c2d945">shadows</a>;</div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;};</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="code" href="class_model.html"> 106</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_model.html">Model</a></div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="class_model.html#a5636b9113fd1246b3392dd52b3138229"> 108</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_solid.html">Solid</a>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="code" href="class_model.html#add2437741f8e2738ef18a73970619c44"> 109</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_model_file.html">ModelFile</a>;</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="class_model.html#aa3c298995dcf55ad778bbafc6c1a2a75"> 112</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_model.html#aa3c298995dcf55ad778bbafc6c1a2a75">TYPENAME</a>() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;Model&quot;</span>; }</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="code" href="class_model.html#a2c9567c2600c8479242365fd819571efa7ffb2eccd5f5e0985f9eedbc1344c252"> 114</a></span>&#160; <span class="keyword">enum</span> { <a class="code" href="class_model.html#a2c9567c2600c8479242365fd819571efa7ffb2eccd5f5e0985f9eedbc1344c252">MAX_VERTS</a> = 64000, <a class="code" href="class_model.html#a2c9567c2600c8479242365fd819571efaaf3fdee8c646a76044bddc88f76938b0">MAX_POLYS</a> = 16000 };</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="class_model.html#ae3b375de5f6df4faf74a95d64748e048">Model</a>();</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_model.html#ae3b375de5f6df4faf74a95d64748e048">Model</a>(<span class="keyword">const</span> <a class="code" href="class_model.html">Model</a>&amp; m);</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_model.html#ad6ebd2062a0b823db841a0b88baac4c0">~Model</a>();</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_model.html">Model</a>&amp; <a class="code" href="class_model.html#a2a0b077d8ab25e31869d80ece1d46d13">operator = </a>(<span class="keyword">const</span> <a class="code" href="class_model.html">Model</a>&amp; m);</div>
+<div class="line"><a name="l00121"></a><span class="lineno"><a class="code" href="class_model.html#a4943ead367c1d532b61152ab035d28a4"> 121</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_model.html#a4943ead367c1d532b61152ab035d28a4">operator == </a>(<span class="keyword">const</span> <a class="code" href="class_model.html">Model</a>&amp; that)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span> == &amp;that; }</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_model.html#a0299fe0deb112e14ed3da802929aa341">Load</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* mag_file, <span class="keywordtype">double</span> scale=1.0);</div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_model.html#a0299fe0deb112e14ed3da802929aa341">Load</a>(<a class="code" href="class_model_file.html">ModelFile</a>* loader, <span class="keywordtype">double</span> scale=1.0);</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="code" href="class_model.html#a4272d248ec134ccec344feca0095cd92"> 126</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_model.html#a4272d248ec134ccec344feca0095cd92">Name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name; }</div>
+<div class="line"><a name="l00127"></a><span class="lineno"><a class="code" href="class_model.html#a2eca281d394bec3ac1556b2a5f8fabaa"> 127</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_model.html#a2eca281d394bec3ac1556b2a5f8fabaa">NumVerts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nverts; }</div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="class_model.html#a24379fd9ee74cae2a488bf343d7a8835"> 128</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_model.html#a24379fd9ee74cae2a488bf343d7a8835">NumSurfaces</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> surfaces.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="code" href="class_model.html#ab80a4ee7edd28f8581bdcba440415549"> 129</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_model.html#ab80a4ee7edd28f8581bdcba440415549">NumMaterials</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> materials.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); }</div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="code" href="class_model.html#af60c1e820d1feef12d095e361e63bc25"> 130</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_model.html#af60c1e820d1feef12d095e361e63bc25">NumPolys</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> npolys; }</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_model.html#a05d8a979a0a2b9470cbc77a5908ab716">NumSegments</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="class_model.html#a741236c6857616487306481a80456645"> 132</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_model.html#a741236c6857616487306481a80456645">Radius</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> radius; }</div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="code" href="class_model.html#a40d6e7347e160d5d60856ba344b3ce8d"> 133</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_model.html#a40d6e7347e160d5d60856ba344b3ce8d">IsDynamic</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> dynamic; }</div>
+<div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="class_model.html#a765c577214736ed5423833090c871c17"> 134</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#a765c577214736ed5423833090c871c17">SetDynamic</a>(<span class="keywordtype">bool</span> d) { dynamic = d; }</div>
+<div class="line"><a name="l00135"></a><span class="lineno"><a class="code" href="class_model.html#af96a8c387a5c58a53b2bbafe5f96d04e"> 135</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_model.html#af96a8c387a5c58a53b2bbafe5f96d04e">IsLuminous</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> luminous; }</div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="code" href="class_model.html#a32219ab75165cac38abeca612ef09e83"> 136</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#a32219ab75165cac38abeca612ef09e83">SetLuminous</a>(<span class="keywordtype">bool</span> l) { luminous = l; }</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="code" href="class_model.html#ace987f384a7f542279ba7efecfbd37e3"> 138</a></span>&#160; <a class="code" href="class_list.html">List&lt;Surface&gt;</a>&amp; <a class="code" href="class_model.html#ace987f384a7f542279ba7efecfbd37e3">GetSurfaces</a>() { <span class="keywordflow">return</span> surfaces; }</div>
+<div class="line"><a name="l00139"></a><span class="lineno"><a class="code" href="class_model.html#a33fd31e6556eb7c14299081302d7f387"> 139</a></span>&#160; <a class="code" href="class_list.html">List&lt;Material&gt;</a>&amp; <a class="code" href="class_model.html#a33fd31e6556eb7c14299081302d7f387">GetMaterials</a>() { <span class="keywordflow">return</span> materials; }</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_material.html">Material</a>* <a class="code" href="class_model.html#a7b8ed80ecf72a969573d142f47d68dfd">FindMaterial</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* mtl_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">const</span> <a class="code" href="struct_material.html">Material</a>* <a class="code" href="class_model.html#ad26a1949cadc0586663cd9c731785d92">ReplaceMaterial</a>(<span class="keyword">const</span> <a class="code" href="struct_material.html">Material</a>* mtl);</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#af864146e57b38da73d54a75d25d877ab">GetAllTextures</a>(<a class="code" href="class_list.html">List&lt;Bitmap&gt;</a>&amp; textures);</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="struct_poly.html">Poly</a>* <a class="code" href="class_model.html#ac2b2e65efcb0156fe47b285a1560cfe6">AddPolys</a>(<span class="keywordtype">int</span> nsurf, <span class="keywordtype">int</span> npolys, <span class="keywordtype">int</span> nverts);</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#ab754406676210df40bd0c1386b984e55">ExplodeMesh</a>();</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#a8ed158ef176718b7907e1616b59a188b">OptimizeMesh</a>();</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#aa6393bdd504593e0b45a66b5eb04feae">OptimizeMaterials</a>();</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#a222e4281c8c413c3804abd8a71096a51">ScaleBy</a>(<span class="keywordtype">double</span> factor);</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#af19c5dcc8516660f1c6190675bd90458">Normalize</a>();</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#acaaa358730bbbe9d28b53900afee410b">SelectPolys</a>(<a class="code" href="class_list.html">List&lt;Poly&gt;</a>&amp;, <a class="code" href="struct_material.html">Material</a>* mtl);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#acaaa358730bbbe9d28b53900afee410b">SelectPolys</a>(<a class="code" href="class_list.html">List&lt;Poly&gt;</a>&amp;, <a class="code" href="struct_vec3.html">Vec3</a> loc);</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#ad03998d29bfa2a38e302a1581e2db8dd">AddSurface</a>(<a class="code" href="class_surface.html">Surface</a>* s);</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#aad44134a30bb111f97ac51c9eee907d2">ComputeTangents</a>();</div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// buffer management</span></div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_model.html#a2d12afd0bae0e611ec96b757427a76a8">DeletePrivateData</a>();</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">bool</span> LoadMag5(BYTE* block, <span class="keywordtype">int</span> len, <span class="keywordtype">double</span> scale);</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">bool</span> LoadMag6(BYTE* block, <span class="keywordtype">int</span> len, <span class="keywordtype">double</span> scale);</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">char</span> name[<a class="code" href="_archive_8h.html#a4411eb14f1a528142d32a8132e6d326c">Solid::NAMELEN</a>];</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_list.html">List&lt;Surface&gt;</a> surfaces;</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="class_list.html">List&lt;Material&gt;</a> materials;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">int</span> nverts;</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">int</span> npolys;</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">float</span> radius;</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">float</span> extents[6];</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">bool</span> luminous;</div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">bool</span> dynamic;</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;};</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div>
+<div class="line"><a name="l00177"></a><span class="lineno"><a class="code" href="class_surface.html"> 177</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_surface.html">Surface</a></div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;{</div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="code" href="class_surface.html#a5636b9113fd1246b3392dd52b3138229"> 179</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_solid.html">Solid</a>;</div>
+<div class="line"><a name="l00180"></a><span class="lineno"><a class="code" href="class_surface.html#a2bf2a0e9b454c55aa5dcb5aa4698697b"> 180</a></span>&#160; <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="class_model.html">Model</a>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="code" href="class_surface.html#a4bfc0346501c0ac3fb522945e8833d6a"> 183</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_surface.html#a4bfc0346501c0ac3fb522945e8833d6a">TYPENAME</a>() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;Surface&quot;</span>; }</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div>
+<div class="line"><a name="l00185"></a><span class="lineno"><a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea52d0351a171810ce0d031c9eced9d82c"> 185</a></span>&#160; <span class="keyword">enum</span> { <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea50b65fc8d72908fccddcf05fbadffced">HIDDEN</a>=1, <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea34cc435921cda7d8f57c628fbed4af40">LOCKED</a>=2, <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea52d0351a171810ce0d031c9eced9d82c">SIMPLE</a>=4, <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdeab980dd584957e179329a776e45d8a6a4">MAX_VERTS</a>=64000, <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdeaff9d360ce41002d60af53c6d150fa339">MAX_POLYS</a>=16000 };</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_surface.html#a8fc57f2a15292135c00545c9d224ec68">Surface</a>();</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <a class="code" href="class_surface.html#a89de75c95cb550d432f3ea4ed1429db0">~Surface</a>();</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div>
+<div class="line"><a name="l00190"></a><span class="lineno"><a class="code" href="class_surface.html#ae5962d10caeeaddab52c283263cc40f0"> 190</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_surface.html#ae5962d10caeeaddab52c283263cc40f0">operator == </a>(<span class="keyword">const</span> <a class="code" href="class_surface.html">Surface</a>&amp; s)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">this</span> == &amp;s; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div>
+<div class="line"><a name="l00192"></a><span class="lineno"><a class="code" href="class_surface.html#a4db10621b23e69043ee63c7e56943878"> 192</a></span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_surface.html#a4db10621b23e69043ee63c7e56943878">Name</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> name; }</div>
+<div class="line"><a name="l00193"></a><span class="lineno"><a class="code" href="class_surface.html#aabffb9ef6a1c0a632bd6d88506ec518b"> 193</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_surface.html#aabffb9ef6a1c0a632bd6d88506ec518b">NumVerts</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex_set ? vertex_set-&gt;<a class="code" href="struct_vertex_set.html#a4942a5af779580847cfe7036b4ba5c3f">nverts</a> : 0; }</div>
+<div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="class_surface.html#a5018115004cd032ce16bc3db0700fad6"> 194</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_surface.html#a5018115004cd032ce16bc3db0700fad6">NumSegments</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> segments.<a class="code" href="class_list.html#a802e2aa9aaef248591140fa032d20d61">size</a>(); }</div>
+<div class="line"><a name="l00195"></a><span class="lineno"><a class="code" href="class_surface.html#a45cd14771d5cc1937ab85a2e89e5bc08"> 195</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_surface.html#a45cd14771d5cc1937ab85a2e89e5bc08">NumPolys</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> npolys; }</div>
+<div class="line"><a name="l00196"></a><span class="lineno"><a class="code" href="class_surface.html#a11f84569acbe231e17d15a993c7a96d7"> 196</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_surface.html#a11f84569acbe231e17d15a993c7a96d7">NumIndices</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> nindices; }</div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="code" href="class_surface.html#a5816c7baa314654b3df71db70ae592fa"> 197</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_surface.html#a5816c7baa314654b3df71db70ae592fa">IsHidden</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> state &amp; <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea50b65fc8d72908fccddcf05fbadffced">HIDDEN</a> ? <span class="keyword">true</span> : <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="code" href="class_surface.html#a3b2b9d7eb48cd17d17346f24cbf462d3"> 198</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_surface.html#a3b2b9d7eb48cd17d17346f24cbf462d3">IsLocked</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> state &amp; <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea34cc435921cda7d8f57c628fbed4af40">LOCKED</a> ? <span class="keyword">true</span> : <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00199"></a><span class="lineno"><a class="code" href="class_surface.html#a32df161667057ece8beb5120730be386"> 199</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_surface.html#a32df161667057ece8beb5120730be386">IsSimplified</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> state &amp; <a class="code" href="class_surface.html#ae36e23717266597c110fcfd9eca76bdea52d0351a171810ce0d031c9eced9d82c">SIMPLE</a> ? <span class="keyword">true</span> : <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div>
+<div class="line"><a name="l00201"></a><span class="lineno"><a class="code" href="class_surface.html#ac589ce1d865e1c624bd2911f867a05b0"> 201</a></span>&#160; <a class="code" href="class_model.html">Model</a>* <a class="code" href="class_surface.html#ac589ce1d865e1c624bd2911f867a05b0">GetModel</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> model; }</div>
+<div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="class_surface.html#a916cefb968876b6844c0059072589d13"> 202</a></span>&#160; <a class="code" href="class_list.html">List&lt;Segment&gt;</a>&amp; <a class="code" href="class_surface.html#a916cefb968876b6844c0059072589d13">GetSegments</a>() { <span class="keywordflow">return</span> segments; }</div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="code" href="class_surface.html#a9a6594940b0c2281c8025bc2835757c6"> 203</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_point.html">Point</a>&amp; <a class="code" href="class_surface.html#a9a6594940b0c2281c8025bc2835757c6">GetOffset</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> offset; }</div>
+<div class="line"><a name="l00204"></a><span class="lineno"><a class="code" href="class_surface.html#a3273e57c3003afbe098fec720695fba9"> 204</a></span>&#160; <span class="keyword">const</span> <a class="code" href="struct_matrix.html">Matrix</a>&amp; <a class="code" href="class_surface.html#a3273e57c3003afbe098fec720695fba9">GetOrientation</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> orientation; }</div>
+<div class="line"><a name="l00205"></a><span class="lineno"><a class="code" href="class_surface.html#aae62305cc28dd88d1496c45d31206efd"> 205</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_surface.html#aae62305cc28dd88d1496c45d31206efd">Radius</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> radius; }</div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="code" href="class_surface.html#af2fac48e415e8fb46b4b5186b94c0a1b"> 206</a></span>&#160; <a class="code" href="struct_vertex_set.html">VertexSet</a>* <a class="code" href="class_surface.html#af2fac48e415e8fb46b4b5186b94c0a1b">GetVertexSet</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vertex_set; }</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="class_surface.html#a9bcc97d3512578e9244226950874b8db"> 207</a></span>&#160; <a class="code" href="struct_vec3.html">Vec3</a>* <a class="code" href="class_surface.html#a9bcc97d3512578e9244226950874b8db">GetVLoc</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> vloc; }</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="code" href="class_surface.html#a825c00815c558d148be44147e04367e4"> 208</a></span>&#160; <a class="code" href="struct_poly.html">Poly</a>* <a class="code" href="class_surface.html#a825c00815c558d148be44147e04367e4">GetPolys</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> polys; }</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#ad8f51c63c108de0feccdd53bfcfae2f4">SetName</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* n);</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#ac3cf4f8212dfc9107e5ad834d9b0b768">SetHidden</a>(<span class="keywordtype">bool</span> b);</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#adf406a6b06eaf545754ee518df85313b">SetLocked</a>(<span class="keywordtype">bool</span> b);</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a206bf7a31f8780b98c0bcaa75ad0608c">SetSimplified</a>(<span class="keywordtype">bool</span> b);</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#ad5dfc88bc9cc433dd4053997453646bb">CreateVerts</a>(<span class="keywordtype">int</span> nverts);</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a45ce266d6d69b040719a582f7e3c9567">CreatePolys</a>(<span class="keywordtype">int</span> npolys);</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="class_surface.html#a783c7765e41d541360da8deaa6d95093"> 217</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a783c7765e41d541360da8deaa6d95093">AddIndices</a>(<span class="keywordtype">int</span> n) { nindices += n; }</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="struct_poly.html">Poly</a>* <a class="code" href="class_surface.html#ad9e0c786edbd5b4aa2c46e6508506f7f">AddPolys</a>(<span class="keywordtype">int</span> npolys, <span class="keywordtype">int</span> nverts);</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
+<div class="line"><a name="l00220"></a><span class="lineno"><a class="code" href="class_surface.html#a6ebdba562fc85faa22dbb4753aeaa93c"> 220</a></span>&#160; <a class="code" href="class_video_private_data.html">VideoPrivateData</a>* <a class="code" href="class_surface.html#a6ebdba562fc85faa22dbb4753aeaa93c">GetVideoPrivateData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> video_data; }</div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="code" href="class_surface.html#a342830600b282482d54fb035e1b19b58"> 221</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a342830600b282482d54fb035e1b19b58">SetVideoPrivateData</a>(<a class="code" href="class_video_private_data.html">VideoPrivateData</a>* vpd)</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; { video_data = vpd; }</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#ac1c50ff165a9dd13d6982415518bfe51">ScaleBy</a>(<span class="keywordtype">double</span> factor);</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a39cc1068e0f220f2cea36525d7158943">BuildHull</a>();</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a9fd3cfb54fcadd7de7447019cf341dbf">Normalize</a>();</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a61fda76603fac95dda92be3a48208728">SelectPolys</a>(<a class="code" href="class_list.html">List&lt;Poly&gt;</a>&amp;, <a class="code" href="struct_material.html">Material</a>* mtl);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a61fda76603fac95dda92be3a48208728">SelectPolys</a>(<a class="code" href="class_list.html">List&lt;Poly&gt;</a>&amp;, <a class="code" href="struct_vec3.html">Vec3</a> loc);</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a64e619ef3f3aed7bb21be79e722c2ed3">InitializeCollisionHull</a>();</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a3ca4787db62ad45bfc650ec47d89cce5">ComputeTangents</a>();</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a5759d4c9f5002fe065dfc6990c327840">CalcGradients</a>(<a class="code" href="struct_poly.html">Poly</a>&amp; p, <a class="code" href="struct_vec3.html">Vec3</a>&amp; tangent, <a class="code" href="struct_vec3.html">Vec3</a>&amp; binormal);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a53a9de23e78390eaad55ceff8cf954ab">Copy</a>(<a class="code" href="class_surface.html">Surface</a>&amp; s, <a class="code" href="class_model.html">Model</a>* m);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a8c7cc1273b711efea7ab0efa89b9233f">OptimizeMesh</a>();</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_surface.html#a28ff1667ebd576f4b03588aa46d04f09">ExplodeMesh</a>();</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">char</span> name[<a class="code" href="_archive_8h.html#a4411eb14f1a528142d32a8132e6d326c">Solid::NAMELEN</a>];</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <a class="code" href="class_model.html">Model</a>* model;</div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="struct_vertex_set.html">VertexSet</a>* vertex_set; <span class="comment">// for rendering</span></div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="struct_vec3.html">Vec3</a>* vloc; <span class="comment">// for shadow hull</span></div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">float</span> radius;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">int</span> nhull;</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordtype">int</span> npolys;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordtype">int</span> nindices;</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">int</span> state;</div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="struct_poly.html">Poly</a>* polys;</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="class_list.html">List&lt;Segment&gt;</a> segments;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="struct_point.html">Point</a> offset;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="struct_matrix.html">Matrix</a> orientation;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00256"></a><span class="lineno"><a class="code" href="class_surface.html#afb4eba914189523b33e764e3e18a6760"> 256</a></span>&#160; <a class="code" href="class_o_p_c_o_d_e__data.html">OPCODE_data</a>* <a class="code" href="class_surface.html#afb4eba914189523b33e764e3e18a6760">opcode</a>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="keyword">private</span>:</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_video_private_data.html">VideoPrivateData</a>* video_data;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;};</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="code" href="class_segment.html"> 264</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_segment.html">Segment</a></div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="code" href="class_segment.html#a5e3d973d115246a60d6287b935ba6147"> 267</a></span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="class_segment.html#a5e3d973d115246a60d6287b935ba6147">TYPENAME</a>() { <span class="keywordflow">return</span> <span class="stringliteral">&quot;Segment&quot;</span>; }</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="class_segment.html#adfe9fc7ffcc7269f961d4b1f6720d1e8">Segment</a>();</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="class_segment.html#adfe9fc7ffcc7269f961d4b1f6720d1e8">Segment</a>(<span class="keywordtype">int</span> n, <a class="code" href="struct_poly.html">Poly</a>* p, <a class="code" href="struct_material.html">Material</a>* mtl, <a class="code" href="class_model.html">Model</a>* mod=0);</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <a class="code" href="class_segment.html#a76b45a453304f1f485e3bc2fcad58b59">~Segment</a>();</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="code" href="class_segment.html#aa9d693ec6399f7938b95a49f1e84af1e"> 273</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_segment.html#aa9d693ec6399f7938b95a49f1e84af1e">IsSolid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a> ? <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a>-&gt;<a class="code" href="struct_material.html#a6d91a735da85f4b71e8a3c72cd41791e">IsSolid</a>() : <span class="keyword">true</span>; }</div>
+<div class="line"><a name="l00274"></a><span class="lineno"><a class="code" href="class_segment.html#afb0c92ceb94a67cf35854b99bc8957e6"> 274</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_segment.html#afb0c92ceb94a67cf35854b99bc8957e6">IsTranslucent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a> ? <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a>-&gt;<a class="code" href="struct_material.html#a68165fc0818d3dfea81beb28ea82964b">IsTranslucent</a>(): <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00275"></a><span class="lineno"><a class="code" href="class_segment.html#a9fdd9fa338af378ccbf72939ef0cb2fc"> 275</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_segment.html#a9fdd9fa338af378ccbf72939ef0cb2fc">IsGlowing</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a> ? <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a>-&gt;<a class="code" href="struct_material.html#ada5a8c50624e5e3517a696e724f085af">IsGlowing</a>() : <span class="keyword">false</span>; }</div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="class_segment.html#a118039e730308c403cfa8f5c0c7b665f"> 277</a></span>&#160; <a class="code" href="class_video_private_data.html">VideoPrivateData</a>* <a class="code" href="class_segment.html#a118039e730308c403cfa8f5c0c7b665f">GetVideoPrivateData</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="class_segment.html#aa7c8905696a358ea1d169966d8ede65a">video_data</a>; }</div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="code" href="class_segment.html#af2247d6a64c13e41ee3b632fd3f70095"> 278</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_segment.html#af2247d6a64c13e41ee3b632fd3f70095">SetVideoPrivateData</a>(<a class="code" href="class_video_private_data.html">VideoPrivateData</a>* vpd)</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; { <a class="code" href="class_segment.html#aa7c8905696a358ea1d169966d8ede65a">video_data</a> = vpd; }</div>
+<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div>
+<div class="line"><a name="l00281"></a><span class="lineno"><a class="code" href="class_segment.html#aa56fe5f47ddde76648a7aac53934eda8"> 281</a></span>&#160; <span class="keywordtype">int</span> <a class="code" href="class_segment.html#aa56fe5f47ddde76648a7aac53934eda8">npolys</a>;</div>
+<div class="line"><a name="l00282"></a><span class="lineno"><a class="code" href="class_segment.html#a5d14ea63073c220aa084bdaf961269a3"> 282</a></span>&#160; <a class="code" href="struct_poly.html">Poly</a>* <a class="code" href="class_segment.html#a5d14ea63073c220aa084bdaf961269a3">polys</a>;</div>
+<div class="line"><a name="l00283"></a><span class="lineno"><a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706"> 283</a></span>&#160; <a class="code" href="struct_material.html">Material</a>* <a class="code" href="class_segment.html#a315eceab50f153e784630d1705ddf706">material</a>;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="code" href="class_segment.html#a02b25a9d5ce95913122597af5e136dc0"> 284</a></span>&#160; <a class="code" href="class_model.html">Model</a>* <a class="code" href="class_segment.html#a02b25a9d5ce95913122597af5e136dc0">model</a>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"><a class="code" href="class_segment.html#aa7c8905696a358ea1d169966d8ede65a"> 285</a></span>&#160; <a class="code" href="class_video_private_data.html">VideoPrivateData</a>* <a class="code" href="class_segment.html#aa7c8905696a358ea1d169966d8ede65a">video_data</a>;</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;};</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="code" href="class_model_file.html"> 290</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_model_file.html">ModelFile</a></div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{</div>
+<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keyword">public</span>:</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="class_model_file.html#a1e592266a3a854138cf104067d111442">ModelFile</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* fname);</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_model_file.html#a2bbe5c5ecb34cc6a9453a35d9260ed8c">~ModelFile</a>();</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
+<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_model_file.html#ab0ee9e48ddd38ac9178c01110b38baf1">Load</a>(<a class="code" href="class_model.html">Model</a>* m, <span class="keywordtype">double</span> scale=1.0);</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_model_file.html#a895b276bb9dc135f445b1aefae17de6d">Save</a>(<a class="code" href="class_model.html">Model</a>* m);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;<span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="code" href="class_model_file.html#a2d961c745e1876106c49bbac0d310aa4"> 300</a></span>&#160; <span class="keywordtype">char</span> <a class="code" href="class_model_file.html#a2d961c745e1876106c49bbac0d310aa4">filename</a>[256];</div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="code" href="class_model_file.html#a37a4fcdd99a8d1ff8768d14f6a1bc608"> 301</a></span>&#160; <a class="code" href="class_model.html">Model</a>* <a class="code" href="class_model_file.html#a37a4fcdd99a8d1ff8768d14f6a1bc608">model</a>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="comment">// internal accessors:</span></div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="code" href="class_model_file.html#a2da349636577ad9e5135916660c33e3a"> 304</a></span>&#160; <span class="keywordtype">char</span>* <a class="code" href="class_model_file.html#a2da349636577ad9e5135916660c33e3a">pname</a>;</div>
+<div class="line"><a name="l00305"></a><span class="lineno"><a class="code" href="class_model_file.html#a5f8e37bed986965f3e04209bf4a2be49"> 305</a></span>&#160; <span class="keywordtype">int</span>* <a class="code" href="class_model_file.html#a5f8e37bed986965f3e04209bf4a2be49">pnverts</a>;</div>
+<div class="line"><a name="l00306"></a><span class="lineno"><a class="code" href="class_model_file.html#a2962f9f36c2c5c9b0af8bd2a2f63e7de"> 306</a></span>&#160; <span class="keywordtype">int</span>* <a class="code" href="class_model_file.html#a2962f9f36c2c5c9b0af8bd2a2f63e7de">pnpolys</a>;</div>
+<div class="line"><a name="l00307"></a><span class="lineno"><a class="code" href="class_model_file.html#afd8c32e80929b221f23d24e70e83d3f6"> 307</a></span>&#160; <span class="keywordtype">float</span>* <a class="code" href="class_model_file.html#afd8c32e80929b221f23d24e70e83d3f6">pradius</a>;</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;};</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="comment">// +--------------------------------------------------------------------+</span></div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;<span class="preprocessor">#endif Solid_h</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="preprocessor"></span></div>
+</div><!-- fragment --></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_d6625d0f3efd9eb70ff961583505095b.html">nGenEx</a></li><li class="navelem"><a class="el" href="_solid_8h.html">Solid.h</a></li>
+ <li class="footer">Generated on Tue Jun 5 2012 20:46:33 for Starshatter_Open by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.1 </li>
+ </ul>
+</div>
+</body>
+</html>