cmdfx 0.2.1
Lightweight game engine for your terminal
Loading...
Searching...
No Matches
force.hpp
Go to the documentation of this file.
1
11#pragma once
12
13extern "C" {
14 #include "cmdfx/physics/force.h"
15}
16
19#include <vector>
20
21namespace CmdFX {
22
26 namespace SpriteForces {
27
33 std::vector<Vector> getAllForces(Sprite& sprite) {
34 CmdFX_Vector** forces = Sprite_getAllForces(sprite.getSprite());
35 int count = Sprite_getAllForcesCount(sprite.getSprite());
36
37 std::vector<Vector> result;
38 result.reserve(count);
39
40 for (int i = 0; i < count; i++) {
41 result.emplace_back(forces[i]);
42 }
43
44 return result;
45 }
46
47 Vector getNetForce(Sprite& sprite) {
48 CmdFX_Vector* netForce = Sprite_getNetForce(sprite.getSprite());
49 return Vector(netForce);
50 }
51
52 int addForce(Sprite& sprite, Vector& force) {
53 return Sprite_addForce(sprite.getSprite(), force.getVector());
54 }
55
56 int addForceFor(Sprite& sprite, Vector& force, int duration) {
57 return Sprite_addForceFor(sprite.getSprite(), force.getVector(), duration);
58 }
59
60 int removeForce(Sprite& sprite, Vector& force) {
61 return Sprite_removeForce(sprite.getSprite(), force.getVector());
62 }
63
64 int removeAllForces(Sprite& sprite) {
65 return Sprite_removeAllForces(sprite.getSprite());
66 }
67
68 static int clearAllForces() {
69 return Sprite_clearAllForces();
70 }
71
72 double getFrictionCoefficient(Sprite& sprite) {
73 return Sprite_getFrictionCoefficient(sprite.getSprite());
74 }
75
76 int setFrictionCoefficient(Sprite& sprite, double coefficient) {
77 return Sprite_setFrictionCoefficient(sprite.getSprite(), coefficient);
78 }
79
80 int resetFrictionCoefficient(Sprite& sprite) {
81 return Sprite_resetFrictionCoefficient(sprite.getSprite());
82 }
83
84 };
85
86}
A C++ wrapper around a CmdFX_Sprite struct.
Definition sprites.hpp:32
CmdFX_Sprite * getSprite()
Get the Sprite object associated with this class.
Definition sprites.hpp:53
A C++ wrapper around a CmdFX_Vector struct.
Definition util.hpp:29
Force-related physics declarations.
int Sprite_setFrictionCoefficient(CmdFX_Sprite *sprite, double coefficient)
Sets the friction coefficient of a sprite.
CmdFX_Vector ** Sprite_getAllForces(CmdFX_Sprite *sprite)
Gets all of the forces acting on a sprite.
int Sprite_removeAllForces(CmdFX_Sprite *sprite)
Removes all forces from a sprite.
int Sprite_getAllForcesCount(CmdFX_Sprite *sprite)
Gets the number of forces acting on a sprite.
int Sprite_clearAllForces()
Removes all forces for every sprite and frees the array.
int Sprite_resetFrictionCoefficient(CmdFX_Sprite *sprite)
Resets the friction coefficient of a sprite.
double Sprite_getFrictionCoefficient(CmdFX_Sprite *sprite)
Gets the friction coefficient of a sprite.
int Sprite_removeForce(CmdFX_Sprite *sprite, CmdFX_Vector *force)
Removes a force from a sprite.
int Sprite_addForceFor(CmdFX_Sprite *sprite, CmdFX_Vector *force, int duration)
Adds a temporary force to a sprite.
CmdFX_Vector * Sprite_getNetForce(CmdFX_Sprite *sprite)
Gets the net force acting on a sprite.
int Sprite_addForce(CmdFX_Sprite *sprite, CmdFX_Vector *force)
Adds a force to a sprite.
A C++ wrapper around Sprite forces.
Definition force.hpp:26
std::vector< Vector > getAllForces(Sprite &sprite)
Gets all the forces acting on a sprite.
Definition force.hpp:33
Primary namespace for CmdFX.
Definition cmdfx.hpp:22
C++ extensions for the CmdFX Physics Utilities API.
C++ Extensions for the CmdFX Sprites API.
A 2D Vector.
Definition util.h:22