4b079df5632fe016410c4a02abb695ac57f58ae3
[blender.git] / source / blender / freestyle / intern / scene_graph / NodeSceneRenderLayer.h
1 /*
2  * ***** BEGIN GPL LICENSE BLOCK *****
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * ***** END GPL LICENSE BLOCK *****
19  */
20
21 #ifndef __FREESTYLE_NODE_SCENE_RENDER_LAYER_H__
22 #define __FREESTYLE_NODE_SCENE_RENDER_LAYER_H__
23
24 /** \file blender/freestyle/intern/scene_graph/NodeSceneRenderLayer.h
25  *  \ingroup freestyle
26  *  \brief Class to represent a scene render layer in Blender.
27  */
28
29 #include "Node.h"
30
31 extern "C" {
32 #include "DNA_scene_types.h" /* for Scene and SceneRenderLayer */
33 }
34
35 using namespace std;
36
37 namespace Freestyle {
38
39 class NodeSceneRenderLayer : public Node
40 {
41 public:
42         inline NodeSceneRenderLayer(Scene& scene, SceneRenderLayer& srl) : Node(), _Scene(scene), _SceneRenderLayer(srl) {}
43         virtual ~NodeSceneRenderLayer() {}
44
45         inline struct Scene& scene() const
46         {
47                 return _Scene;
48         }
49
50         inline struct SceneRenderLayer& sceneRenderLayer() const
51         {
52                 return _SceneRenderLayer;
53         }
54
55         inline void setSceneRenderLayer(Scene& scene)
56         {
57                 _Scene = scene;
58         }
59
60         inline void setSceneRenderLayer(SceneRenderLayer& srl)
61         {
62                 _SceneRenderLayer = srl;
63         }
64
65         /*! Accept the corresponding visitor */
66         virtual void accept(SceneVisitor& v);
67
68 protected:
69
70         Scene& _Scene;
71         SceneRenderLayer& _SceneRenderLayer;
72 };
73
74 } /* namespace Freestyle */
75
76 #endif // __FREESTYLE_NODE_SCENE_RENDER_LAYER_H__