<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://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"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>32blit API: graphics/primitive.cpp File Reference</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="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">32blit API
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('primitive_8cpp.html',''); initResizable(); });
/* @license-end */
</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)">
</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="summary">
<a href="#namespaces">Namespaces</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">primitive.cpp File Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Drawing routines for primitive shapes.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;cstdlib&gt;</code><br />
<code>#include &lt;cmath&gt;</code><br />
<code>#include &quot;surface.hpp&quot;</code><br />
</div><div class="textblock"><div class="dynheader">
Include dependency graph for primitive.cpp:</div>
<div class="dyncontent">
<div class="center"><img src="primitive_8cpp__incl.png" border="0" usemap="#agraphics_2primitive_8cpp" alt=""/></div>
<map name="agraphics_2primitive_8cpp" id="agraphics_2primitive_8cpp">
<area shape="rect" title="Drawing routines for primitive shapes." alt="" coords="25,5,192,32"/>
<area shape="rect" title=" " alt="" coords="5,80,71,107"/>
<area shape="rect" title=" " alt="" coords="461,453,524,480"/>
<area shape="rect" href="surface_8hpp_source.html" title=" " alt="" coords="497,80,595,107"/>
<area shape="rect" title=" " alt="" coords="472,229,559,256"/>
<area shape="rect" title=" " alt="" coords="887,155,965,181"/>
<area shape="rect" title=" " alt="" coords="989,155,1087,181"/>
<area shape="rect" title=" " alt="" coords="251,229,313,256"/>
<area shape="rect" title=" " alt="" coords="197,155,253,181"/>
<area shape="rect" title=" " alt="" coords="633,379,699,405"/>
<area shape="rect" title=" " alt="" coords="338,229,397,256"/>
<area shape="rect" href="font_8hpp_source.html" title=" " alt="" coords="233,304,309,331"/>
<area shape="rect" href="file_8hpp_source.html" title=" " alt="" coords="378,155,509,181"/>
<area shape="rect" href="rect_8hpp_source.html" title=" " alt="" coords="736,155,863,181"/>
<area shape="rect" href="size_8hpp_source.html" title=" " alt="" coords="685,229,761,256"/>
<area shape="rect" href="blend_8hpp_source.html" title=" " alt="" coords="471,304,629,331"/>
<area shape="rect" title=" " alt="" coords="837,229,922,256"/>
<area shape="rect" href="point_8hpp_source.html" title=" " alt="" coords="837,304,919,331"/>
<area shape="rect" href="mat3_8hpp_source.html" title=" " alt="" coords="729,379,813,405"/>
<area shape="rect" href="vec2_8hpp_source.html" title=" " alt="" coords="837,379,919,405"/>
</map>
</div>
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="namespaces"></a>
Namespaces</h2></td></tr>
<tr class="memitem:namespaceblit"><td class="memItemLeft" align="right" valign="top"> &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceblit.html">blit</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:af4783f5b7997290674293078ae452b6c"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceblit.html#af4783f5b7997290674293078ae452b6c">blit::orient2d</a> (Point p1, Point p2, Point p3)</td></tr>
<tr class="separator:af4783f5b7997290674293078ae452b6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0b43bad15157e5f2ed6bb41ae11f934b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespaceblit.html#a0b43bad15157e5f2ed6bb41ae11f934b">blit::is_top_left</a> (const Point &amp;p1, const Point &amp;p2)</td></tr>
<tr class="separator:a0b43bad15157e5f2ed6bb41ae11f934b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Drawing routines for primitive shapes. </p>
</div></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_e79632891301b850df87e9c0030293fa.html">graphics</a></li><li class="navelem"><a class="el" href="primitive_8cpp.html">primitive.cpp</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
