Blender V2.61 - r43446
|
00001 /* 00002 * ***** BEGIN GPL LICENSE BLOCK ***** 00003 * 00004 * This program is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU General Public License 00006 * as published by the Free Software Foundation; either version 2 00007 * of the License, or (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program; if not, write to the Free Software Foundation, 00016 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00017 * 00018 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. 00019 * All rights reserved. 00020 * 00021 * The Original Code is: all of this file. 00022 * 00023 * Contributor(s): none yet. 00024 * 00025 * ***** END GPL LICENSE BLOCK ***** 00026 */ 00027 #ifndef BKE_SCENE_H 00028 #define BKE_SCENE_H 00029 00036 #ifdef __cplusplus 00037 extern "C" { 00038 #endif 00039 00040 struct AviCodecData; 00041 struct Base; 00042 struct bglMats; 00043 struct Main; 00044 struct Object; 00045 struct QuicktimeCodecData; 00046 struct RenderData; 00047 struct SceneRenderLayer; 00048 struct Scene; 00049 struct Text; 00050 struct Text; 00051 00052 #define SCE_COPY_NEW 0 00053 #define SCE_COPY_EMPTY 1 00054 #define SCE_COPY_LINK_OB 2 00055 #define SCE_COPY_LINK_DATA 3 00056 #define SCE_COPY_FULL 4 00057 00058 #define SETLOOPER(_sce_basis, _sce_iter, _base) _sce_iter= _sce_basis, _base= _setlooper_base_step(&_sce_iter, NULL); _base; _base= _setlooper_base_step(&_sce_iter, _base) 00059 struct Base *_setlooper_base_step(struct Scene **sce_iter, struct Base *base); 00060 00061 void free_avicodecdata(struct AviCodecData *acd); 00062 void free_qtcodecdata(struct QuicktimeCodecData *acd); 00063 00064 void free_scene(struct Scene *sce); 00065 struct Scene *add_scene(const char *name); 00066 struct Base *object_in_scene(struct Object *ob, struct Scene *sce); 00067 00068 void set_scene_bg(struct Main *bmain, struct Scene *sce); 00069 struct Scene *set_scene_name(struct Main *bmain, const char *name); 00070 00071 struct Scene *copy_scene(struct Scene *sce, int type); 00072 void unlink_scene(struct Main *bmain, struct Scene *sce, struct Scene *newsce); 00073 00074 int next_object(struct Scene **scene, int val, struct Base **base, struct Object **ob); 00075 struct Object *scene_find_camera(struct Scene *sc); 00076 struct Object *scene_camera_switch_find(struct Scene *scene); // DURIAN_CAMERA_SWITCH 00077 int scene_camera_switch_update(struct Scene *scene); 00078 00079 char *scene_find_marker_name(struct Scene *scene, int frame); 00080 char *scene_find_last_marker_name(struct Scene *scene, int frame); 00081 00082 struct Base *scene_add_base(struct Scene *sce, struct Object *ob); 00083 void scene_deselect_all(struct Scene *sce); 00084 void scene_select_base(struct Scene *sce, struct Base *selbase); 00085 00086 /* checks for cycle, returns 1 if it's all OK */ 00087 int scene_check_setscene(struct Main *bmain, struct Scene *sce); 00088 00089 float BKE_curframe(struct Scene *scene); 00090 float BKE_frame_to_ctime(struct Scene *scene, const float frame); 00091 00092 void scene_update_tagged(struct Main *bmain, struct Scene *sce); 00093 00094 void scene_update_for_newframe(struct Main *bmain, struct Scene *sce, unsigned int lay); 00095 00096 struct SceneRenderLayer *scene_add_render_layer(struct Scene *sce, const char *name); 00097 int scene_remove_render_layer(struct Main *main, struct Scene *scene, struct SceneRenderLayer *srl); 00098 00099 /* render profile */ 00100 int get_render_subsurf_level(struct RenderData *r, int level); 00101 int get_render_child_particle_number(struct RenderData *r, int num); 00102 int get_render_shadow_samples(struct RenderData *r, int samples); 00103 float get_render_aosss_error(struct RenderData *r, float error); 00104 00105 int scene_use_new_shading_nodes(struct Scene *scene); 00106 00107 #ifdef __cplusplus 00108 } 00109 #endif 00110 00111 #endif 00112