<?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="d5/d69/IPhysicsComponent_8hpp" kind="file" language="C++">
    <compoundname>IPhysicsComponent.hpp</compoundname>
    <includes refid="df/d1f/Component_8hpp" local="yes">Component.hpp</includes>
    <includes refid="d9/da8/TransformComponent_8hpp" local="yes">TransformComponent.hpp</includes>
    <includes refid="d9/dec/TinyMath_8hpp" local="yes">TinyMath.hpp</includes>
    <includedby refid="d1/d20/PhysicsEngine_8hpp" local="yes">include/PhysicsEngine.hpp</includedby>
    <includedby refid="d8/d16/RigidbodyComponent_8hpp" local="yes">include/RigidbodyComponent.hpp</includedby>
    <includedby refid="d6/d0c/Engine_8cpp" local="yes">src/Engine.cpp</includedby>
    <includedby refid="d3/d9c/IPhysicsComponent_8cpp" local="yes">src/IPhysicsComponent.cpp</includedby>
    <includedby refid="d5/d9a/PhysicsTests_8cpp" local="yes">src/PhysicsTests.cpp</includedby>
    <incdepgraph>
      <node id="2">
        <label>Component.hpp</label>
        <link refid="df/d1f/Component_8hpp_source"/>
        <childnode refid="3" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
        <childnode refid="5" relation="include">
        </childnode>
        <childnode refid="6" relation="include">
        </childnode>
        <childnode refid="7" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
        <childnode refid="9" relation="include">
        </childnode>
      </node>
      <node id="1">
        <label>include/IPhysicsComponent.hpp</label>
        <link refid="d5/d69/IPhysicsComponent_8hpp"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="10" relation="include">
        </childnode>
        <childnode refid="11" relation="include">
        </childnode>
      </node>
      <node id="11">
        <label>TinyMath.hpp</label>
        <link refid="d9/dec/TinyMath_8hpp_source"/>
        <childnode refid="12" relation="include">
        </childnode>
        <childnode refid="13" relation="include">
        </childnode>
      </node>
      <node id="10">
        <label>TransformComponent.hpp</label>
        <link refid="d9/da8/TransformComponent_8hpp_source"/>
        <childnode refid="11" relation="include">
        </childnode>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="8" relation="include">
        </childnode>
      </node>
      <node id="3">
        <label>SDL.h</label>
      </node>
      <node id="9">
        <label>algorithm</label>
      </node>
      <node id="12">
        <label>cmath</label>
      </node>
      <node id="4">
        <label>imgui.h</label>
      </node>
      <node id="5">
        <label>imgui_impl_sdl2.h</label>
      </node>
      <node id="6">
        <label>imgui_impl_sdlrenderer.h</label>
      </node>
      <node id="13">
        <label>ostream</label>
      </node>
      <node id="8">
        <label>string</label>
      </node>
      <node id="7">
        <label>vector</label>
      </node>
    </incdepgraph>
    <invincdepgraph>
      <node id="3">
        <label>include/Engine.hpp</label>
        <link refid="d3/d48/Engine_8hpp_source"/>
      </node>
      <node id="1">
        <label>include/IPhysicsComponent.hpp</label>
        <link refid="d5/d69/IPhysicsComponent_8hpp"/>
        <childnode refid="2" relation="include">
        </childnode>
        <childnode refid="4" relation="include">
        </childnode>
      </node>
      <node id="2">
        <label>include/PhysicsEngine.hpp</label>
        <link refid="d1/d20/PhysicsEngine_8hpp_source"/>
        <childnode refid="3" relation="include">
        </childnode>
      </node>
      <node id="5">
        <label>include/ProjectileComponent.hpp</label>
        <link refid="d8/da5/ProjectileComponent_8hpp_source"/>
      </node>
      <node id="4">
        <label>include/RigidbodyComponent.hpp</label>
        <link refid="d8/d16/RigidbodyComponent_8hpp_source"/>
        <childnode refid="5" relation="include">
        </childnode>
      </node>
    </invincdepgraph>
    <innerclass refid="d9/d15/classIPhysicsComponent" prot="public">IPhysicsComponent</innerclass>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <programlisting>
<codeline lineno="1"><highlight class="preprocessor">#ifndef<sp/>PHYSICSCOMPONENT_HPP</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="2"><highlight class="normal"></highlight><highlight class="preprocessor">#define<sp/>PHYSICSCOMPONENT_HPP</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="3"><highlight class="normal"></highlight></codeline>
<codeline lineno="4"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;Component.hpp&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="5"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;TransformComponent.hpp&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="6"><highlight class="normal"></highlight><highlight class="preprocessor">#include<sp/>&quot;TinyMath.hpp&quot;</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="7"><highlight class="normal"></highlight></codeline>
<codeline lineno="11" refid="d9/d15/classIPhysicsComponent" refkind="compound"><highlight class="normal"></highlight><highlight class="keyword">class<sp/></highlight><highlight class="normal"><ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref><sp/>:<sp/></highlight><highlight class="keyword">public</highlight><highlight class="normal"><sp/><ref refid="d8/d6b/classComponent" kindref="compound">Component</ref><sp/>{</highlight></codeline>
<codeline lineno="12"><highlight class="normal"></highlight><highlight class="keyword">public</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="19"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref>(<ref refid="d2/d0a/classTransformComponent" kindref="compound">TransformComponent</ref>*<sp/>pos,<sp/><ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/>dim);</highlight></codeline>
<codeline lineno="20"><highlight class="normal"></highlight></codeline>
<codeline lineno="24"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="d9/d15/classIPhysicsComponent_1ae02e2c332f14e4206c21fc08902d5161" kindref="member">~IPhysicsComponent</ref>();</highlight></codeline>
<codeline lineno="25"><highlight class="normal"></highlight></codeline>
<codeline lineno="32"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1aae80e0691898c61495f43a7bc2f0e494" kindref="member">IsColliding</ref>(<ref refid="d9/d15/classIPhysicsComponent" kindref="compound">IPhysicsComponent</ref>*<sp/>other);</highlight></codeline>
<codeline lineno="33"><highlight class="normal"></highlight></codeline>
<codeline lineno="43"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1a12248fc80967b165bc598e6f8bd3a8cd" kindref="member">ApplyForce</ref>(<ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/>force);</highlight></codeline>
<codeline lineno="44"><highlight class="normal"></highlight></codeline>
<codeline lineno="49"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1a0e5005877e7fc2b280c418515bb1954a" kindref="member">ApplyAcceleration</ref>(<ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/>acceleration);</highlight></codeline>
<codeline lineno="50"><highlight class="normal"></highlight></codeline>
<codeline lineno="59"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1ac1eb84fa1b67c0258a48fb1ac15f497d" kindref="member">ApplyVelocity</ref>();</highlight></codeline>
<codeline lineno="60"><highlight class="normal"></highlight></codeline>
<codeline lineno="61"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>SETTERS</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="62"><highlight class="normal"></highlight></codeline>
<codeline lineno="68"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">void</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1aff905f4a966c951b7f56e716ab9f9347" kindref="member">SetVelocity</ref>(<ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/>vel);</highlight></codeline>
<codeline lineno="69"><highlight class="normal"></highlight></codeline>
<codeline lineno="70"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="comment">//<sp/>GETTERS</highlight><highlight class="normal"></highlight></codeline>
<codeline lineno="71"><highlight class="normal"></highlight></codeline>
<codeline lineno="79"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1aaf37980fe6dea6de4d49156b3c4ce998" kindref="member">IsKinematic</ref>();</highlight></codeline>
<codeline lineno="80"><highlight class="normal"></highlight></codeline>
<codeline lineno="87"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1a4136b164031d8fa821316e1664264392" kindref="member">IsElastic</ref>();</highlight></codeline>
<codeline lineno="88"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight></codeline>
<codeline lineno="94"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">bool</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1a41f11dca49e23ad9236b2ccbfe81e8f4" kindref="member">UsesGravity</ref>();</highlight></codeline>
<codeline lineno="95"><highlight class="normal"></highlight></codeline>
<codeline lineno="102"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/><ref refid="d9/d15/classIPhysicsComponent_1abfaa678eb1c7312e9bf098bc1473f794" kindref="member">GetPosition</ref>();</highlight></codeline>
<codeline lineno="103"><highlight class="normal"></highlight></codeline>
<codeline lineno="109"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/><ref refid="d9/d15/classIPhysicsComponent_1abb67c9f5741590c7ebcca1434175386a" kindref="member">GetDimensions</ref>();</highlight></codeline>
<codeline lineno="110"><highlight class="normal"></highlight></codeline>
<codeline lineno="116"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/><ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/><ref refid="d9/d15/classIPhysicsComponent_1a476359cb97729525a9e476f6777c1536" kindref="member">GetVelocity</ref>();</highlight></codeline>
<codeline lineno="117"><highlight class="normal"></highlight></codeline>
<codeline lineno="123"><highlight class="normal"><sp/><sp/><sp/><sp/></highlight><highlight class="keyword">virtual</highlight><highlight class="normal"><sp/></highlight><highlight class="keywordtype">float</highlight><highlight class="normal"><sp/><ref refid="d9/d15/classIPhysicsComponent_1a5a88a9979998bcfe46ec45d4a6c4966b" kindref="member">GetMass</ref>();</highlight></codeline>
<codeline lineno="124"><highlight class="normal"></highlight></codeline>
<codeline lineno="125"><highlight class="normal"></highlight><highlight class="keyword">protected</highlight><highlight class="normal">:</highlight></codeline>
<codeline lineno="126"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="d2/d0a/classTransformComponent" kindref="compound">TransformComponent</ref>*<sp/>m_position;<sp/></highlight></codeline>
<codeline lineno="127" refid="d9/d15/classIPhysicsComponent_1ad22593592587dde0b325bd608b559aab" refkind="member"><highlight class="normal"><sp/><sp/><sp/><sp/><ref refid="dd/d40/structVec2D" kindref="compound">Vec2D</ref><sp/><ref refid="d9/d15/classIPhysicsComponent_1ad22593592587dde0b325bd608b559aab" kindref="member">dimensions</ref>;</highlight></codeline>
<codeline lineno="128"><highlight class="normal"><sp/><sp/><sp/><sp/>std::vector&lt;ComponentTag&gt;<sp/>tags<sp/>=<sp/>{ComponentTag::Physics};</highlight></codeline>
<codeline lineno="129"><highlight class="normal">};</highlight></codeline>
<codeline lineno="130"><highlight class="normal"></highlight></codeline>
<codeline lineno="131"><highlight class="normal"></highlight><highlight class="preprocessor">#endif</highlight></codeline>
    </programlisting>
    <location file="include/IPhysicsComponent.hpp"/>
  </compounddef>
</doxygen>
