\hypertarget{IPhysicsComponent_8hpp_source}{}\doxysection{IPhysics\+Component.\+hpp}
\label{IPhysicsComponent_8hpp_source}\index{include/IPhysicsComponent.hpp@{include/IPhysicsComponent.hpp}}

\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#ifndef\ PHYSICSCOMPONENT\_HPP}}
\DoxyCodeLine{00002\ \textcolor{preprocessor}{\#define\ PHYSICSCOMPONENT\_HPP}}
\DoxyCodeLine{00003\ }
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ "{}Component.hpp"{}}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}TransformComponent.hpp"{}}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ "{}TinyMath.hpp"{}}}
\DoxyCodeLine{00007\ }
\DoxyCodeLine{00011\ \textcolor{keyword}{class\ }\mbox{\hyperlink{classIPhysicsComponent}{IPhysicsComponent}}\ :\ \textcolor{keyword}{public}\ \mbox{\hyperlink{classComponent}{Component}}\ \{}
\DoxyCodeLine{00012\ \textcolor{keyword}{public}:}
\DoxyCodeLine{00019\ \ \ \ \ \mbox{\hyperlink{classIPhysicsComponent}{IPhysicsComponent}}(\mbox{\hyperlink{classTransformComponent}{TransformComponent}}*\ pos,\ \mbox{\hyperlink{structVec2D}{Vec2D}}\ dim);}
\DoxyCodeLine{00020\ }
\DoxyCodeLine{00024\ \ \ \ \ \mbox{\hyperlink{classIPhysicsComponent_ae02e2c332f14e4206c21fc08902d5161}{\string~IPhysicsComponent}}();}
\DoxyCodeLine{00025\ }
\DoxyCodeLine{00032\ \ \ \ \ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classIPhysicsComponent_aae80e0691898c61495f43a7bc2f0e494}{IsColliding}}(\mbox{\hyperlink{classIPhysicsComponent}{IPhysicsComponent}}*\ other);}
\DoxyCodeLine{00033\ }
\DoxyCodeLine{00043\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classIPhysicsComponent_a12248fc80967b165bc598e6f8bd3a8cd}{ApplyForce}}(\mbox{\hyperlink{structVec2D}{Vec2D}}\ force);}
\DoxyCodeLine{00044\ }
\DoxyCodeLine{00049\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classIPhysicsComponent_a0e5005877e7fc2b280c418515bb1954a}{ApplyAcceleration}}(\mbox{\hyperlink{structVec2D}{Vec2D}}\ acceleration);}
\DoxyCodeLine{00050\ }
\DoxyCodeLine{00059\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classIPhysicsComponent_ac1eb84fa1b67c0258a48fb1ac15f497d}{ApplyVelocity}}();}
\DoxyCodeLine{00060\ }
\DoxyCodeLine{00061\ \ \ \ \ \textcolor{comment}{//\ SETTERS}}
\DoxyCodeLine{00062\ }
\DoxyCodeLine{00068\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{void}\ \mbox{\hyperlink{classIPhysicsComponent_aff905f4a966c951b7f56e716ab9f9347}{SetVelocity}}(\mbox{\hyperlink{structVec2D}{Vec2D}}\ vel);}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00070\ \ \ \ \ \textcolor{comment}{//\ GETTERS}}
\DoxyCodeLine{00071\ }
\DoxyCodeLine{00079\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classIPhysicsComponent_aaf37980fe6dea6de4d49156b3c4ce998}{IsKinematic}}();}
\DoxyCodeLine{00080\ }
\DoxyCodeLine{00087\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classIPhysicsComponent_a4136b164031d8fa821316e1664264392}{IsElastic}}();}
\DoxyCodeLine{00088\ \ \ \ \ }
\DoxyCodeLine{00094\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{bool}\ \mbox{\hyperlink{classIPhysicsComponent_a41f11dca49e23ad9236b2ccbfe81e8f4}{UsesGravity}}();}
\DoxyCodeLine{00095\ }
\DoxyCodeLine{00102\ \ \ \ \ \mbox{\hyperlink{structVec2D}{Vec2D}}\ \mbox{\hyperlink{classIPhysicsComponent_abfaa678eb1c7312e9bf098bc1473f794}{GetPosition}}();}
\DoxyCodeLine{00103\ }
\DoxyCodeLine{00109\ \ \ \ \ \mbox{\hyperlink{structVec2D}{Vec2D}}\ \mbox{\hyperlink{classIPhysicsComponent_abb67c9f5741590c7ebcca1434175386a}{GetDimensions}}();}
\DoxyCodeLine{00110\ }
\DoxyCodeLine{00116\ \ \ \ \ \textcolor{keyword}{virtual}\ \mbox{\hyperlink{structVec2D}{Vec2D}}\ \mbox{\hyperlink{classIPhysicsComponent_a476359cb97729525a9e476f6777c1536}{GetVelocity}}();}
\DoxyCodeLine{00117\ }
\DoxyCodeLine{00123\ \ \ \ \ \textcolor{keyword}{virtual}\ \textcolor{keywordtype}{float}\ \mbox{\hyperlink{classIPhysicsComponent_a5a88a9979998bcfe46ec45d4a6c4966b}{GetMass}}();}
\DoxyCodeLine{00124\ }
\DoxyCodeLine{00125\ \textcolor{keyword}{protected}:}
\DoxyCodeLine{00126\ \ \ \ \ \mbox{\hyperlink{classTransformComponent}{TransformComponent}}*\ m\_position;\ }
\DoxyCodeLine{00127\ \ \ \ \ \mbox{\hyperlink{structVec2D}{Vec2D}}\ \mbox{\hyperlink{classIPhysicsComponent_ad22593592587dde0b325bd608b559aab}{dimensions}};}
\DoxyCodeLine{00128\ \ \ \ \ std::vector<ComponentTag>\ tags\ =\ \{ComponentTag::Physics\};}
\DoxyCodeLine{00129\ \};}
\DoxyCodeLine{00130\ }
\DoxyCodeLine{00131\ \textcolor{preprocessor}{\#endif}}

\end{DoxyCode}
