Code cleanup / Cycles: Remove unused "curverender" variable from Object class, was...
[blender.git] / intern / cycles / render / object.h
1 /*
2  * Copyright 2011-2013 Blender Foundation
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License
15  */
16
17 #ifndef __OBJECT_H__
18 #define __OBJECT_H__
19
20 #include "util_boundbox.h"
21 #include "util_param.h"
22 #include "util_transform.h"
23 #include "util_types.h"
24
25 CCL_NAMESPACE_BEGIN
26
27 class Device;
28 class DeviceScene;
29 class Mesh;
30 class Progress;
31 class Scene;
32 struct Transform;
33
34 /* Object */
35
36 class Object {
37 public:
38         Mesh *mesh;
39         Transform tfm;
40         BoundBox bounds;
41         ustring name;
42         uint random_id;
43         int pass_id;
44         vector<ParamValue> attributes;
45         uint visibility;
46         MotionTransform motion;
47         bool use_motion;
48         bool use_holdout;
49
50         float3 dupli_generated;
51         float2 dupli_uv;
52
53         int particle_id;
54
55         Object();
56         ~Object();
57
58         void tag_update(Scene *scene);
59
60         void compute_bounds(bool motion_blur, float shuttertime);
61         void apply_transform();
62 };
63
64 /* Object Manager */
65
66 class ObjectManager {
67 public:
68         bool need_update;
69
70         ObjectManager();
71         ~ObjectManager();
72
73         void device_update(Device *device, DeviceScene *dscene, Scene *scene, Progress& progress);
74         void device_update_transforms(Device *device, DeviceScene *dscene, Scene *scene, uint *object_flag, Progress& progress);
75         void device_free(Device *device, DeviceScene *dscene);
76
77         void tag_update(Scene *scene);
78
79         void apply_static_transforms(DeviceScene *dscene, Scene *scene, uint *object_flag, Progress& progress);
80 };
81
82 CCL_NAMESPACE_END
83
84 #endif /* __OBJECT_H__ */
85