32 #include <unordered_set>
50 QMesh *ownerMesh=
nullptr;
52 bool isInternal=
false;
56 std::vector<QVector> accumulatedForces;
64 bool aabbNeedsUpdate=
true;
66 void ClearOneTimeCollisions();
69 std::unordered_set<QParticle*> springConnectedParticles;
71 unordered_set<QBody*> oneTimeCollidedBodies;
72 unordered_set<QBody*> previousCollidedBodies;
74 void ResetOneTimeCollisions();
79 bool ignoreGravity=
false;
87 QParticle(
float posX,
float posY,
float radius=0.5f);
95 return globalPosition;
99 return prevGlobalPosition;
145 if(aabbNeedsUpdate==
true){
147 aabbNeedsUpdate=
false;
QAreaBody objects are objects that don't respond to collisions or receive any response from them,...
Definition: qareabody.h:38
QBody objects are the base class for all types of bodies. Any class derived from QBody shares these m...
Definition: qbody.h:43
The QCollision class performs all collision detection operations. The relevant methods return contact...
Definition: qcollision.h:44
QManifold retrieves collision data from collision tests between two QBody objects using QCollision me...
Definition: qmanifold.h:36
QParticle objects form the network structures of QMesh objects defined for all body object types....
Definition: qparticle.h:40
bool manualDeletion
Definition: qparticle.h:270
QParticle * AddGlobalPosition(QVector value)
Definition: qparticle.cpp:91
static void ApplyForceToParticleSegment(QParticle *pA, QParticle *pB, QVector force, QVector fromPosition)
Definition: qparticle.cpp:215
QVector GetForce()
Definition: qparticle.h:124
QParticle * SetIsLazy(bool value)
Definition: qparticle.cpp:157
QAABB GetAABB()
Definition: qparticle.h:144
QParticle * SetForce(QVector value)
Definition: qparticle.cpp:171
QParticle * AddAccumulatedForce(QVector value)
Definition: qparticle.cpp:184
QParticle * SetEnabled(bool value)
Definition: qparticle.cpp:151
bool GetIsLazy()
Definition: qparticle.h:137
QParticle * SetOwnerMesh(QMesh *mesh)
Definition: qparticle.cpp:129
bool GetEnabled()
Definition: qparticle.h:130
float GetMass()
Definition: qparticle.h:106
QParticle * SetMass(float value)
Definition: qparticle.cpp:124
QParticle * ApplyForce(QVector value)
Definition: qparticle.cpp:163
QVector GetGlobalPosition()
Definition: qparticle.h:94
QParticle * ApplyAccumulatedForces()
Definition: qparticle.cpp:196
QVector GetPreviousGlobalPosition()
Definition: qparticle.h:98
bool GetIsInternal()
Definition: qparticle.h:120
QVector GetPosition()
Definition: qparticle.h:102
QParticle * ClearAccumulatedForces()
Definition: qparticle.cpp:190
float GetRadius()
Definition: qparticle.h:116
QParticle * SetGlobalPosition(QVector value)
Definition: qparticle.cpp:77
QParticle * AddForce(QVector value)
Definition: qparticle.cpp:180
QParticle * SetPosition(QVector value)
Definition: qparticle.cpp:103
bool IsConnectedWithSpring(QParticle *particle)
Definition: qparticle.cpp:210
QParticle * SetPreviousGlobalPosition(QVector value)
Definition: qparticle.cpp:94
QParticle * SetRadius(float radius)
Definition: qparticle.cpp:134
QParticle * SetIsInternal(bool value)
Definition: qparticle.cpp:145
QParticle * AddPreviousGlobalPosition(QVector value)
Definition: qparticle.cpp:99
QParticle * AddPosition(QVector value)
Definition: qparticle.cpp:120
QMesh * GetOwnerMesh()
Definition: qparticle.h:112
Every QBody object requires meshes. In other traditional physics engines, the term 'shape' is used in...
Definition: qmesh.h:49