4 Copyright 2008-2012 Michel Pollet <buserror@gmail.com>
6 This file is part of libc3.
8 libc3 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.
13 libc3 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.
18 You should have received a copy of the GNU General Public License
19 along with libc3. If not, see <http://www.gnu.org/licenses/>.
23 #ifndef __C3DRIVER_OBJECT_H___
24 #define __C3DRIVER_OBJECT_H___
29 struct c3geometry_array_t;
32 typedef struct c3driver_object_t {
34 * Delete any object related to this object, geometry etc
35 * The object will still exist, just empty
38 struct c3object_t * object,
39 const struct c3driver_object_t * d);
41 * Dispose of the remaining memory for an object, detaches it
42 * and frees remaining traces of it
45 struct c3object_t * object,
46 const struct c3driver_object_t * d);
48 * Adds sub objects geometry and self geometry to array 'out'
51 struct c3object_t * object,
52 const struct c3driver_object_t * d,
53 struct c3geometry_array_t * out);
55 * Reproject geometry along matrix 'mat', applies our own
56 * transform and call down the chain for sub-objects
59 struct c3object_t * object,
60 const struct c3driver_object_t * d,
62 } c3driver_object_t, *c3driver_object_p;
65 #endif /* __C3DRIVER_OBJECT_H___ */