<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.9.7" xml:lang="en-US">
  <compounddef id="db/df5/classPhysicsEngine" kind="class" language="C++" prot="public">
    <compoundname>PhysicsEngine</compoundname>
    <includes refid="d1/d20/PhysicsEngine_8hpp" local="no">PhysicsEngine.hpp</includes>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="db/df5/classPhysicsEngine_1aac07745baaaa47e949089444ecd41247" prot="private" static="no" mutable="no">
        <type>float</type>
        <definition>float PhysicsEngine::m_gravity</definition>
        <argsstring></argsstring>
        <name>m_gravity</name>
        <qualifiedname>PhysicsEngine::m_gravity</qualifiedname>
        <initializer>= 2.0f</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>The acceleration due to gravity in the game. This can safely change during runtime </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="49" column="11" bodyfile="include/PhysicsEngine.hpp" bodystart="49" bodyend="-1"/>
        <referencedby refid="db/df5/classPhysicsEngine_1a65b58126356b154d20e3081ccb6a402e" compoundref="df/da7/PhysicsEngine_8cpp" startline="87" endline="89">SetGravity</referencedby>
        <referencedby refid="db/df5/classPhysicsEngine_1a30d283b6067980e42765340dea6eb62a" compoundref="df/da7/PhysicsEngine_8cpp" startline="17" endline="85">Update</referencedby>
      </memberdef>
      <memberdef kind="variable" id="db/df5/classPhysicsEngine_1add4a407cb22c67709b399c68c99b621e" prot="private" static="no" mutable="no">
        <type>std::vector&lt; <ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref> * &gt;</type>
        <definition>std::vector&lt;IPhysicsComponent*&gt; PhysicsEngine::m_components</definition>
        <argsstring></argsstring>
        <name>m_components</name>
        <qualifiedname>PhysicsEngine::m_components</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Collection of all physics components </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="54" column="17" bodyfile="include/PhysicsEngine.hpp" bodystart="54" bodyend="-1"/>
        <referencedby refid="db/df5/classPhysicsEngine_1aaa69a81964d980456a6ac48816d2f756" compoundref="df/da7/PhysicsEngine_8cpp" startline="11" endline="13">AddComponent</referencedby>
        <referencedby refid="db/df5/classPhysicsEngine_1a30d283b6067980e42765340dea6eb62a" compoundref="df/da7/PhysicsEngine_8cpp" startline="17" endline="85">Update</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="db/df5/classPhysicsEngine_1a7fc9180ea453680df0b863fa157c5b92" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>PhysicsEngine::PhysicsEngine</definition>
        <argsstring>()</argsstring>
        <name>PhysicsEngine</name>
        <qualifiedname>PhysicsEngine::PhysicsEngine</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Construct a new Physics <ref refid="d1/db6/classEngine" kindref="compound">Engine</ref> object </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="16" column="5" bodyfile="src/PhysicsEngine.cpp" bodystart="8" bodyend="8"/>
      </memberdef>
      <memberdef kind="function" id="db/df5/classPhysicsEngine_1ae5f076ee99bbfdbc79ab2d27366d8476" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>PhysicsEngine::~PhysicsEngine</definition>
        <argsstring>()</argsstring>
        <name>~PhysicsEngine</name>
        <qualifiedname>PhysicsEngine::~PhysicsEngine</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Destroy the Physics <ref refid="d1/db6/classEngine" kindref="compound">Engine</ref> object </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="21" column="5" bodyfile="src/PhysicsEngine.cpp" bodystart="9" bodyend="9"/>
      </memberdef>
      <memberdef kind="function" id="db/df5/classPhysicsEngine_1aaa69a81964d980456a6ac48816d2f756" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void PhysicsEngine::AddComponent</definition>
        <argsstring>(IPhysicsComponent *newComponent)</argsstring>
        <name>AddComponent</name>
        <qualifiedname>PhysicsEngine::AddComponent</qualifiedname>
        <param>
          <type><ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref> *</type>
          <declname>newComponent</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Adds a new <ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref> to be handled by the <ref refid="db/df5/classPhysicsEngine" kindref="compound">PhysicsEngine</ref>.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>newComponent</parametername>
</parameternamelist>
<parameterdescription>
<para>a pointer to the added <ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref> </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="28" column="10" bodyfile="src/PhysicsEngine.cpp" bodystart="11" bodyend="13"/>
        <references refid="db/df5/classPhysicsEngine_1add4a407cb22c67709b399c68c99b621e" compoundref="d1/d20/PhysicsEngine_8hpp" startline="54">m_components</references>
        <referencedby refid="d1/db6/classEngine_1a2e3d93df96db6361330d3a41f7b5892b" compoundref="d6/d0c/Engine_8cpp" startline="251" endline="267">Engine::InitializePhysicsSubsystem</referencedby>
      </memberdef>
      <memberdef kind="function" id="db/df5/classPhysicsEngine_1a30d283b6067980e42765340dea6eb62a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void PhysicsEngine::Update</definition>
        <argsstring>()</argsstring>
        <name>Update</name>
        <qualifiedname>PhysicsEngine::Update</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Update all IPhysicsComponents. Resolve collisions between Components all at once. TODO: scale by deltaTime: the Engine-calculated difference between update calls using SDL_GetTicks() </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="35" column="10" bodyfile="src/PhysicsEngine.cpp" bodystart="17" bodyend="85"/>
        <references refid="d9/d15/classIPhysicsComponent_1abb67c9f5741590c7ebcca1434175386a" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="24" endline="26">IPhysicsComponent::GetDimensions</references>
        <references refid="d9/d15/classIPhysicsComponent_1a5a88a9979998bcfe46ec45d4a6c4966b" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="37" endline="37">IPhysicsComponent::GetMass</references>
        <references refid="d9/d15/classIPhysicsComponent_1abfaa678eb1c7312e9bf098bc1473f794" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="20" endline="22">IPhysicsComponent::GetPosition</references>
        <references refid="d9/d15/classIPhysicsComponent_1aae80e0691898c61495f43a7bc2f0e494" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="9" endline="18">IPhysicsComponent::IsColliding</references>
        <references refid="d9/d15/classIPhysicsComponent_1a4136b164031d8fa821316e1664264392" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="34" endline="34">IPhysicsComponent::IsElastic</references>
        <references refid="d9/d15/classIPhysicsComponent_1aaf37980fe6dea6de4d49156b3c4ce998" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="33" endline="33">IPhysicsComponent::IsKinematic</references>
        <references refid="db/df5/classPhysicsEngine_1add4a407cb22c67709b399c68c99b621e" compoundref="d1/d20/PhysicsEngine_8hpp" startline="54">m_components</references>
        <references refid="db/df5/classPhysicsEngine_1aac07745baaaa47e949089444ecd41247" compoundref="d1/d20/PhysicsEngine_8hpp" startline="49">m_gravity</references>
        <referencedby refid="d1/db6/classEngine_1ac84eefe06226f430a2448306e6fd2579" compoundref="d6/d0c/Engine_8cpp" startline="58" endline="83">Engine::Update</referencedby>
      </memberdef>
      <memberdef kind="function" id="db/df5/classPhysicsEngine_1a65b58126356b154d20e3081ccb6a402e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>void</type>
        <definition>void PhysicsEngine::SetGravity</definition>
        <argsstring>(float newGravity)</argsstring>
        <name>SetGravity</name>
        <qualifiedname>PhysicsEngine::SetGravity</qualifiedname>
        <param>
          <type>float</type>
          <declname>newGravity</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Change gravity to the new value.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>newGravity</parametername>
</parameternamelist>
<parameterdescription>
<para>the new value for acceleration due to gravity </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/PhysicsEngine.hpp" line="42" column="10" bodyfile="src/PhysicsEngine.cpp" bodystart="87" bodyend="89"/>
        <references refid="db/df5/classPhysicsEngine_1aac07745baaaa47e949089444ecd41247" compoundref="d1/d20/PhysicsEngine_8hpp" startline="49">m_gravity</references>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>A class to handle all collisions and gravity interactions between <ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponents </ref>. </para>
    </detaileddescription>
    <location file="include/PhysicsEngine.hpp" line="11" column="1" bodyfile="include/PhysicsEngine.hpp" bodystart="11" bodyend="55"/>
    <listofallmembers>
      <member refid="db/df5/classPhysicsEngine_1aaa69a81964d980456a6ac48816d2f756" prot="public" virt="non-virtual"><scope>PhysicsEngine</scope><name>AddComponent</name></member>
      <member refid="db/df5/classPhysicsEngine_1add4a407cb22c67709b399c68c99b621e" prot="private" virt="non-virtual"><scope>PhysicsEngine</scope><name>m_components</name></member>
      <member refid="db/df5/classPhysicsEngine_1aac07745baaaa47e949089444ecd41247" prot="private" virt="non-virtual"><scope>PhysicsEngine</scope><name>m_gravity</name></member>
      <member refid="db/df5/classPhysicsEngine_1a7fc9180ea453680df0b863fa157c5b92" prot="public" virt="non-virtual"><scope>PhysicsEngine</scope><name>PhysicsEngine</name></member>
      <member refid="db/df5/classPhysicsEngine_1a65b58126356b154d20e3081ccb6a402e" prot="public" virt="non-virtual"><scope>PhysicsEngine</scope><name>SetGravity</name></member>
      <member refid="db/df5/classPhysicsEngine_1a30d283b6067980e42765340dea6eb62a" prot="public" virt="non-virtual"><scope>PhysicsEngine</scope><name>Update</name></member>
      <member refid="db/df5/classPhysicsEngine_1ae5f076ee99bbfdbc79ab2d27366d8476" prot="public" virt="non-virtual"><scope>PhysicsEngine</scope><name>~PhysicsEngine</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
