c3light: New bit
[simavr] / examples / shared / libc3 / src / c3light.h
1 /*
2         c3light.h
3
4         Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
5
6         This file is part of libc3.
7
8         simavr is free software: you can redistribute it and/or modify
9         it under the terms of the GNU General Public License as published by
10         the Free Software Foundation, either version 3 of the License, or
11         (at your option) any later version.
12
13         simavr is distributed in the hope that it will be useful,
14         but WITHOUT ANY WARRANTY; without even the implied warranty of
15         MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16         GNU General Public License for more details.
17
18         You should have received a copy of the GNU General Public License
19         along with simavr.  If not, see <http://www.gnu.org/licenses/>.
20  */
21
22
23 #ifndef __C3LIGHT_H___
24 #define __C3LIGHT_H___
25
26 #include "c3geometry.h"
27
28 enum {
29         C3_LIGHT_TYPE = C3_TYPE('l','i','g','h'),
30 };
31
32 typedef struct c3light_t {
33         c3geometry_t    geometry;
34         c3apiobject_t   light_id;
35         int                             context_view_index;
36         c3vec4                  position;
37         c3vec3                  direction;
38         c3f                             fov;
39         struct {
40                 c3colorf_t      ambiant;
41                 c3colorf_t      specular;
42         } color;
43 } c3light_t, *c3light_p;
44
45 c3light_p
46 c3light_new(
47                 struct c3object_t * o /* = NULL */);
48
49 c3light_p
50 c3light_init(
51                 c3light_p l,
52                 struct c3object_t * o /* = NULL */);
53
54 #endif /* __C3LIGHT_H___ */