Merged changes in the trunk up to revision 49797.
[blender.git] / source / blender / freestyle / FRS_freestyle.h
1 /* FRS_freestyle.h
2  *
3  * $Id$
4  *
5  * ***** BEGIN GPL LICENSE BLOCK *****
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software Foundation,
19  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  *
21  * The Original Code is Copyright (C) 2010 Blender Foundation.
22  * All rights reserved.
23  *
24  * The Original Code is: all of this file.
25  *
26  * Contributor(s): none yet.
27  *
28  * ***** END GPL LICENSE BLOCK *****
29  */
30
31 #ifndef FRS_FREESTYLE_H
32 #define FRS_FREESTYLE_H
33
34 #ifdef __cplusplus
35 extern "C" {
36 #endif  
37         
38         #include "DNA_listBase.h"
39         #include "DNA_scene_types.h"
40         
41         #include "BKE_context.h"
42         #include "BKE_object.h"
43         
44         struct Render;
45         
46         extern Scene *freestyle_scene;
47         extern float freestyle_viewpoint[3];
48         extern float freestyle_mv[4][4];
49         extern float freestyle_proj[4][4];
50         extern int freestyle_viewport[4];
51
52         // Rendering
53         void FRS_initialize(void);
54         void FRS_set_context(bContext* C);
55         void FRS_read_file(bContext* C);
56         int FRS_is_freestyle_enabled(struct SceneRenderLayer* srl);
57         void FRS_init_stroke_rendering(struct Render* re);
58         struct Render* FRS_do_stroke_rendering(struct Render* re, struct SceneRenderLayer* srl);
59         void FRS_finish_stroke_rendering(struct Render* re);
60         void FRS_composite_result(struct Render* re, struct SceneRenderLayer* srl, struct Render* freestyle_render);
61         void FRS_exit(void);
62         
63         // Panel configuration
64         void FRS_add_module(FreestyleConfig *config);
65         void FRS_delete_module(FreestyleConfig *config, FreestyleModuleConfig *module_conf);
66         void FRS_move_module_up(FreestyleConfig *config, FreestyleModuleConfig *module_conf);
67         void FRS_move_module_down(FreestyleConfig *config, FreestyleModuleConfig *module_conf);
68         
69         FreestyleLineSet *FRS_add_lineset(FreestyleConfig *config);
70         void FRS_copy_active_lineset(FreestyleConfig *config);
71         void FRS_paste_active_lineset(FreestyleConfig *config);
72         void FRS_delete_active_lineset(FreestyleConfig *config);
73         void FRS_move_active_lineset_up(FreestyleConfig *config);
74         void FRS_move_active_lineset_down(FreestyleConfig *config);
75
76         FreestyleLineSet *FRS_get_active_lineset(FreestyleConfig *config);
77         short FRS_get_active_lineset_index(FreestyleConfig *config);
78         void FRS_set_active_lineset_index(FreestyleConfig *config, short index);
79
80         void FRS_unlink_target_object(FreestyleConfig *config, struct Object *ob);
81
82 #ifdef __cplusplus
83 }
84 #endif
85
86 #endif