Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 1cde9f5eeb6e9b0b43fefba286186769 > files > 123

mercator-devel-0.3.0-4.fc15.i686.rpm

<!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"/>
<title>Mercator: Mercator::Shader Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Mercator</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
  <div id="nav-path" class="navpath">
    <ul>
      <li class="navelem"><b>Mercator</b>      </li>
      <li class="navelem"><a class="el" href="classMercator_1_1Shader.html">Shader</a>      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pri-attribs">Private Attributes</a>  </div>
  <div class="headertitle">
<div class="title">Mercator::Shader Class Reference</div>  </div>
</div>
<div class="contents">
<!-- doxytag: class="Mercator::Shader" -->
<p>Base class for <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> objects which create surface data for use when rendering terrain.  
 <a href="classMercator_1_1Shader.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="Shader_8h_source.html">Shader.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Mercator::Shader:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classMercator_1_1Shader.png" usemap="#Mercator::Shader_map" alt=""/>
  <map id="Mercator::Shader_map" name="Mercator::Shader_map">
<area href="classMercator_1_1AreaShader.html" title="Shader for handling areas." alt="Mercator::AreaShader" shape="rect" coords="154,56,298,80"/>
<area href="classMercator_1_1BandShader.html" title="Surface shader that defines the surface between two levels." alt="Mercator::BandShader" shape="rect" coords="154,112,298,136"/>
<area href="classMercator_1_1DepthShader.html" title="Shader to give the appearance of deep murky water." alt="Mercator::DepthShader" shape="rect" coords="154,168,298,192"/>
<area href="classMercator_1_1FillShader.html" title="Shader that fills the surface." alt="Mercator::FillShader" shape="rect" coords="154,224,298,248"/>
<area href="classMercator_1_1GrassShader.html" title="Shader for adding grass to the terrain." alt="Mercator::GrassShader" shape="rect" coords="154,280,298,304"/>
<area href="classMercator_1_1HighShader.html" title="Surface shader that defines the surface above a given level." alt="Mercator::HighShader" shape="rect" coords="154,336,298,360"/>
<area href="classMercator_1_1LowShader.html" title="Surface shader that defines the surface below a given level." alt="Mercator::LowShader" shape="rect" coords="154,392,298,416"/>
<area href="classMercator_1_1TileShader.html" title="Shader agregating surface data." alt="Mercator::TileShader" shape="rect" coords="154,448,298,472"/>
</map>
 </div></div>

<p><a href="classMercator_1_1Shader-members.html">List of all members.</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1e99426c6c90afbb8c54114bb692b861"></a><!-- doxytag: member="Mercator::Shader::Parameters" ref="a1e99426c6c90afbb8c54114bb692b861" args="" -->
typedef std::map&lt; std::string, <br class="typebreak"/>
float &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a1e99426c6c90afbb8c54114bb692b861">Parameters</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">STL map of parameter values for a shader constructor. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5bcc651d08707e2124536036e82d8ce5"></a><!-- doxytag: member="Mercator::Shader::~Shader" ref="a5bcc651d08707e2124536036e82d8ce5" args="()" -->
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a5bcc651d08707e2124536036e82d8ce5">~Shader</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor does nothing interesting. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a775166b2e13eff4473f4d6cbbc2bc242"></a><!-- doxytag: member="Mercator::Shader::getColor" ref="a775166b2e13eff4473f4d6cbbc2bc242" args="() const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a775166b2e13eff4473f4d6cbbc2bc242">getColor</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessor for color flag. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad95856ffe918db07358abddd81feb4bc"></a><!-- doxytag: member="Mercator::Shader::getAlpha" ref="ad95856ffe918db07358abddd81feb4bc" args="() const " -->
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#ad95856ffe918db07358abddd81feb4bc">getAlpha</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Accessor for alpha flag. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="classMercator_1_1Surface.html">Surface</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a0dea70d66bcc68dd955548c24d0acc44">newSurface</a> (const <a class="el" href="classMercator_1_1Segment.html">Segment</a> &amp;) const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> which matches the requirements of this shader.  <a href="#a0dea70d66bcc68dd955548c24d0acc44"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a6a69ca4a474c18f1038cc9a75a419855">checkIntersect</a> (const <a class="el" href="classMercator_1_1Segment.html">Segment</a> &amp;) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Check whether this <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> has any effect on the given <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a>.  <a href="#a6a69ca4a474c18f1038cc9a75a419855"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f8a84ec28757623c24488ae79c8947d"></a><!-- doxytag: member="Mercator::Shader::shade" ref="a3f8a84ec28757623c24488ae79c8947d" args="(Surface &amp;) const =0" -->
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a3f8a84ec28757623c24488ae79c8947d">shade</a> (<a class="el" href="classMercator_1_1Surface.html">Surface</a> &amp;) const =0</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Populate a <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> with data. <br/></td></tr>
<tr><td colspan="2"><h2><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a4918b9de55212b4221683e2b985491cd">Shader</a> (bool color=false, bool alpha=true)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Protected constructor for classes which inherit from this one.  <a href="#a4918b9de55212b4221683e2b985491cd"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pri-attribs"></a>
Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afe9bf17286deabb099732d4287a3fbea"></a><!-- doxytag: member="Mercator::Shader::m_color" ref="afe9bf17286deabb099732d4287a3fbea" args="" -->
const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#afe9bf17286deabb099732d4287a3fbea">m_color</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to control whether this <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> produces color data. <br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2b5350bc03bf41a873ca938221a23198"></a><!-- doxytag: member="Mercator::Shader::m_alpha" ref="a2b5350bc03bf41a873ca938221a23198" args="" -->
const bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classMercator_1_1Shader.html#a2b5350bc03bf41a873ca938221a23198">m_alpha</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Flag to control whether this <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> produces alpha data. <br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Base class for <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> objects which create surface data for use when rendering terrain. </p>
<p><a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> objects take heightfield data for a terrain <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a>, and use it to populate a <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> with data that can then be used to define the appearance of the terrain when rendering. The <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> is used both to create the <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> object of the right type, and to populate the <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> with data once the <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a> heightfield has been generated. </p>
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a4918b9de55212b4221683e2b985491cd"></a><!-- doxytag: member="Mercator::Shader::Shader" ref="a4918b9de55212b4221683e2b985491cd" args="(bool color=false, bool alpha=true)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Mercator::Shader::Shader </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>color</em> = <code>false</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>alpha</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [explicit, protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Protected constructor for classes which inherit from this one. </p>
<p>Permanently sents the color and alpha flags. </p>

</div>
</div>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a6a69ca4a474c18f1038cc9a75a419855"></a><!-- doxytag: member="Mercator::Shader::checkIntersect" ref="a6a69ca4a474c18f1038cc9a75a419855" args="(const Segment &amp;) const =0" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool Mercator::Shader::checkIntersect </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classMercator_1_1Segment.html">Segment</a> &amp;&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [pure virtual]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Check whether this <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> has any effect on the given <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a>. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>true if the given <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a> height range is within the range that this <a class="el" href="classMercator_1_1Shader.html" title="Base class for Shader objects which create surface data for use when rendering terrain.">Shader</a> uses. e.g. A high altitude snow shader will have no effect on low level terrain. </dd></dl>

<p>Implemented in <a class="el" href="classMercator_1_1AreaShader.html#a4dd8dbcebafb09c8fee4ac7c012c6cc9">Mercator::AreaShader</a>, <a class="el" href="classMercator_1_1DepthShader.html#a78923f61d335729886101fe6daff3473">Mercator::DepthShader</a>, <a class="el" href="classMercator_1_1FillShader.html#aeca9c68d8ad06f6646f2b830194efad4">Mercator::FillShader</a>, <a class="el" href="classMercator_1_1GrassShader.html#ab2a6bd393a2953b5905643fe9b70edb6">Mercator::GrassShader</a>, <a class="el" href="classMercator_1_1HighShader.html#a7bbd519b8ea89fc2b287b43a2b303259">Mercator::HighShader</a>, <a class="el" href="classMercator_1_1LowShader.html#ae0fe5a8d9f18b5eb9508d90553a5eba5">Mercator::LowShader</a>, <a class="el" href="classMercator_1_1BandShader.html#a78d44205f6f171d6672a0bf71e2a8a90">Mercator::BandShader</a>, and <a class="el" href="classMercator_1_1TileShader.html#a5cb9b0c15d7ff4804db74485fbbb00b9">Mercator::TileShader</a>.</p>

<p>Referenced by <a class="el" href="classMercator_1_1Terrain.html#a49db6f94fb945ea11503a3661547de6a">Mercator::Terrain::addShader()</a>.</p>

</div>
</div>
<a class="anchor" id="a0dea70d66bcc68dd955548c24d0acc44"></a><!-- doxytag: member="Mercator::Shader::newSurface" ref="a0dea70d66bcc68dd955548c24d0acc44" args="(const Segment &amp;) const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classMercator_1_1Surface.html">Surface</a> * Mercator::Shader::newSurface </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classMercator_1_1Segment.html">Segment</a> &amp;&#160;</td>
          <td class="paramname"><em>segment</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Create a new <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> which matches the requirements of this shader. </p>
<p>Called by terrain when creating a new <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a> to add the necessary <a class="el" href="classMercator_1_1Surface.html" title="Data store for terrain surface data.">Surface</a> objects to that <a class="el" href="classMercator_1_1Segment.html" title="Class storing heightfield and other data for a single fixed size square area of terrain defined by fo...">Segment</a>. </p>

<p>References <a class="el" href="classMercator_1_1Shader.html#a2b5350bc03bf41a873ca938221a23198">m_alpha</a>, and <a class="el" href="classMercator_1_1Shader.html#afe9bf17286deabb099732d4287a3fbea">m_color</a>.</p>

<p>Referenced by <a class="el" href="classMercator_1_1Segment.html#ac75f2abb81cfcd6823d534407fc7081c">Mercator::Segment::addArea()</a>, and <a class="el" href="classMercator_1_1Terrain.html#a49db6f94fb945ea11503a3661547de6a">Mercator::Terrain::addShader()</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li><a class="el" href="Shader_8h_source.html">Shader.h</a></li>
<li>Shader.cpp</li>
</ul>
</div>
<hr class="footer"/><address class="footer"><small>Generated for Mercator by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>