Suckless OGL 1.0.0
A lean, high-performance C11 PBR Renderer
Loading...
Searching...
No Matches
nbody_types.h
Go to the documentation of this file.
1#ifndef NBODY_TYPES_H
2#define NBODY_TYPES_H
3
4#include <cglm/types.h>
5#include <stdbool.h>
6
8enum { NBODY_MAX_BODIES = 32 };
9
11static const float NBODY_DEFAULT_G = 1.0F;
12
14static const float NBODY_SOFTENING_SQ = 0.25F;
15
17static const float NBODY_SOFTENING_FACTOR = 2.0F;
18
20static const float NBODY_FIXED_DT = 1.0F / 120.0F;
21
23static const float NBODY_MAX_ACCUMULATOR = 1.0F / 10.0F;
24
26static const float NBODY_CONFINEMENT_RADIUS = 25.0F;
27
29static const float NBODY_CONFINEMENT_K = 5.0F;
30
32static const float NBODY_CONFINEMENT_DAMPING = 20.0F;
33
35static const float NBODY_TIME_SCALE_RATE = 3.0F;
36
41typedef struct {
42 double position[3];
43 double mass;
44 double velocity[3];
45 float radius;
46 vec3 albedo;
47 float metallic;
48 float roughness;
49 double prev_position[3];
52
57typedef struct {
58 vec3 position;
59 vec3 color;
60 float velocity;
61 bool active;
63
80
81#endif /* NBODY_TYPES_H */
static const float NBODY_CONFINEMENT_DAMPING
Definition nbody_types.h:32
static const float NBODY_MAX_ACCUMULATOR
Definition nbody_types.h:23
static const float NBODY_DEFAULT_G
Definition nbody_types.h:11
static const float NBODY_FIXED_DT
Definition nbody_types.h:20
static const float NBODY_SOFTENING_FACTOR
Definition nbody_types.h:17
static const float NBODY_TIME_SCALE_RATE
Definition nbody_types.h:35
static const float NBODY_CONFINEMENT_RADIUS
Definition nbody_types.h:26
static const float NBODY_SOFTENING_SQ
Definition nbody_types.h:14
static const float NBODY_CONFINEMENT_K
Definition nbody_types.h:29
@ NBODY_MAX_BODIES
Definition nbody_types.h:8
Records a confinement boundary hit for visual effects.
Definition nbody_types.h:57
vec3 color
Definition nbody_types.h:59
bool active
Definition nbody_types.h:61
vec3 position
Definition nbody_types.h:58
float velocity
Definition nbody_types.h:60
A single gravitational body.
Definition nbody_types.h:41
float roughness
Definition nbody_types.h:48
float radius
Definition nbody_types.h:45
double mass
Definition nbody_types.h:43
vec3 albedo
Definition nbody_types.h:46
float metallic
Definition nbody_types.h:47
State container for the N-body simulation.
Definition nbody_types.h:68
float initial_energy
Definition nbody_types.h:75
NBodyParticle bodies[NBODY_MAX_BODIES]
Definition nbody_types.h:69
bool paused
Definition nbody_types.h:77
float target_time_scale
Definition nbody_types.h:74
float accumulator
Definition nbody_types.h:72
int body_count
Definition nbody_types.h:70
float gravity
Definition nbody_types.h:71
float time_scale
Definition nbody_types.h:73
float sim_time
Definition nbody_types.h:76
NBodyImpact impacts[NBODY_MAX_BODIES]
Definition nbody_types.h:78