summaryrefslogtreecommitdiff
path: root/README
blob: 65aa2971bafadfdab11dacc32f3f71c69677bfdf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
clld - A standalone collision checker


Contents/Index:

	1. Introduction			16
	2. Setup			26
		2.1. Compilation	28
		2.2. Installation	47
		2.3. Running		59
	3. Input Format			65
	4. Output Format		104
	5. License			135
	6. Authors			143

1. Introduction

clld is a simple collision checker, that takes two 2D, or 3D points, tests
the collision of the points, and outputs the results to stdout.

It can do many different types of collision checks, including
tile heightmap, AABB, and (possibly) more.



2. Setup

2.1. Compilation

To compile clld, run:

$ make

You can add extra compiler options, with the CFLAGS_EXTRA variable.

clld also supports compilers that are not bloat, such as
TinyCC, and the Portable C Compiler.

It is also recommended to compile clld with one of the
compilers above, rather than compiling it with gcc, or llvm.

The reason for saying this is because the program is very simple, and
very optimized, so using gcc wouldn't net you any significant gain in
performance, and would make the size of the binary, alot bigger.


2.2. Installation

To install clld, run:

$ make install

You can change the install prefix, and bin directories, by changing
the PREFIX, and BIN_DIR environment variables.

By default, PREFIX, and BIN_DIR are set to /usr/local, and bin respectivly.


2.3. Running

Run `clld -h` to get information about the options.



3. Input Format

The input format is plain text, and contains the collision type, the
cursor position, and the floor position.

The input format looks like this:

<collision type>
<cursor width>, <cursor height>
<collision type specific data>
<cursor x>, <cursor y>[, <cursor z>]
<cursor x velocity>, <cursor y velocity>
<floor width>, <floor height>
<floor x>, <floor y>[, <floor z]

The collision type is the type of collision check that clld will use.

The Cursor width, and height are just that.

Cursor x, y, and z are the coordinates of the cursor, which clld will
test against the floor's position.

The Cursor x, and y velocitiy is the speed which the cursor is moving
at, in either axies.

Floor x, y, and z are the coordinates of the floor, which is used by
clld as the reference position that will be tested against the cursor.

The Floor width, and height is just like the Cursor's.

The datatypes for each of the fields are:

Collision type:			flag
Cursor, and floor width/height:	integer
Cursor, and floor position:	integer, or floating point
Cursor axial velocites:		floating point



4. Output Format

The output format is also plain text, and contains the
collision flag, the grounded flag, and the cursor position.

The output format looks like this:

<x collision flag>, <y collision flag>
<grounded flag>
<cursor x>, <cursor y>[, <cursor z>]
<cursor x velocity>, <cursor y velocity>

The x, and y collision flags are set, when a collision has occured on
either the x, or y axis.

The grounded flag is set when the cursors y coordinate matches
the floors y coordinate.

Cursor x, y, and z are the new coordinates for the cursor to be set to.

The Cursor x, and y velocity are the new speed values of the cursor.

The datatypes for each of the fields are:

Collision flag:			flag
Grounded flag:			flag
Cursor position:		integer, or floating point
Cursor axial velocities:	floating point



5. License

clld is released under the GNU General Public License version 2. The
full text of the license can be found in the LICENSE file that should
be included in the clld distribution.



6. Authors

Original author:
	mr b0nk 500 <b0nk@mrb0nk500.xyz>