|
Blender
V2.59
|
00001 /* 00002 * $Id: DNA_scene_types.h 38752 2011-07-27 07:22:31Z campbellbarton $ 00003 * 00004 * ***** BEGIN GPL LICENSE BLOCK ***** 00005 * 00006 * This program is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU General Public License 00008 * as published by the Free Software Foundation; either version 2 00009 * of the License, or (at your option) any later version. 00010 * 00011 * This program is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00014 * GNU General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU General Public License 00017 * along with this program; if not, write to the Free Software Foundation, 00018 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00019 * 00020 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. 00021 * All rights reserved. 00022 * 00023 * The Original Code is: all of this file. 00024 * 00025 * Contributor(s): none yet. 00026 * 00027 * ***** END GPL LICENSE BLOCK ***** 00028 */ 00029 #ifndef DNA_SCENE_TYPES_H 00030 #define DNA_SCENE_TYPES_H 00031 00036 // XXX, temp feature 00037 #define DURIAN_CAMERA_SWITCH 00038 00039 #ifdef __cplusplus 00040 extern "C" { 00041 #endif 00042 00043 #include "DNA_vec_types.h" 00044 #include "DNA_listBase.h" 00045 #include "DNA_ID.h" 00046 00047 struct Object; 00048 struct Brush; 00049 struct World; 00050 struct Scene; 00051 struct Image; 00052 struct Group; 00053 struct Text; 00054 struct bNodeTree; 00055 struct AnimData; 00056 struct Editing; 00057 struct SceneStats; 00058 struct bGPdata; 00059 00060 typedef struct Base { 00061 struct Base *next, *prev; 00062 unsigned int lay, selcol; 00063 int flag; 00064 short sx, sy; 00065 struct Object *object; 00066 } Base; 00067 00068 typedef struct AviCodecData { 00069 void *lpFormat; /* save format */ 00070 void *lpParms; /* compressor options */ 00071 unsigned int cbFormat; /* size of lpFormat buffer */ 00072 unsigned int cbParms; /* size of lpParms buffer */ 00073 00074 unsigned int fccType; /* stream type, for consistency */ 00075 unsigned int fccHandler; /* compressor */ 00076 unsigned int dwKeyFrameEvery; /* keyframe rate */ 00077 unsigned int dwQuality; /* compress quality 0-10,000 */ 00078 unsigned int dwBytesPerSecond; /* bytes per second */ 00079 unsigned int dwFlags; /* flags... see below */ 00080 unsigned int dwInterleaveEvery; /* for non-video streams only */ 00081 unsigned int pad; 00082 00083 char avicodecname[128]; 00084 } AviCodecData; 00085 00086 typedef struct QuicktimeCodecData { 00087 /*Old quicktime implementation compatibility fields, read only in 2.5 - deprecated*/ 00088 void *cdParms; /* codec/compressor options */ 00089 void *pad; /* padding */ 00090 00091 unsigned int cdSize; /* size of cdParms buffer */ 00092 unsigned int pad2; /* padding */ 00093 00094 char qtcodecname[128]; 00095 } QuicktimeCodecData; 00096 00097 typedef struct QuicktimeCodecSettings { 00098 /* Codec settings detailed for 2.5 implementation*/ 00099 int codecType; /* Types defined in quicktime_export.h */ 00100 int codecSpatialQuality; /* in 0-100 scale, to be translated in 0-1024 for qt use */ 00101 00102 /* Settings not available in current QTKit API */ 00103 int codec; 00104 int codecFlags; 00105 int colorDepth; 00106 int codecTemporalQuality; /* in 0-100 scale, to be translated in 0-1024 for qt use */ 00107 int minSpatialQuality; /* in 0-100 scale, to be translated in 0-1024 for qt use */ 00108 int minTemporalQuality; /* in 0-100 scale, to be translated in 0-1024 for qt use */ 00109 int keyFrameRate; 00110 int bitRate; /* bitrate in bps */ 00111 00112 /* Audio Codec settings */ 00113 int audiocodecType; 00114 int audioSampleRate; 00115 short audioBitDepth; 00116 short audioChannels; 00117 int audioCodecFlags; 00118 int audioBitRate; 00119 int pad1; 00120 } QuicktimeCodecSettings; 00121 00122 typedef struct FFMpegCodecData { 00123 int type; 00124 int codec; 00125 int audio_codec; 00126 int video_bitrate; 00127 int audio_bitrate; 00128 int audio_mixrate; 00129 float audio_volume; 00130 int gop_size; 00131 int flags; 00132 00133 int rc_min_rate; 00134 int rc_max_rate; 00135 int rc_buffer_size; 00136 int mux_packet_size; 00137 int mux_rate; 00138 IDProperty *properties; 00139 } FFMpegCodecData; 00140 00141 00142 typedef struct AudioData { 00143 int mixrate; // 2.5: now in FFMpegCodecData: audio_mixrate 00144 float main; // 2.5: now in FFMpegCodecData: audio_volume 00145 float speed_of_sound; 00146 float doppler_factor; 00147 int distance_model; 00148 short flag; 00149 short pad; 00150 } AudioData; 00151 00152 typedef struct SceneRenderLayer { 00153 struct SceneRenderLayer *next, *prev; 00154 00155 char name[32]; 00156 00157 struct Material *mat_override; 00158 struct Group *light_override; 00159 00160 unsigned int lay; /* scene->lay itself has priority over this */ 00161 unsigned int lay_zmask; /* has to be after lay, this is for Z-masking */ 00162 int layflag; 00163 00164 int pad; 00165 00166 int passflag; /* pass_xor has to be after passflag */ 00167 int pass_xor; 00168 } SceneRenderLayer; 00169 00170 /* srl->layflag */ 00171 #define SCE_LAY_SOLID 1 00172 #define SCE_LAY_ZTRA 2 00173 #define SCE_LAY_HALO 4 00174 #define SCE_LAY_EDGE 8 00175 #define SCE_LAY_SKY 16 00176 #define SCE_LAY_STRAND 32 00177 /* flags between 32 and 0x8000 are set to 1 already, for future options */ 00178 00179 #define SCE_LAY_ALL_Z 0x8000 00180 #define SCE_LAY_XOR 0x10000 00181 #define SCE_LAY_DISABLE 0x20000 00182 #define SCE_LAY_ZMASK 0x40000 00183 #define SCE_LAY_NEG_ZMASK 0x80000 00184 00185 /* srl->passflag */ 00186 #define SCE_PASS_COMBINED (1<<0) 00187 #define SCE_PASS_Z (1<<1) 00188 #define SCE_PASS_RGBA (1<<2) 00189 #define SCE_PASS_DIFFUSE (1<<3) 00190 #define SCE_PASS_SPEC (1<<4) 00191 #define SCE_PASS_SHADOW (1<<5) 00192 #define SCE_PASS_AO (1<<6) 00193 #define SCE_PASS_REFLECT (1<<7) 00194 #define SCE_PASS_NORMAL (1<<8) 00195 #define SCE_PASS_VECTOR (1<<9) 00196 #define SCE_PASS_REFRACT (1<<10) 00197 #define SCE_PASS_INDEXOB (1<<11) 00198 #define SCE_PASS_UV (1<<12) 00199 #define SCE_PASS_INDIRECT (1<<13) 00200 #define SCE_PASS_MIST (1<<14) 00201 #define SCE_PASS_RAYHITS (1<<15) 00202 #define SCE_PASS_EMIT (1<<16) 00203 #define SCE_PASS_ENVIRONMENT (1<<17) 00204 #define SCE_PASS_INDEXMA (1<<18) 00205 00206 /* note, srl->passflag is treestore element 'nr' in outliner, short still... */ 00207 00208 00209 typedef struct RenderData { 00210 00211 struct AviCodecData *avicodecdata; 00212 struct QuicktimeCodecData *qtcodecdata; 00213 struct QuicktimeCodecSettings qtcodecsettings; 00214 struct FFMpegCodecData ffcodecdata; 00215 00216 int cfra, sfra, efra; /* frames as in 'images' */ 00217 float subframe; /* subframe offset from cfra, in 0.0-1.0 */ 00218 int psfra, pefra; /* start+end frames of preview range */ 00219 00220 int images, framapto; 00221 short flag, threads; 00222 00223 float framelen, blurfac; 00224 00226 float edgeR, edgeG, edgeB; 00227 00228 short fullscreen, xplay, yplay, freqplay; /* standalone player */ // XXX deprecated since 2.5 00229 short depth, attrib; /* standalone player */ // XXX deprecated since 2.5 00230 int frame_step; /* frames to jump during render/playback */ 00231 00232 short stereomode; /* standalone player stereo settings */ // XXX deprecated since 2.5 00233 00234 short dimensionspreset; /* for the dimensions presets menu */ 00235 00236 short filtertype; /* filter is box, tent, gauss, mitch, etc */ 00237 00238 short size, maximsize; /* size in %, max in Kb */ 00239 /* from buttons: */ 00243 short xsch; 00247 short ysch; 00251 short xparts; 00255 short yparts; 00256 00257 short planes, imtype, subimtype, quality; 00258 00262 short displaymode; 00263 00267 int scemode; 00268 00272 int mode; 00273 00277 int raytrace_options; 00278 00282 short raytrace_structure; 00283 00284 /* renderer (deprecated) */ 00285 short renderer; 00286 00287 /* octree resolution */ 00288 short ocres; 00289 short pad4; 00290 00295 short alphamode; 00296 00300 short osa; 00301 00302 short frs_sec, edgeint; 00303 00304 00305 /* safety, border and display rect */ 00306 rctf safety, border; 00307 rcti disprect; 00308 00309 /* information on different layers to be rendered */ 00310 ListBase layers; 00311 short actlay; 00312 00313 /* number of mblur samples */ 00314 short mblur_samples; 00315 00319 float xasp, yasp; 00320 00321 float frs_sec_base; 00322 00325 float gauss; 00326 00327 00328 /* color management settings - color profiles, gamma correction, etc */ 00329 int color_mgt_flag; 00330 00332 float postgamma, posthue, postsat; 00333 00334 /* Dither noise intensity */ 00335 float dither_intensity; 00336 00337 /* Bake Render options */ 00338 short bake_osa, bake_filter, bake_mode, bake_flag; 00339 short bake_normal_space, bake_quad_split; 00340 float bake_maxdist, bake_biasdist, bake_pad; 00341 00342 /* path to render output */ 00343 char pic[240]; 00344 00345 /* stamps flags. */ 00346 int stamp; 00347 short stamp_font_id, pad3; /* select one of blenders bitmap fonts */ 00348 00349 /* stamp info user data. */ 00350 char stamp_udata[160]; 00351 00352 /* foreground/background color. */ 00353 float fg_stamp[4]; 00354 float bg_stamp[4]; 00355 00356 /* sequencer options */ 00357 char seq_prev_type; 00358 char seq_rend_type; 00359 char seq_flag; /* flag use for sequence render/draw */ 00360 char pad5[5]; 00361 00362 /* render simplify */ 00363 int simplify_flag; 00364 short simplify_subsurf; 00365 short simplify_shadowsamples; 00366 float simplify_particles; 00367 float simplify_aosss; 00368 00369 /* cineon */ 00370 short cineonwhite, cineonblack; 00371 float cineongamma; 00372 00373 /* jpeg2000 */ 00374 short jp2_preset, jp2_depth; 00375 int rpad3; 00376 00377 /* Dome variables */ // XXX deprecated since 2.5 00378 short domeres, domemode; // XXX deprecated since 2.5 00379 short domeangle, dometilt; // XXX deprecated since 2.5 00380 float domeresbuf; // XXX deprecated since 2.5 00381 float pad2; // XXX deprecated since 2.5 00382 struct Text *dometext; // XXX deprecated since 2.5 00383 00384 /* render engine */ 00385 char engine[32]; 00386 } RenderData; 00387 00388 /* control render convert and shading engine */ 00389 typedef struct RenderProfile { 00390 struct RenderProfile *next, *prev; 00391 char name[32]; 00392 00393 short particle_perc; 00394 short subsurf_max; 00395 short shadbufsample_max; 00396 short pad1; 00397 00398 float ao_error, pad2; 00399 00400 } RenderProfile; 00401 00402 typedef struct GameDome { 00403 short res, mode; 00404 short angle, tilt; 00405 float resbuf, pad2; 00406 struct Text *warptext; 00407 } GameDome; 00408 00409 #define DOME_FISHEYE 1 00410 #define DOME_TRUNCATED_FRONT 2 00411 #define DOME_TRUNCATED_REAR 3 00412 #define DOME_ENVMAP 4 00413 #define DOME_PANORAM_SPH 5 00414 #define DOME_NUM_MODES 6 00415 00416 typedef struct GameFraming { 00417 float col[3]; 00418 char type, pad1, pad2, pad3; 00419 } GameFraming; 00420 00421 #define SCE_GAMEFRAMING_BARS 0 00422 #define SCE_GAMEFRAMING_EXTEND 1 00423 #define SCE_GAMEFRAMING_SCALE 2 00424 00425 typedef struct GameData { 00426 00427 /* physics (it was in world)*/ 00428 float gravity; /*Gravitation constant for the game world*/ 00429 00430 /* 00431 * Radius of the activity bubble, in Manhattan length. Objects 00432 * outside the box are activity-culled. */ 00433 float activityBoxRadius; 00434 00435 /* 00436 * bit 3: (gameengine): Activity culling is enabled. 00437 * bit 5: (gameengine) : enable Bullet DBVT tree for view frustrum culling 00438 */ 00439 short mode, flag, matmode, pad[3]; 00440 short occlusionRes; /* resolution of occlusion Z buffer in pixel */ 00441 short physicsEngine; 00442 short ticrate, maxlogicstep, physubstep, maxphystep; 00443 00444 /* standalone player */ 00445 struct GameFraming framing; 00446 short fullscreen, xplay, yplay, freqplay; 00447 short depth, attrib, rt1, rt2; 00448 00449 /* stereo/dome mode */ 00450 struct GameDome dome; 00451 short stereoflag, stereomode; 00452 short pad2, pad3; 00453 float eyeseparation, pad1; 00454 } GameData; 00455 00456 #define STEREO_NOSTEREO 1 00457 #define STEREO_ENABLED 2 00458 #define STEREO_DOME 3 00459 00460 //#define STEREO_NOSTEREO 1 00461 #define STEREO_QUADBUFFERED 2 00462 #define STEREO_ABOVEBELOW 3 00463 #define STEREO_INTERLACED 4 00464 #define STEREO_ANAGLYPH 5 00465 #define STEREO_SIDEBYSIDE 6 00466 #define STEREO_VINTERLACE 7 00467 //#define STEREO_DOME 8 00468 00469 /* physicsEngine */ 00470 #define WOPHY_NONE 0 00471 #define WOPHY_ENJI 1 00472 #define WOPHY_SUMO 2 00473 #define WOPHY_DYNAMO 3 00474 #define WOPHY_ODE 4 00475 #define WOPHY_BULLET 5 00476 00477 /* GameData.flag */ 00478 #define GAME_ENABLE_ALL_FRAMES (1 << 1) 00479 #define GAME_SHOW_DEBUG_PROPS (1 << 2) 00480 #define GAME_SHOW_FRAMERATE (1 << 3) 00481 #define GAME_SHOW_PHYSICS (1 << 4) 00482 #define GAME_DISPLAY_LISTS (1 << 5) 00483 #define GAME_GLSL_NO_LIGHTS (1 << 6) 00484 #define GAME_GLSL_NO_SHADERS (1 << 7) 00485 #define GAME_GLSL_NO_SHADOWS (1 << 8) 00486 #define GAME_GLSL_NO_RAMPS (1 << 9) 00487 #define GAME_GLSL_NO_NODES (1 << 10) 00488 #define GAME_GLSL_NO_EXTRA_TEX (1 << 11) 00489 #define GAME_IGNORE_DEPRECATION_WARNINGS (1 << 12) 00490 #define GAME_ENABLE_ANIMATION_RECORD (1 << 13) 00491 #define GAME_SHOW_MOUSE (1 << 14) 00492 #define GAME_GLSL_NO_COLOR_MANAGEMENT (1 << 15) 00493 00494 /* GameData.matmode */ 00495 #define GAME_MAT_TEXFACE 0 00496 #define GAME_MAT_MULTITEX 1 00497 #define GAME_MAT_GLSL 2 00498 00499 typedef struct TimeMarker { 00500 struct TimeMarker *next, *prev; 00501 int frame; 00502 char name[64]; 00503 unsigned int flag; 00504 struct Object *camera; 00505 } TimeMarker; 00506 00507 typedef struct Paint { 00508 struct Brush *brush; 00509 00510 /* WM Paint cursor */ 00511 void *paint_cursor; 00512 unsigned char paint_cursor_col[4]; 00513 00514 int flags; 00515 } Paint; 00516 00517 typedef struct ImagePaintSettings { 00518 Paint paint; 00519 00520 short flag, pad; 00521 00522 /* for projection painting only */ 00523 short seam_bleed, normal_angle; 00524 short screen_grab_size[2]; /* capture size for re-projection */ 00525 00526 int pad1; 00527 00528 void *paintcursor; /* wm handle */ 00529 } ImagePaintSettings; 00530 00531 typedef struct ParticleBrushData { 00532 short size; /* common setting */ 00533 short step, invert, count; /* for specific brushes only */ 00534 int flag; 00535 float strength; 00536 } ParticleBrushData; 00537 00538 typedef struct ParticleEditSettings { 00539 short flag; 00540 short totrekey; 00541 short totaddkey; 00542 short brushtype; 00543 00544 ParticleBrushData brush[7]; /* 7 = PE_TOT_BRUSH */ 00545 void *paintcursor; /* runtime */ 00546 00547 float emitterdist, rt; 00548 00549 int selectmode; 00550 int edittype; 00551 00552 int draw_step, fade_frames; 00553 00554 struct Scene *scene; 00555 struct Object *object; 00556 } ParticleEditSettings; 00557 00558 typedef struct TransformOrientation { 00559 struct TransformOrientation *next, *prev; 00560 char name[36]; 00561 float mat[3][3]; 00562 } TransformOrientation; 00563 00564 typedef struct Sculpt { 00565 Paint paint; 00566 00567 /* For rotating around a pivot point */ 00568 //float pivot[3]; XXX not used? 00569 int flags; 00570 00571 /* Control tablet input */ 00572 //char tablet_size, tablet_strength; XXX not used? 00573 int radial_symm[3]; 00574 00575 // all this below is used to communicate with the cursor drawing routine 00576 00577 /* record movement of mouse so that rake can start at an intuitive angle */ 00578 float last_x, last_y; 00579 float last_angle; 00580 00581 int draw_anchored; 00582 int anchored_size; 00583 float anchored_location[3]; 00584 float anchored_initial_mouse[2]; 00585 00586 int draw_pressure; 00587 float pressure_value; 00588 00589 float special_rotation; 00590 00591 int pad; 00592 } Sculpt; 00593 00594 typedef struct VPaint { 00595 Paint paint; 00596 00597 short flag, pad; 00598 int tot; /* allocation size of prev buffers */ 00599 unsigned int *vpaint_prev; /* previous mesh colors */ 00600 struct MDeformVert *wpaint_prev; /* previous vertex weights */ 00601 00602 void *paintcursor; /* wm handle */ 00603 } VPaint; 00604 00605 /* VPaint flag */ 00606 #define VP_COLINDEX 1 00607 #define VP_AREA 2 00608 00609 #define VP_NORMALS 8 00610 #define VP_SPRAY 16 00611 // #define VP_MIRROR_X 32 // depricated in 2.5x use (me->editflag & ME_EDIT_MIRROR_X) 00612 #define VP_ONLYVGROUP 128 00613 00614 00615 typedef struct ToolSettings { 00616 VPaint *vpaint; /* vertex paint */ 00617 VPaint *wpaint; /* weight paint */ 00618 Sculpt *sculpt; 00619 00620 /* Vertex groups */ 00621 float vgroup_weight; 00622 00623 /* Subdivide Settings */ 00624 short cornertype; 00625 short editbutflag; 00626 /*Triangle to Quad conversion threshold*/ 00627 float jointrilimit; 00628 /* Editmode Tools */ 00629 float degr; 00630 short step; 00631 short turn; 00632 00633 float extr_offs; /* extrude offset */ 00634 float doublimit; /* remove doubles limit */ 00635 float normalsize; /* size of normals */ 00636 short automerge; 00637 00638 /* Selection Mode for Mesh */ 00639 short selectmode; 00640 00641 /* Primitive Settings */ 00642 /* UV Sphere */ 00643 short segments; 00644 short rings; 00645 00646 /* Cylinder - Tube - Circle */ 00647 short vertices; 00648 00649 /* UV Calculation */ 00650 short unwrapper; 00651 float uvcalc_radius; 00652 float uvcalc_cubesize; 00653 float uvcalc_margin; 00654 short uvcalc_mapdir; 00655 short uvcalc_mapalign; 00656 short uvcalc_flag; 00657 short uv_flag, uv_selectmode; 00658 short uv_pad; 00659 00660 /* Grease Pencil */ 00661 short gpencil_flags; 00662 00663 /* Auto-IK */ 00664 short autoik_chainlen; 00665 00666 /* Image Paint (8 byttse aligned please!) */ 00667 struct ImagePaintSettings imapaint; 00668 00669 /* Particle Editing */ 00670 struct ParticleEditSettings particle; 00671 00672 /* Transform Proportional Area of Effect */ 00673 float proportional_size; 00674 00675 /* Select Group Threshold */ 00676 float select_thresh; 00677 00678 /* Graph Editor */ 00679 float clean_thresh; 00680 00681 /* Auto-Keying Mode */ 00682 short autokey_mode, autokey_flag; /* defines in DNA_userdef_types.h */ 00683 00684 /* Retopo */ 00685 char retopo_mode; 00686 char retopo_paint_tool; 00687 char line_div, ellipse_div, retopo_hotspot; 00688 00689 /* Multires */ 00690 char multires_subdiv_type; 00691 00692 /* Skeleton generation */ 00693 short skgen_resolution; 00694 float skgen_threshold_internal; 00695 float skgen_threshold_external; 00696 float skgen_length_ratio; 00697 float skgen_length_limit; 00698 float skgen_angle_limit; 00699 float skgen_correlation_limit; 00700 float skgen_symmetry_limit; 00701 float skgen_retarget_angle_weight; 00702 float skgen_retarget_length_weight; 00703 float skgen_retarget_distance_weight; 00704 short skgen_options; 00705 char skgen_postpro; 00706 char skgen_postpro_passes; 00707 char skgen_subdivisions[3]; 00708 char skgen_multi_level; 00709 00710 /* Skeleton Sketching */ 00711 struct Object *skgen_template; 00712 char bone_sketching; 00713 char bone_sketching_convert; 00714 char skgen_subdivision_number; 00715 char skgen_retarget_options; 00716 char skgen_retarget_roll; 00717 char skgen_side_string[8]; 00718 char skgen_num_string[8]; 00719 00720 /* Alt+RMB option */ 00721 char edge_mode; 00722 char edge_mode_live_unwrap; 00723 00724 /* Transform */ 00725 char snap_mode; 00726 short snap_flag, snap_target; 00727 short proportional, prop_mode; 00728 char proportional_objects; /* proportional edit, object mode */ 00729 char pad[3]; 00730 00731 int auto_normalize; /*auto normalizing mode in wpaint*/ 00732 00733 short sculpt_paint_settings; /* user preferences for sculpt and paint */ 00734 short pad1; 00735 int sculpt_paint_unified_size; /* unified radius of brush in pixels */ 00736 float sculpt_paint_unified_unprojected_radius;/* unified radius of brush in Blender units */ 00737 float sculpt_paint_unified_alpha; /* unified strength of brush */ 00738 } ToolSettings; 00739 00740 typedef struct bStats { 00741 /* scene totals for visible layers */ 00742 int totobj, totlamp, totobjsel, totcurve, totmesh, totarmature; 00743 int totvert, totface; 00744 } bStats; 00745 00746 typedef struct UnitSettings { 00747 /* Display/Editing unit options for each scene */ 00748 float scale_length; /* maybe have other unit conversions? */ 00749 char system; /* imperial, metric etc */ 00750 char system_rotation; /* not implimented as a propper unit system yet */ 00751 short flag; 00752 00753 } UnitSettings; 00754 00755 typedef struct PhysicsSettings { 00756 float gravity[3]; 00757 int flag, quick_cache_step, rt; 00758 } PhysicsSettings; 00759 00760 typedef struct Scene { 00761 ID id; 00762 struct AnimData *adt; /* animation data (must be immediately after id for utilities to use it) */ 00763 00764 struct Object *camera; 00765 struct World *world; 00766 00767 struct Scene *set; 00768 00769 ListBase base; 00770 struct Base *basact; /* active base */ 00771 struct Object *obedit; /* name replaces old G.obedit */ 00772 00773 float cursor[3]; /* 3d cursor location */ 00774 float twcent[3]; /* center for transform widget */ 00775 float twmin[3], twmax[3]; /* boundbox of selection for transform widget */ 00776 00777 unsigned int lay; /* bitflags for layer visibility */ 00778 int layact; /* active layer */ 00779 unsigned int lay_updated; /* runtime flag, has layer ever been updated since load? */ 00780 unsigned int customdata_mask; /* XXX. runtime flag for drawing, actually belongs in the window, only used by object_handle_update() */ 00781 unsigned int customdata_mask_modal; /* XXX. same as above but for temp operator use (gl renders) */ 00782 00783 short flag; /* various settings */ 00784 00785 short use_nodes; 00786 00787 struct bNodeTree *nodetree; 00788 00789 struct Editing *ed; /* sequence editor data is allocated here */ 00790 00791 struct ToolSettings *toolsettings; /* default allocated now */ 00792 struct SceneStats *stats; /* default allocated now */ 00793 00794 /* migrate or replace? depends on some internal things... */ 00795 /* no, is on the right place (ton) */ 00796 struct RenderData r; 00797 struct AudioData audio; 00798 00799 ListBase markers; 00800 ListBase transform_spaces; 00801 00802 void *sound_scene; 00803 void *sound_scene_handle; 00804 void *sound_scrub_handle; 00805 00806 void *fps_info; /* (runtime) info/cache used for presenting playback framerate info to the user */ 00807 00808 /* none of the dependancy graph vars is mean to be saved */ 00809 struct DagForest *theDag; 00810 short dagisvalid, dagflags; 00811 short recalc; /* recalc = counterpart of ob->recalc */ 00812 00813 short pad6; 00814 int pad5; 00815 00816 /* User-Defined KeyingSets */ 00817 int active_keyingset; /* index of the active KeyingSet. first KeyingSet has index 1, 'none' active is 0, 'add new' is -1 */ 00818 ListBase keyingsets; /* KeyingSets for the given frame */ 00819 00820 /* Game Settings */ 00821 struct GameFraming framing; // XXX deprecated since 2.5 00822 struct GameData gm; 00823 00824 /* Units */ 00825 struct UnitSettings unit; 00826 00827 /* Grease Pencil */ 00828 struct bGPdata *gpd; 00829 00830 /* Physics simulation settings */ 00831 struct PhysicsSettings physics_settings; 00832 } Scene; 00833 00834 00835 /* **************** RENDERDATA ********************* */ 00836 00837 /* flag */ 00838 /* use preview range */ 00839 #define SCER_PRV_RANGE (1<<0) 00840 00841 /* mode (int now) */ 00842 #define R_OSA 0x0001 00843 #define R_SHADOW 0x0002 00844 #define R_GAMMA 0x0004 00845 #define R_ORTHO 0x0008 00846 #define R_ENVMAP 0x0010 00847 #define R_EDGE 0x0020 00848 #define R_FIELDS 0x0040 00849 #define R_FIELDSTILL 0x0080 00850 #define R_RADIO 0x0100 00851 #define R_BORDER 0x0200 00852 #define R_PANORAMA 0x0400 /* deprecated as scene option, still used in renderer */ 00853 #define R_CROP 0x0800 00854 /*#define R_COSMO 0x1000 deprecated */ 00855 #define R_ODDFIELD 0x2000 00856 #define R_MBLUR 0x4000 00857 /* unified was here */ 00858 #define R_RAYTRACE 0x10000 00859 /* R_GAUSS is obsolete, but used to retrieve setting from old files */ 00860 #define R_GAUSS 0x20000 00861 /* fbuf obsolete... */ 00862 /*#define R_FBUF 0x40000*/ 00863 /* threads obsolete... is there for old files, now use for autodetect threads */ 00864 #define R_THREADS 0x80000 00865 /* Use the same flag for autothreads */ 00866 #define R_FIXED_THREADS 0x80000 00867 00868 #define R_SPEED 0x100000 00869 #define R_SSS 0x200000 00870 #define R_NO_OVERWRITE 0x400000 /* skip existing files */ 00871 #define R_TOUCH 0x800000 /* touch files before rendering */ 00872 #define R_SIMPLIFY 0x1000000 00873 00874 /* seq_flag */ 00875 #define R_SEQ_GL_PREV 1 00876 #define R_SEQ_GL_REND 2 00877 00878 /* displaymode */ 00879 00880 #define R_OUTPUT_SCREEN 0 00881 #define R_OUTPUT_AREA 1 00882 #define R_OUTPUT_WINDOW 2 00883 #define R_OUTPUT_NONE 3 00884 /*#define R_OUTPUT_FORKED 4*/ 00885 00886 /* filtertype */ 00887 #define R_FILTER_BOX 0 00888 #define R_FILTER_TENT 1 00889 #define R_FILTER_QUAD 2 00890 #define R_FILTER_CUBIC 3 00891 #define R_FILTER_CATROM 4 00892 #define R_FILTER_GAUSS 5 00893 #define R_FILTER_MITCH 6 00894 #define R_FILTER_FAST_GAUSS 7 /* note, this is only used for nodes at the moment */ 00895 00896 /* yafray: renderer flag (not only exclusive to yafray) */ 00897 #define R_INTERN 0 00898 #define R_YAFRAY 1 00899 00900 /* raytrace structure */ 00901 #define R_RAYSTRUCTURE_AUTO 0 00902 #define R_RAYSTRUCTURE_OCTREE 1 00903 #define R_RAYSTRUCTURE_BLIBVH 2 00904 #define R_RAYSTRUCTURE_VBVH 3 00905 #define R_RAYSTRUCTURE_SIMD_SVBVH 4 /* needs SIMD */ 00906 #define R_RAYSTRUCTURE_SIMD_QBVH 5 /* needs SIMD */ 00907 00908 /* raytrace_options */ 00909 #define R_RAYTRACE_USE_LOCAL_COORDS 0x0001 00910 #define R_RAYTRACE_USE_INSTANCES 0x0002 00911 00912 /* scemode (int now) */ 00913 #define R_DOSEQ 0x0001 00914 #define R_BG_RENDER 0x0002 00915 /* passepartout is camera option now, keep this for backward compatibility */ 00916 #define R_PASSEPARTOUT 0x0004 00917 #define R_PREVIEWBUTS 0x0008 00918 #define R_EXTENSION 0x0010 00919 #define R_MATNODE_PREVIEW 0x0020 00920 #define R_DOCOMP 0x0040 00921 #define R_COMP_CROP 0x0080 00922 #define R_FREE_IMAGE 0x0100 00923 #define R_SINGLE_LAYER 0x0200 00924 #define R_EXR_TILE_FILE 0x0400 00925 #define R_COMP_FREE 0x0800 00926 #define R_NO_IMAGE_LOAD 0x1000 00927 #define R_NO_TEX 0x2000 00928 #define R_NO_FRAME_UPDATE 0x4000 00929 #define R_FULL_SAMPLE 0x8000 00930 /* #define R_DEPRECATED 0x10000 */ 00931 /* #define R_RECURS_PROTECTION 0x20000 */ 00932 #define R_TEXNODE_PREVIEW 0x40000 00933 00934 /* r->stamp */ 00935 #define R_STAMP_TIME 0x0001 00936 #define R_STAMP_FRAME 0x0002 00937 #define R_STAMP_DATE 0x0004 00938 #define R_STAMP_CAMERA 0x0008 00939 #define R_STAMP_SCENE 0x0010 00940 #define R_STAMP_NOTE 0x0020 00941 #define R_STAMP_DRAW 0x0040 /* draw in the image */ 00942 #define R_STAMP_MARKER 0x0080 00943 #define R_STAMP_FILENAME 0x0100 00944 #define R_STAMP_SEQSTRIP 0x0200 00945 #define R_STAMP_RENDERTIME 0x0400 00946 #define R_STAMP_CAMERALENS 0x0800 00947 #define R_STAMP_ALL (R_STAMP_TIME|R_STAMP_FRAME|R_STAMP_DATE|R_STAMP_CAMERA|R_STAMP_SCENE|R_STAMP_NOTE|R_STAMP_MARKER|R_STAMP_FILENAME|R_STAMP_SEQSTRIP|R_STAMP_RENDERTIME|R_STAMP_CAMERALENS) 00948 00949 /* alphamode */ 00950 #define R_ADDSKY 0 00951 #define R_ALPHAPREMUL 1 00952 #define R_ALPHAKEY 2 00953 00954 /* planes */ 00955 #define R_PLANES24 24 00956 #define R_PLANES32 32 00957 #define R_PLANESBW 8 00958 00959 /* color_mgt_flag */ 00960 #define R_COLOR_MANAGEMENT 1 00961 00962 /* imtype */ 00963 #define R_TARGA 0 00964 #define R_IRIS 1 00965 /* #define R_HAMX 2 */ /* hamx is nomore */ 00966 /* #define R_FTYPE 3 */ /* ftype is nomore */ 00967 #define R_JPEG90 4 00968 /*#define R_MOVIE 5*/ /* movie is nomore */ 00969 #define R_IRIZ 7 00970 #define R_RAWTGA 14 00971 #define R_AVIRAW 15 00972 #define R_AVIJPEG 16 00973 #define R_PNG 17 00974 #define R_AVICODEC 18 00975 #define R_QUICKTIME 19 00976 #define R_BMP 20 00977 #define R_RADHDR 21 00978 #define R_TIFF 22 00979 #define R_OPENEXR 23 00980 #define R_FFMPEG 24 00981 #define R_FRAMESERVER 25 00982 #define R_CINEON 26 00983 #define R_DPX 27 00984 #define R_MULTILAYER 28 00985 #define R_DDS 29 00986 #define R_JP2 30 00987 #define R_H264 31 00988 #define R_XVID 32 00989 #define R_THEORA 33 00990 00991 /* subimtype, flag options for imtype */ 00992 #define R_OPENEXR_HALF 1 00993 #define R_OPENEXR_ZBUF 2 00994 #define R_PREVIEW_JPG 4 00995 #define R_CINEON_LOG 8 00996 #define R_TIFF_16BIT 16 00997 00998 #define R_JPEG2K_12BIT 32 /* Jpeg2000 */ 00999 #define R_JPEG2K_16BIT 64 01000 #define R_JPEG2K_YCC 128 /* when disabled use RGB */ 01001 #define R_JPEG2K_CINE_PRESET 256 01002 #define R_JPEG2K_CINE_48FPS 512 01003 01004 /* bake_mode: same as RE_BAKE_xxx defines */ 01005 /* bake_flag: */ 01006 #define R_BAKE_CLEAR 1 01007 #define R_BAKE_OSA 2 01008 #define R_BAKE_TO_ACTIVE 4 01009 #define R_BAKE_NORMALIZE 8 01010 #define R_BAKE_MULTIRES 16 01011 #define R_BAKE_LORES_MESH 32 01012 01013 /* bake_normal_space */ 01014 #define R_BAKE_SPACE_CAMERA 0 01015 #define R_BAKE_SPACE_WORLD 1 01016 #define R_BAKE_SPACE_OBJECT 2 01017 #define R_BAKE_SPACE_TANGENT 3 01018 01019 /* simplify_flag */ 01020 #define R_SIMPLE_NO_TRIANGULATE 1 01021 01022 /* sequencer seq_prev_type seq_rend_type */ 01023 01024 01025 /* **************** SCENE ********************* */ 01026 01027 /* for general use */ 01028 #define MAXFRAME 300000 01029 #define MAXFRAMEF 300000.0f 01030 01031 #define MINFRAME 0 01032 #define MINFRAMEF 0.0f 01033 01034 /* (minimum frame number for current-frame) */ 01035 #define MINAFRAME -300000 01036 #define MINAFRAMEF -300000.0f 01037 01038 /* depricate this! */ 01039 #define TESTBASE(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) ) 01040 #define TESTBASELIB(v3d, base) ( ((base)->flag & SELECT) && ((base)->lay & v3d->lay) && ((base)->object->id.lib==NULL) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0)) 01041 #define TESTBASELIB_BGMODE(v3d, scene, base) ( ((base)->flag & SELECT) && ((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==NULL) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0)) 01042 #define BASE_EDITABLE_BGMODE(v3d, scene, base) (((base)->lay & (v3d ? v3d->lay : scene->lay)) && ((base)->object->id.lib==NULL) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0)) 01043 #define BASE_SELECTABLE(v3d, base) ((base->lay & v3d->lay) && (base->object->restrictflag & (OB_RESTRICT_SELECT|OB_RESTRICT_VIEW))==0) 01044 #define BASE_VISIBLE(v3d, base) ((base->lay & v3d->lay) && (base->object->restrictflag & OB_RESTRICT_VIEW)==0) 01045 #define FIRSTBASE scene->base.first 01046 #define LASTBASE scene->base.last 01047 #define BASACT (scene->basact) 01048 #define OBACT (BASACT? BASACT->object: NULL) 01049 01050 #define V3D_CAMERA_LOCAL(v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : NULL) 01051 #define V3D_CAMERA_SCENE(scene, v3d) ((!(v3d)->scenelock && (v3d)->camera) ? (v3d)->camera : (scene)->camera) 01052 01053 #define ID_NEW(a) if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid 01054 #define ID_NEW_US(a) if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;} 01055 #define ID_NEW_US2(a) if( ((ID *)a)->newid) {(a)= ((ID *)a)->newid; ((ID *)a)->us++;} 01056 #define CFRA (scene->r.cfra) 01057 #define SUBFRA (scene->r.subframe) 01058 #define SFRA (scene->r.sfra) 01059 #define EFRA (scene->r.efra) 01060 #define PRVRANGEON (scene->r.flag & SCER_PRV_RANGE) 01061 #define PSFRA ((PRVRANGEON)? (scene->r.psfra): (scene->r.sfra)) 01062 #define PEFRA ((PRVRANGEON)? (scene->r.pefra): (scene->r.efra)) 01063 #define FRA2TIME(a) ((((double) scene->r.frs_sec_base) * (double)(a)) / (double)scene->r.frs_sec) 01064 #define TIME2FRA(a) ((((double) scene->r.frs_sec) * (double)(a)) / (double)scene->r.frs_sec_base) 01065 #define FPS (((double) scene->r.frs_sec) / (double)scene->r.frs_sec_base) 01066 01067 #define RAD_PHASE_PATCHES 1 01068 #define RAD_PHASE_FACES 2 01069 01070 /* base->flag is in DNA_object_types.h */ 01071 01072 /* toolsettings->snap_flag */ 01073 #define SCE_SNAP 1 01074 #define SCE_SNAP_ROTATE 2 01075 #define SCE_SNAP_PEEL_OBJECT 4 01076 #define SCE_SNAP_PROJECT 8 01077 #define SCE_SNAP_NO_SELF 16 01078 /* toolsettings->snap_target */ 01079 #define SCE_SNAP_TARGET_CLOSEST 0 01080 #define SCE_SNAP_TARGET_CENTER 1 01081 #define SCE_SNAP_TARGET_MEDIAN 2 01082 #define SCE_SNAP_TARGET_ACTIVE 3 01083 /* toolsettings->snap_mode */ 01084 #define SCE_SNAP_MODE_INCREMENT 0 01085 #define SCE_SNAP_MODE_VERTEX 1 01086 #define SCE_SNAP_MODE_EDGE 2 01087 #define SCE_SNAP_MODE_FACE 3 01088 #define SCE_SNAP_MODE_VOLUME 4 01089 01090 /* toolsettings->selectmode */ 01091 #define SCE_SELECT_VERTEX 1 /* for mesh */ 01092 #define SCE_SELECT_EDGE 2 01093 #define SCE_SELECT_FACE 4 01094 01095 /* toolsettings->particle.selectmode for particles */ 01096 #define SCE_SELECT_PATH 1 01097 #define SCE_SELECT_POINT 2 01098 #define SCE_SELECT_END 4 01099 01100 /* sce->recalc (now in use by previewrender) */ 01101 #define SCE_PRV_CHANGED 1 01102 01103 /* toolsettings->prop_mode (proportional falloff) */ 01104 #define PROP_SMOOTH 0 01105 #define PROP_SPHERE 1 01106 #define PROP_ROOT 2 01107 #define PROP_SHARP 3 01108 #define PROP_LIN 4 01109 #define PROP_CONST 5 01110 #define PROP_RANDOM 6 01111 #define PROP_MODE_MAX 7 01112 01113 /* toolsettings->proportional */ 01114 #define PROP_EDIT_OFF 0 01115 #define PROP_EDIT_ON 1 01116 #define PROP_EDIT_CONNECTED 2 01117 01118 /* sce->flag */ 01119 #define SCE_DS_SELECTED (1<<0) 01120 #define SCE_DS_COLLAPSED (1<<1) 01121 #define SCE_NLA_EDIT_ON (1<<2) 01122 #define SCE_FRAME_DROP (1<<3) 01123 01124 01125 /* return flag next_object function */ 01126 #define F_ERROR -1 01127 #define F_START 0 01128 #define F_SCENE 1 01129 #define F_DUPLI 3 01130 01131 /* audio->flag */ 01132 #define AUDIO_MUTE 1 01133 #define AUDIO_SYNC 2 01134 #define AUDIO_SCRUB 4 01135 01136 #define FFMPEG_MULTIPLEX_AUDIO 1 /* deprecated, you can choose none as audiocodec now */ 01137 #define FFMPEG_AUTOSPLIT_OUTPUT 2 01138 01139 /* Paint.flags */ 01140 typedef enum { 01141 PAINT_SHOW_BRUSH = (1<<0), 01142 PAINT_FAST_NAVIGATE = (1<<1), 01143 PAINT_SHOW_BRUSH_ON_SURFACE = (1<<2), 01144 } PaintFlags; 01145 01146 /* Sculpt.flags */ 01147 /* These can eventually be moved to paint flags? */ 01148 typedef enum SculptFlags { 01149 SCULPT_SYMM_X = (1<<0), 01150 SCULPT_SYMM_Y = (1<<1), 01151 SCULPT_SYMM_Z = (1<<2), 01152 SCULPT_LOCK_X = (1<<3), 01153 SCULPT_LOCK_Y = (1<<4), 01154 SCULPT_LOCK_Z = (1<<5), 01155 SCULPT_SYMMETRY_FEATHER = (1<<6), 01156 SCULPT_USE_OPENMP = (1<<7), 01157 SCULPT_ONLY_DEFORM = (1<<8), 01158 } SculptFlags; 01159 01160 /* sculpt_paint_settings */ 01161 #define SCULPT_PAINT_USE_UNIFIED_SIZE (1<<0) 01162 #define SCULPT_PAINT_USE_UNIFIED_ALPHA (1<<1) 01163 #define SCULPT_PAINT_UNIFIED_LOCK_BRUSH_SIZE (1<<2) 01164 #define SCULPT_PAINT_UNIFIED_SIZE_PRESSURE (1<<3) 01165 #define SCULPT_PAINT_UNIFIED_ALPHA_PRESSURE (1<<4) 01166 01167 /* ImagePaintSettings.flag */ 01168 #define IMAGEPAINT_DRAWING 1 01169 // #define IMAGEPAINT_DRAW_TOOL 2 // deprecated 01170 // #define IMAGEPAINT_DRAW_TOOL_DRAWING 4 // deprecated 01171 01172 /* projection painting only */ 01173 #define IMAGEPAINT_PROJECT_DISABLE 8 /* Non projection 3D painting */ 01174 #define IMAGEPAINT_PROJECT_XRAY 16 01175 #define IMAGEPAINT_PROJECT_BACKFACE 32 01176 #define IMAGEPAINT_PROJECT_FLAT 64 01177 #define IMAGEPAINT_PROJECT_LAYER_CLONE 128 01178 #define IMAGEPAINT_PROJECT_LAYER_STENCIL 256 01179 #define IMAGEPAINT_PROJECT_LAYER_STENCIL_INV 512 01180 01181 /* toolsettings->uvcalc_flag */ 01182 #define UVCALC_FILLHOLES 1 01183 #define UVCALC_NO_ASPECT_CORRECT 2 /* would call this UVCALC_ASPECT_CORRECT, except it should be default with old file */ 01184 #define UVCALC_TRANSFORM_CORRECT 4 /* adjust UV's while transforming to avoid distortion */ 01185 01186 /* toolsettings->uv_flag */ 01187 #define UV_SYNC_SELECTION 1 01188 #define UV_SHOW_SAME_IMAGE 2 01189 01190 /* toolsettings->uv_selectmode */ 01191 #define UV_SELECT_VERTEX 1 01192 #define UV_SELECT_EDGE 2 01193 #define UV_SELECT_FACE 4 01194 #define UV_SELECT_ISLAND 8 01195 01196 /* toolsettings->edge_mode */ 01197 #define EDGE_MODE_SELECT 0 01198 #define EDGE_MODE_TAG_SEAM 1 01199 #define EDGE_MODE_TAG_SHARP 2 01200 #define EDGE_MODE_TAG_CREASE 3 01201 #define EDGE_MODE_TAG_BEVEL 4 01202 01203 /* toolsettings->gpencil_flags */ 01204 #define GP_TOOL_FLAG_PAINTSESSIONS_ON (1<<0) 01205 01206 /* toolsettings->particle flag */ 01207 #define PE_KEEP_LENGTHS 1 01208 #define PE_LOCK_FIRST 2 01209 #define PE_DEFLECT_EMITTER 4 01210 #define PE_INTERPOLATE_ADDED 8 01211 #define PE_DRAW_PART 16 01212 /* #define PE_X_MIRROR 64 */ /* deprecated */ 01213 #define PE_FADE_TIME 128 01214 #define PE_AUTO_VELOCITY 256 01215 01216 /* toolsetting->particle brushtype */ 01217 #define PE_BRUSH_NONE -1 01218 #define PE_BRUSH_COMB 0 01219 #define PE_BRUSH_CUT 1 01220 #define PE_BRUSH_LENGTH 2 01221 #define PE_BRUSH_PUFF 3 01222 #define PE_BRUSH_ADD 4 01223 #define PE_BRUSH_SMOOTH 5 01224 #define PE_BRUSH_WEIGHT 6 01225 01226 /* this must equal ParticleEditSettings.brush array size */ 01227 #define PE_TOT_BRUSH 6 01228 01229 /* ParticleBrushData->flag */ 01230 #define PE_BRUSH_DATA_PUFF_VOLUME 1 01231 01232 /* tooksettings->particle edittype */ 01233 #define PE_TYPE_PARTICLES 0 01234 #define PE_TYPE_SOFTBODY 1 01235 #define PE_TYPE_CLOTH 2 01236 01237 /* toolsettings->retopo_mode */ 01238 #define RETOPO 1 01239 #define RETOPO_PAINT 2 01240 01241 /* toolsettings->retopo_paint_tool */ /*UNUSED*/ 01242 /* #define RETOPO_PEN 1 */ 01243 /* #define RETOPO_LINE 2 */ 01244 /* #define RETOPO_ELLIPSE 4 */ 01245 01246 /* toolsettings->skgen_options */ 01247 #define SKGEN_FILTER_INTERNAL (1 << 0) 01248 #define SKGEN_FILTER_EXTERNAL (1 << 1) 01249 #define SKGEN_SYMMETRY (1 << 2) 01250 #define SKGEN_CUT_LENGTH (1 << 3) 01251 #define SKGEN_CUT_ANGLE (1 << 4) 01252 #define SKGEN_CUT_CORRELATION (1 << 5) 01253 #define SKGEN_HARMONIC (1 << 6) 01254 #define SKGEN_STICK_TO_EMBEDDING (1 << 7) 01255 #define SKGEN_ADAPTIVE_DISTANCE (1 << 8) 01256 #define SKGEN_FILTER_SMART (1 << 9) 01257 #define SKGEN_DISP_LENGTH (1 << 10) 01258 #define SKGEN_DISP_WEIGHT (1 << 11) 01259 #define SKGEN_DISP_ORIG (1 << 12) 01260 #define SKGEN_DISP_EMBED (1 << 13) 01261 #define SKGEN_DISP_INDEX (1 << 14) 01262 01263 #define SKGEN_SUB_LENGTH 0 01264 #define SKGEN_SUB_ANGLE 1 01265 #define SKGEN_SUB_CORRELATION 2 01266 #define SKGEN_SUB_TOTAL 3 01267 01268 /* toolsettings->skgen_postpro */ 01269 #define SKGEN_SMOOTH 0 01270 #define SKGEN_AVERAGE 1 01271 #define SKGEN_SHARPEN 2 01272 01273 /* toolsettings->bone_sketching */ 01274 #define BONE_SKETCHING 1 01275 #define BONE_SKETCHING_QUICK 2 01276 #define BONE_SKETCHING_ADJUST 4 01277 01278 /* toolsettings->bone_sketching_convert */ 01279 #define SK_CONVERT_CUT_FIXED 0 01280 #define SK_CONVERT_CUT_LENGTH 1 01281 #define SK_CONVERT_CUT_ADAPTATIVE 2 01282 #define SK_CONVERT_RETARGET 3 01283 01284 /* toolsettings->skgen_retarget_options */ 01285 #define SK_RETARGET_AUTONAME 1 01286 01287 /* toolsettings->skgen_retarget_roll */ 01288 #define SK_RETARGET_ROLL_NONE 0 01289 #define SK_RETARGET_ROLL_VIEW 1 01290 #define SK_RETARGET_ROLL_JOINT 2 01291 01292 /* physics_settings->flag */ 01293 #define PHYS_GLOBAL_GRAVITY 1 01294 01295 /* UnitSettings */ 01296 01297 /* UnitSettings->system */ 01298 #define USER_UNIT_NONE 0 01299 #define USER_UNIT_METRIC 1 01300 #define USER_UNIT_IMPERIAL 2 01301 /* UnitSettings->flag */ 01302 #define USER_UNIT_OPT_SPLIT 1 01303 #define USER_UNIT_ROT_RADIANS 2 01304 01305 01306 #ifdef __cplusplus 01307 } 01308 #endif 01309 01310 #endif