naev 0.10.4
physics.h
1/*
2 * See Licensing and Copyright notice in naev.h
3 */
4#pragma once
5
6#include "vec2.h"
7
8/*
9 * Update options.
10 */
11#define SOLID_UPDATE_RK4 0
12#define SOLID_UPDATE_EULER 1
17typedef struct Solid_ {
18 double mass;
19 double dir;
20 double dir_vel;
23 double thrust;
24 double speed_max;
25 void (*update)( struct Solid_*, double );
26} Solid;
27
28/*
29 * solid manipulation
30 */
31double solid_maxspeed( const Solid *s, double speed, double thrust );
32void solid_init( Solid* dest, double mass, double dir,
33 const vec2* pos, const vec2* vel, int update );
34Solid* solid_create( double mass, double dir,
35 const vec2* pos, const vec2* vel, int update );
36void solid_free( Solid* src );
37
38/*
39 * misc
40 */
41double angle_diff( double ref, double a );
Represents a solid in the game.
Definition: physics.h:17
double dir_vel
Definition: physics.h:20
double speed_max
Definition: physics.h:24
vec2 vel
Definition: physics.h:21
double thrust
Definition: physics.h:23
double dir
Definition: physics.h:19
double mass
Definition: physics.h:18
vec2 pos
Definition: physics.h:22
Represents a 2d vector.
Definition: vec2.h:32