<?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="dd/d7a/classProjectileComponent" kind="class" language="C++" prot="public">
    <compoundname>ProjectileComponent</compoundname>
    <basecompoundref refid="d8/d6b/classComponent" prot="public" virt="non-virtual">Component</basecompoundref>
    <includes refid="d8/da5/ProjectileComponent_8hpp" local="no">ProjectileComponent.hpp</includes>
      <sectiondef kind="private-attrib">
      <memberdef kind="variable" id="dd/d7a/classProjectileComponent_1ac83385c137918c2b6e78dcee42426b0a" prot="private" static="no" mutable="no">
        <type><ref refid="de/d87/classRigidbodyComponent" kindref="compound">RigidbodyComponent</ref> *</type>
        <definition>RigidbodyComponent* ProjectileComponent::projectile</definition>
        <argsstring></argsstring>
        <name>projectile</name>
        <qualifiedname>ProjectileComponent::projectile</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="34" column="24" bodyfile="include/ProjectileComponent.hpp" bodystart="34" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="dd/d7a/classProjectileComponent_1ac61241dd06813893db14b79cdda0afed" prot="private" static="no" mutable="no">
        <type><ref refid="d2/d0a/classTransformComponent" kindref="compound">TransformComponent</ref> *</type>
        <definition>TransformComponent* ProjectileComponent::target</definition>
        <argsstring></argsstring>
        <name>target</name>
        <qualifiedname>ProjectileComponent::target</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="35" column="24" bodyfile="include/ProjectileComponent.hpp" bodystart="35" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="dd/d7a/classProjectileComponent_1afe0e491cb2d431b1f8f13ea15058cc11" prot="private" static="no" mutable="no">
        <type>bool</type>
        <definition>bool ProjectileComponent::homing</definition>
        <argsstring></argsstring>
        <name>homing</name>
        <qualifiedname>ProjectileComponent::homing</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>the <ref refid="d2/d0a/classTransformComponent" kindref="compound">TransformComponent</ref> being attacked </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="36" column="10" bodyfile="include/ProjectileComponent.hpp" bodystart="36" bodyend="-1"/>
        <referencedby refid="dd/d7a/classProjectileComponent_1ac67ad7b89802466876a93ff01ab291f5" compoundref="db/d41/ProjectileComponent_8cpp" startline="3" endline="34">ProjectileComponent</referencedby>
        <referencedby refid="dd/d7a/classProjectileComponent_1a38c9c6161b276691004f672991795b54" compoundref="db/d41/ProjectileComponent_8cpp" startline="40" endline="52">Update</referencedby>
      </memberdef>
      <memberdef kind="variable" id="dd/d7a/classProjectileComponent_1aea831e10d149edc87b8c4cf733a4aabc" prot="private" static="no" mutable="no">
        <type>float</type>
        <definition>float ProjectileComponent::speed</definition>
        <argsstring></argsstring>
        <name>speed</name>
        <qualifiedname>ProjectileComponent::speed</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="37" column="11" bodyfile="include/ProjectileComponent.hpp" bodystart="37" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="dd/d7a/classProjectileComponent_1a67612591fc2cc0d67b07d1257e7b3b3a" prot="private" static="no" mutable="no">
        <type>float</type>
        <definition>float ProjectileComponent::angle</definition>
        <argsstring></argsstring>
        <name>angle</name>
        <qualifiedname>ProjectileComponent::angle</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="38" column="11" bodyfile="include/ProjectileComponent.hpp" bodystart="38" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="dd/d7a/classProjectileComponent_1a32ef1237bbbd22f62519f7db2075054c" prot="private" static="no" mutable="no">
        <type>float</type>
        <definition>float ProjectileComponent::gravity</definition>
        <argsstring></argsstring>
        <name>gravity</name>
        <qualifiedname>ProjectileComponent::gravity</qualifiedname>
        <initializer>= 10</initializer>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="40" column="11" bodyfile="include/ProjectileComponent.hpp" bodystart="40" bodyend="-1"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="public-func">
      <memberdef kind="function" id="dd/d7a/classProjectileComponent_1ac67ad7b89802466876a93ff01ab291f5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>ProjectileComponent::ProjectileComponent</definition>
        <argsstring>(RigidbodyComponent *_projectile, TransformComponent *_target, bool _homing, float _var)</argsstring>
        <name>ProjectileComponent</name>
        <qualifiedname>ProjectileComponent::ProjectileComponent</qualifiedname>
        <param>
          <type><ref refid="de/d87/classRigidbodyComponent" kindref="compound">RigidbodyComponent</ref> *</type>
          <declname>_projectile</declname>
        </param>
        <param>
          <type><ref refid="d2/d0a/classTransformComponent" kindref="compound">TransformComponent</ref> *</type>
          <declname>_target</declname>
        </param>
        <param>
          <type>bool</type>
          <declname>_homing</declname>
        </param>
        <param>
          <type>float</type>
          <declname>_var</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Construct a new Projectile <ref refid="d8/d6b/classComponent" kindref="compound">Component</ref> object.</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>_projectile</parametername>
</parameternamelist>
<parameterdescription>
<para>the <ref refid="de/d87/classRigidbodyComponent" kindref="compound">RigidbodyComponent</ref> of the parent <ref refid="de/d1c/classGameObject" kindref="compound">GameObject</ref> </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>_target</parametername>
</parameternamelist>
<parameterdescription>
<para>the <ref refid="d2/d0a/classTransformComponent" kindref="compound">TransformComponent</ref> of the target the Projectile is fired at </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>_homing</parametername>
</parameternamelist>
<parameterdescription>
<para>whether the <ref refid="dd/d7a/classProjectileComponent" kindref="compound">ProjectileComponent</ref> will seek out the target </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>_var</parametername>
</parameternamelist>
<parameterdescription>
<para>if homing, the speed of the projectile. Otherwise, the angle the <ref refid="dd/d7a/classProjectileComponent" kindref="compound">ProjectileComponent</ref> is fired at </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="22" column="5" bodyfile="src/ProjectileComponent.cpp" bodystart="3" bodyend="34"/>
        <references refid="d2/d0a/classTransformComponent_1a5452c308a26521441745d3edc1ab5d4d" compoundref="da/d4e/TransformComponent_8cpp" startline="19" endline="21">TransformComponent::getPos</references>
        <references refid="d9/d15/classIPhysicsComponent_1abfaa678eb1c7312e9bf098bc1473f794" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="20" endline="22">IPhysicsComponent::GetPosition</references>
        <references refid="dd/d7a/classProjectileComponent_1afe0e491cb2d431b1f8f13ea15058cc11" compoundref="d8/da5/ProjectileComponent_8hpp" startline="36">homing</references>
        <references refid="de/d87/classRigidbodyComponent_1a5c6caca7d911fb61f00a2a35de0f62ef" compoundref="d4/d4e/RigidbodyComponent_8cpp" startline="50" endline="52">RigidbodyComponent::SetVelocity</references>
      </memberdef>
      <memberdef kind="function" id="dd/d7a/classProjectileComponent_1afd2a72d0f2027c9a89240891741654d4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type></type>
        <definition>ProjectileComponent::~ProjectileComponent</definition>
        <argsstring>()</argsstring>
        <name>~ProjectileComponent</name>
        <qualifiedname>ProjectileComponent::~ProjectileComponent</qualifiedname>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Destroy the Projectile <ref refid="d8/d6b/classComponent" kindref="compound">Component</ref> object </para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="27" column="5" bodyfile="src/ProjectileComponent.cpp" bodystart="36" bodyend="38"/>
      </memberdef>
      <memberdef kind="function" id="dd/d7a/classProjectileComponent_1a38c9c6161b276691004f672991795b54" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void ProjectileComponent::Update</definition>
        <argsstring>(SDL_Event e, int frame, std::vector&lt; std::string &gt; broadcastList) override</argsstring>
        <name>Update</name>
        <qualifiedname>ProjectileComponent::Update</qualifiedname>
        <reimplements refid="d8/d6b/classComponent_1a9c764c2a5607ef52629458d361ebf16e">Update</reimplements>
        <param>
          <type>SDL_Event</type>
          <declname>e</declname>
        </param>
        <param>
          <type>int</type>
          <declname>frame</declname>
        </param>
        <param>
          <type>std::vector&lt; std::string &gt;</type>
          <declname>broadcastList</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Updates the state of the component object. Called by the <ref refid="d1/db6/classEngine" kindref="compound">Engine</ref> every tick</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>e</parametername>
</parameternamelist>
<parameterdescription>
<para>any inputs given by the user </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>frame</parametername>
</parameternamelist>
<parameterdescription>
<para>what frame is the game currently displaying </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>broadcastList</parametername>
</parameternamelist>
<parameterdescription>
<para>a list to be used to send messages between components </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="d8/d6b/classComponent_1aea8f0f460a62d86183020bd667b6cbf0" kindref="member">ParseAndUpdateBroadcast()</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="29" column="10" bodyfile="src/ProjectileComponent.cpp" bodystart="40" bodyend="52"/>
        <references refid="d2/d0a/classTransformComponent_1a5452c308a26521441745d3edc1ab5d4d" compoundref="da/d4e/TransformComponent_8cpp" startline="19" endline="21">TransformComponent::getPos</references>
        <references refid="d9/d15/classIPhysicsComponent_1abfaa678eb1c7312e9bf098bc1473f794" compoundref="d3/d9c/IPhysicsComponent_8cpp" startline="20" endline="22">IPhysicsComponent::GetPosition</references>
        <references refid="dd/d7a/classProjectileComponent_1afe0e491cb2d431b1f8f13ea15058cc11" compoundref="d8/da5/ProjectileComponent_8hpp" startline="36">homing</references>
        <references refid="d8/d6b/classComponent_1aea8f0f460a62d86183020bd667b6cbf0" compoundref="d4/d92/Component_8cpp" startline="37" endline="50">Component::ParseAndUpdateBroadcast</references>
        <references refid="de/d87/classRigidbodyComponent_1a5c6caca7d911fb61f00a2a35de0f62ef" compoundref="d4/d4e/RigidbodyComponent_8cpp" startline="50" endline="52">RigidbodyComponent::SetVelocity</references>
      </memberdef>
      <memberdef kind="function" id="dd/d7a/classProjectileComponent_1aee9362f7012bd2f0ca5088c63a175dd7" prot="public" static="no" const="no" explicit="no" inline="no" virt="virtual">
        <type>void</type>
        <definition>void ProjectileComponent::Render</definition>
        <argsstring>(SDL_Renderer *ren) override</argsstring>
        <name>Render</name>
        <qualifiedname>ProjectileComponent::Render</qualifiedname>
        <reimplements refid="d8/d6b/classComponent_1ab856bdb8c4357a080d7abcf99871a573">Render</reimplements>
        <param>
          <type>SDL_Renderer *</type>
          <declname>ren</declname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Renders the component (if it has anything to render)</para>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>ren</parametername>
</parameternamelist>
<parameterdescription>
<para>the SDL renderer to be displayed upon </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="see"><para><ref refid="d7/dea/classIGraphicsEngineRenderer" kindref="compound">IGraphicsEngineRenderer</ref> </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="include/ProjectileComponent.hpp" line="31" column="10" bodyfile="src/ProjectileComponent.cpp" bodystart="54" bodyend="56"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
    </briefdescription>
    <detaileddescription>
<para>A <ref refid="d8/d6b/classComponent" kindref="compound">Component</ref> implementation to treat a <ref refid="de/d1c/classGameObject" kindref="compound">GameObject</ref> as a projectile. </para>
    </detaileddescription>
    <inheritancegraph>
      <node id="2">
        <label>Component</label>
        <link refid="d8/d6b/classComponent"/>
      </node>
      <node id="1">
        <label>ProjectileComponent</label>
        <link refid="dd/d7a/classProjectileComponent"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
      </node>
    </inheritancegraph>
    <collaborationgraph>
      <node id="2">
        <label>Component</label>
        <link refid="d8/d6b/classComponent"/>
      </node>
      <node id="4">
        <label>IPhysicsComponent</label>
        <link refid="d9/d15/classIPhysicsComponent"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
        <childnode refid="5" relation="usage">
          <edgelabel>m_position</edgelabel>
        </childnode>
        <childnode refid="6" relation="usage">
          <edgelabel>dimensions</edgelabel>
        </childnode>
      </node>
      <node id="1">
        <label>ProjectileComponent</label>
        <link refid="dd/d7a/classProjectileComponent"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
        <childnode refid="3" relation="usage">
          <edgelabel>projectile</edgelabel>
        </childnode>
        <childnode refid="5" relation="usage">
          <edgelabel>target</edgelabel>
        </childnode>
      </node>
      <node id="3">
        <label>RigidbodyComponent</label>
        <link refid="de/d87/classRigidbodyComponent"/>
        <childnode refid="4" relation="public-inheritance">
        </childnode>
        <childnode refid="6" relation="usage">
          <edgelabel>velocity</edgelabel>
        </childnode>
      </node>
      <node id="5">
        <label>TransformComponent</label>
        <link refid="d2/d0a/classTransformComponent"/>
        <childnode refid="2" relation="public-inheritance">
        </childnode>
        <childnode refid="6" relation="usage">
          <edgelabel>position</edgelabel>
        </childnode>
      </node>
      <node id="6">
        <label>Vec2D</label>
        <link refid="dd/d40/structVec2D"/>
      </node>
    </collaborationgraph>
    <location file="include/ProjectileComponent.hpp" line="11" column="1" bodyfile="include/ProjectileComponent.hpp" bodystart="12" bodyend="41"/>
    <listofallmembers>
      <member refid="dd/d7a/classProjectileComponent_1a67612591fc2cc0d67b07d1257e7b3b3a" prot="private" virt="non-virtual"><scope>ProjectileComponent</scope><name>angle</name></member>
      <member refid="d8/d6b/classComponent_1a8775db6d1a2c1afc2e77cd3c8f39da6f" prot="public" virt="non-virtual"><scope>ProjectileComponent</scope><name>Component</name></member>
      <member refid="d8/d6b/classComponent_1a6ad359e7f57daa4ba249aaf5c88da052" prot="public" virt="virtual"><scope>ProjectileComponent</scope><name>ComponentTypeName</name></member>
      <member refid="dd/d7a/classProjectileComponent_1a32ef1237bbbd22f62519f7db2075054c" prot="private" virt="non-virtual"><scope>ProjectileComponent</scope><name>gravity</name></member>
      <member refid="d8/d6b/classComponent_1aed93a0ec70ebc71f34f02eb0a3ad4006" prot="public" virt="virtual"><scope>ProjectileComponent</scope><name>HasTag</name></member>
      <member refid="dd/d7a/classProjectileComponent_1afe0e491cb2d431b1f8f13ea15058cc11" prot="private" virt="non-virtual"><scope>ProjectileComponent</scope><name>homing</name></member>
      <member refid="d8/d6b/classComponent_1aea8f0f460a62d86183020bd667b6cbf0" prot="public" virt="non-virtual"><scope>ProjectileComponent</scope><name>ParseAndUpdateBroadcast</name></member>
      <member refid="d8/d6b/classComponent_1a7d03b8c23a6fa95fd83f08ad88cd59ee" prot="protected" virt="non-virtual"><scope>ProjectileComponent</scope><name>pendingBroadcasts</name></member>
      <member refid="d8/d6b/classComponent_1a929d29b8cdb9447b70f5e7d990c7d0f0" prot="protected" virt="non-virtual"><scope>ProjectileComponent</scope><name>previousBroadcasts</name></member>
      <member refid="dd/d7a/classProjectileComponent_1ac83385c137918c2b6e78dcee42426b0a" prot="private" virt="non-virtual"><scope>ProjectileComponent</scope><name>projectile</name></member>
      <member refid="dd/d7a/classProjectileComponent_1ac67ad7b89802466876a93ff01ab291f5" prot="public" virt="non-virtual"><scope>ProjectileComponent</scope><name>ProjectileComponent</name></member>
      <member refid="dd/d7a/classProjectileComponent_1aee9362f7012bd2f0ca5088c63a175dd7" prot="public" virt="virtual"><scope>ProjectileComponent</scope><name>Render</name></member>
      <member refid="d8/d6b/classComponent_1a92af5bb942ea9633515a0c0e16a0bb8c" prot="public" virt="virtual"><scope>ProjectileComponent</scope><name>ShowComponentEditor</name></member>
      <member refid="dd/d7a/classProjectileComponent_1aea831e10d149edc87b8c4cf733a4aabc" prot="private" virt="non-virtual"><scope>ProjectileComponent</scope><name>speed</name></member>
      <member refid="d8/d6b/classComponent_1ab9b45a6a11e943c86770a1b3e085c25c" prot="protected" virt="non-virtual"><scope>ProjectileComponent</scope><name>tags</name></member>
      <member refid="dd/d7a/classProjectileComponent_1ac61241dd06813893db14b79cdda0afed" prot="private" virt="non-virtual"><scope>ProjectileComponent</scope><name>target</name></member>
      <member refid="dd/d7a/classProjectileComponent_1a38c9c6161b276691004f672991795b54" prot="public" virt="virtual"><scope>ProjectileComponent</scope><name>Update</name></member>
      <member refid="d8/d6b/classComponent_1ab8378fa275af98e568a7e91d33d867af" prot="public" virt="non-virtual"><scope>ProjectileComponent</scope><name>~Component</name></member>
      <member refid="dd/d7a/classProjectileComponent_1afd2a72d0f2027c9a89240891741654d4" prot="public" virt="non-virtual"><scope>ProjectileComponent</scope><name>~ProjectileComponent</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
