File: cp.h

package info (click to toggle)
searchandrescue 0.8.2-10
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 4,656 kB
  • ctags: 6,111
  • sloc: ansic: 89,072; cpp: 7,691; sh: 90; makefile: 80
file content (72 lines) | stat: -rw-r--r-- 1,725 bytes parent folder | download | duplicates (6)
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
/*
			     Control Panel
 */

#ifndef CP_H
#define CP_H

#include <sys/types.h>
#include <GL/gl.h>
#include "gw.h"
#include "v3dtex.h"
#include "cpvalues.h"
#include "cpins.h"


/*
 *	Control Panel structure:
 */
typedef struct {

	gw_display_struct	*display;
	GLfloat	x, y, z;		/* In centimeters from center of
					 * cockpit.
					 */
	GLfloat heading, pitch, bank;	/* In radians. */
	GLfloat	width, height;		/* In centimeters. */
	v3d_texture_ref_struct	*tex;	/* Texture. */

	/* List of all instruments on this control panel. */
	CPIns	**ins;
	int	total_ins;

	ControlPanelValues	values;

} ControlPanel;
#define CONTROL_PANEL(p)	((ControlPanel *)(p))
#define CONTROL_PANEL_DISPLAY(p)	(((p) != NULL) ? \
 (CONTROL_PANEL(p)->display) : NULL)
#define CONTROL_PANEL_VALUES(p)		(((p) != NULL) ? \
 &(CONTROL_PANEL(p)->values) : NULL)


extern time_t CPCurrentTime(ControlPanel *cp);

extern CPIns *CPGetInsByNumber(ControlPanel *cp, int i);
extern int CPAppendIns(ControlPanel *cp, CPIns *ins);

extern ControlPanel *CPNew(gw_display_struct *display);
extern void CPDelete(ControlPanel *cp);

extern void CPSetPosition(
	ControlPanel *cp,
	GLfloat x, GLfloat y, GLfloat z /* In centimeters. */
);
extern void CPSetDirection(
	ControlPanel *cp,
	GLfloat heading, GLfloat pitch, GLfloat bank    /* In radians. */
);
extern void CPSetSize(
	ControlPanel *cp,
	GLfloat width, GLfloat height   /* In centimeters. */
);
extern void CPSetTexture(ControlPanel *cp, const char *path);

extern void CPResetTimmers(ControlPanel *cp, time_t t);
extern void CPChangeValues(ControlPanel *cp, ControlPanelValues *v);
extern void CPDraw(ControlPanel *cp);
extern void CPManage(ControlPanel *cp, ControlPanelValues *v);



#endif	/* CP_H */