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 00034 #ifndef DNA_USERDEF_TYPES_H 00035 #define DNA_USERDEF_TYPES_H 00036 00037 #include "DNA_listBase.h" 00038 #include "DNA_texture_types.h" /* ColorBand */ 00039 00040 #ifdef __cplusplus 00041 extern "C" { 00042 #endif 00043 00044 /* themes; defines in BIF_resource.h */ 00045 struct ColorBand; 00046 00047 /* ************************ style definitions ******************** */ 00048 00049 #define MAX_STYLE_NAME 64 00050 #define MAX_FONT_NAME 256 00051 00052 /* default uifont_id offered by Blender */ 00053 #define UIFONT_DEFAULT 0 00054 /*#define UIFONT_BITMAP 1*/ /*UNUSED*/ 00055 /* free slots */ 00056 #define UIFONT_CUSTOM1 2 00057 #define UIFONT_CUSTOM2 3 00058 00059 /* default fonts to load/initalize */ 00060 /* first font is the default (index 0), others optional */ 00061 typedef struct uiFont { 00062 struct uiFont *next, *prev; 00063 char filename[256]; 00064 short blf_id; /* from blfont lib */ 00065 short uifont_id; /* own id */ 00066 short r_to_l; /* fonts that read from left to right */ 00067 short pad; 00068 00069 } uiFont; 00070 00071 /* this state defines appearance of text */ 00072 typedef struct uiFontStyle { 00073 short uifont_id; /* saved in file, 0 is default */ 00074 short points; /* actual size depends on 'global' dpi */ 00075 short kerning; /* unfitted or default kerning value. */ 00076 char pad[6]; 00077 short italic, bold; /* style hint */ 00078 short shadow; /* value is amount of pixels blur */ 00079 short shadx, shady; /* shadow offset in pixels */ 00080 short align; /* text align hint */ 00081 float shadowalpha; /* total alpha */ 00082 float shadowcolor; /* 1 value, typically white or black anyway */ 00083 00084 } uiFontStyle; 00085 00086 /* uiFontStyle->align */ 00087 #define UI_STYLE_TEXT_LEFT 0 00088 #define UI_STYLE_TEXT_CENTER 1 00089 #define UI_STYLE_TEXT_RIGHT 2 00090 00091 00092 /* this is fed to the layout engine and widget code */ 00093 00094 typedef struct uiStyle { 00095 struct uiStyle *next, *prev; 00096 00097 char name[64]; /* MAX_STYLE_NAME */ 00098 00099 uiFontStyle paneltitle; 00100 uiFontStyle grouplabel; 00101 uiFontStyle widgetlabel; 00102 uiFontStyle widget; 00103 00104 float panelzoom; 00105 00106 short minlabelchars; /* in characters */ 00107 short minwidgetchars; /* in characters */ 00108 00109 short columnspace; 00110 short templatespace; 00111 short boxspace; 00112 short buttonspacex; 00113 short buttonspacey; 00114 short panelspace; 00115 short panelouter; 00116 00117 short pad; 00118 } uiStyle; 00119 00120 typedef struct uiWidgetColors { 00121 char outline[4]; 00122 char inner[4]; 00123 char inner_sel[4]; 00124 char item[4]; 00125 char text[4]; 00126 char text_sel[4]; 00127 short shaded; 00128 short shadetop, shadedown; 00129 short alpha_check; 00130 } uiWidgetColors; 00131 00132 typedef struct uiWidgetStateColors { 00133 char inner_anim[4]; 00134 char inner_anim_sel[4]; 00135 char inner_key[4]; 00136 char inner_key_sel[4]; 00137 char inner_driven[4]; 00138 char inner_driven_sel[4]; 00139 float blend, pad; 00140 } uiWidgetStateColors; 00141 00142 typedef struct uiPanelColors { 00143 char header[4]; 00144 short show_header; 00145 short pad; 00146 } uiPanelColors; 00147 00148 typedef struct ThemeUI { 00149 00150 /* Interface Elements (buttons, menus, icons) */ 00151 uiWidgetColors wcol_regular, wcol_tool, wcol_text; 00152 uiWidgetColors wcol_radio, wcol_option, wcol_toggle; 00153 uiWidgetColors wcol_num, wcol_numslider; 00154 uiWidgetColors wcol_menu, wcol_pulldown, wcol_menu_back, wcol_menu_item; 00155 uiWidgetColors wcol_box, wcol_scroll, wcol_progress, wcol_list_item; 00156 00157 uiWidgetStateColors wcol_state; 00158 00159 uiPanelColors panel; 00160 00161 char iconfile[80]; // FILE_MAXFILE length 00162 float icon_alpha; 00163 00164 float pad; 00165 } ThemeUI; 00166 00167 /* try to put them all in one, if needed a special struct can be created as well 00168 * for example later on, when we introduce wire colors for ob types or so... 00169 */ 00170 typedef struct ThemeSpace { 00171 /* main window colors */ 00172 char back[4]; 00173 char title[4]; 00174 char text[4]; 00175 char text_hi[4]; 00176 00177 /* header colors */ 00178 char header[4]; 00179 char header_title[4]; 00180 char header_text[4]; 00181 char header_text_hi[4]; 00182 00183 /* button/tool regions */ 00184 char button[4]; 00185 char button_title[4]; 00186 char button_text[4]; 00187 char button_text_hi[4]; 00188 00189 /* listview regions */ 00190 char list[4]; 00191 char list_title[4]; 00192 char list_text[4]; 00193 char list_text_hi[4]; 00194 00195 /* float panel */ 00196 char panel[4]; 00197 char panel_title[4]; 00198 char panel_text[4]; 00199 char panel_text_hi[4]; 00200 00201 char shade1[4]; 00202 char shade2[4]; 00203 00204 char hilite[4]; 00205 char grid[4]; 00206 00207 char wire[4], select[4]; 00208 char lamp[4], speaker[4], pad2[4]; 00209 char active[4], group[4], group_active[4], transform[4]; 00210 char vertex[4], vertex_select[4]; 00211 char edge[4], edge_select[4]; 00212 char edge_seam[4], edge_sharp[4], edge_facesel[4], edge_crease[4]; 00213 char face[4], face_select[4]; // solid faces 00214 char face_dot[4]; // selected color 00215 char extra_edge_len[4], extra_face_angle[4], extra_face_area[4], pad3[4]; 00216 char normal[4]; 00217 char vertex_normal[4]; 00218 char bone_solid[4], bone_pose[4]; 00219 char strip[4], strip_select[4]; 00220 char cframe[4]; 00221 00222 char nurb_uline[4], nurb_vline[4]; 00223 char act_spline[4], nurb_sel_uline[4], nurb_sel_vline[4], lastsel_point[4]; 00224 00225 char handle_free[4], handle_auto[4], handle_vect[4], handle_align[4], handle_auto_clamped[4]; 00226 char handle_sel_free[4], handle_sel_auto[4], handle_sel_vect[4], handle_sel_align[4], handle_sel_auto_clamped[4]; 00227 00228 char ds_channel[4], ds_subchannel[4]; // dopesheet 00229 00230 char console_output[4], console_input[4], console_info[4], console_error[4]; 00231 char console_cursor[4]; 00232 00233 char vertex_size, outline_width, facedot_size; 00234 char noodle_curving; 00235 00236 char syntaxl[4], syntaxn[4], syntaxb[4]; // syntax for textwindow and nodes 00237 char syntaxv[4], syntaxc[4]; 00238 00239 char movie[4], image[4], scene[4], audio[4]; // for sequence editor 00240 char effect[4], plugin[4], transition[4], meta[4]; 00241 char editmesh_active[4]; 00242 00243 char handle_vertex[4]; 00244 char handle_vertex_select[4]; 00245 00246 char handle_vertex_size; 00247 00248 char marker_outline[4], marker[4], act_marker[4], sel_marker[4], dis_marker[4], lock_marker[4]; 00249 char bundle_solid[4]; 00250 char path_before[4], path_after[4]; 00251 char camera_path[4]; 00252 char hpad[7]; 00253 00254 char preview_back[4]; 00255 00256 } ThemeSpace; 00257 00258 00259 /* set of colors for use as a custom color set for Objects/Bones wire drawing */ 00260 typedef struct ThemeWireColor { 00261 char solid[4]; 00262 char select[4]; 00263 char active[4]; 00264 00265 short flag; 00266 short pad; 00267 } ThemeWireColor; 00268 00269 /* flags for ThemeWireColor */ 00270 #define TH_WIRECOLOR_CONSTCOLS (1<<0) 00271 #define TH_WIRECOLOR_TEXTCOLS (1<<1) 00272 00273 /* A theme */ 00274 typedef struct bTheme { 00275 struct bTheme *next, *prev; 00276 char name[32]; 00277 00278 ThemeUI tui; 00279 00280 /* Individual Spacetypes */ 00281 ThemeSpace tbuts; 00282 ThemeSpace tv3d; 00283 ThemeSpace tfile; 00284 ThemeSpace tipo; 00285 ThemeSpace tinfo; 00286 ThemeSpace tact; 00287 ThemeSpace tnla; 00288 ThemeSpace tseq; 00289 ThemeSpace tima; 00290 ThemeSpace text; 00291 ThemeSpace toops; 00292 ThemeSpace ttime; 00293 ThemeSpace tnode; 00294 ThemeSpace tlogic; 00295 ThemeSpace tuserpref; 00296 ThemeSpace tconsole; 00297 ThemeSpace tclip; 00298 00299 /* 20 sets of bone colors for this theme */ 00300 ThemeWireColor tarm[20]; 00301 /*ThemeWireColor tobj[20];*/ 00302 00303 int active_theme_area, pad; 00304 00305 } bTheme; 00306 00307 /* for the moment only the name. may want to store options with this later */ 00308 typedef struct bAddon { 00309 struct bAddon *next, *prev; 00310 char module[64]; 00311 } bAddon; 00312 00313 typedef struct SolidLight { 00314 int flag, pad; 00315 float col[4], spec[4], vec[4]; 00316 } SolidLight; 00317 00318 typedef struct UserDef { 00319 int flag, dupflag; 00320 int savetime; 00321 char tempdir[160]; /* FILE_MAXDIR length */ 00322 char fontdir[160]; 00323 char renderdir[240]; /* FILE_MAX length */ 00324 char textudir[160]; 00325 char plugtexdir[160]; 00326 char plugseqdir[160]; 00327 char pythondir[160]; 00328 char sounddir[160]; 00329 char image_editor[240]; /* 240 = FILE_MAX */ 00330 char anim_player[240]; /* 240 = FILE_MAX */ 00331 int anim_player_preset; 00332 00333 short v2d_min_gridsize; /* minimum spacing between gridlines in View2D grids */ 00334 short timecode_style; /* style of timecode display */ 00335 00336 short versions; 00337 short dbl_click_time; 00338 00339 int gameflags; 00340 int wheellinescroll; 00341 int uiflag, language; 00342 short userpref, viewzoom; 00343 00344 int mixbufsize; 00345 int audiodevice; 00346 int audiorate; 00347 int audioformat; 00348 int audiochannels; 00349 00350 int scrollback; /* console scrollback limit */ 00351 int dpi; /* range 48-128? */ 00352 short encoding; 00353 short transopts; 00354 short menuthreshold1, menuthreshold2; 00355 00356 struct ListBase themes; 00357 struct ListBase uifonts; 00358 struct ListBase uistyles; 00359 struct ListBase keymaps DNA_DEPRECATED; /* deprecated in favor of user_keymaps */ 00360 struct ListBase user_keymaps; 00361 struct ListBase addons; 00362 char keyconfigstr[64]; 00363 00364 short undosteps; 00365 short undomemory; 00366 short gp_manhattendist, gp_euclideandist, gp_eraser; 00367 short gp_settings; 00368 short tb_leftmouse, tb_rightmouse; 00369 struct SolidLight light[3]; 00370 short tw_hotspot, tw_flag, tw_handlesize, tw_size; 00371 short textimeout,texcollectrate; 00372 short wmdrawmethod; /* removed wmpad */ 00373 short dragthreshold; 00374 int memcachelimit; 00375 int prefetchframes; 00376 short frameserverport; 00377 short pad_rot_angle; /*control the rotation step of the view when PAD2,PAD4,PAD6&PAD8 is use*/ 00378 short obcenter_dia; 00379 short rvisize; /* rotating view icon size */ 00380 short rvibright; /* rotating view icon brightness */ 00381 short recent_files; /* maximum number of recently used files to remember */ 00382 short smooth_viewtx; /* miliseconds to spend spinning the view */ 00383 short glreslimit; 00384 short curssize; 00385 short color_picker_type; 00386 short ipo_new; /* interpolation mode for newly added F-Curves */ 00387 short keyhandles_new; /* handle types for newly added keyframes */ 00388 00389 short scrcastfps; /* frame rate for screencast to be played back */ 00390 short scrcastwait; /* milliseconds between screencast snapshots */ 00391 00392 short widget_unit; /* defaults to 20 for 72 DPI setting */ 00393 short anisotropic_filter; 00394 /*short pad[3]; */ 00395 00396 float ndof_sensitivity; /* overall sensitivity of 3D mouse */ 00397 int ndof_flag; /* flags for 3D mouse */ 00398 00399 char versemaster[160]; 00400 char verseuser[160]; 00401 float glalphaclip; 00402 00403 short autokey_mode; /* autokeying mode */ 00404 short autokey_flag; /* flags for autokeying */ 00405 00406 short text_render, pad9[3]; /*options for text rendering*/ 00407 00408 struct ColorBand coba_weight; /* from texture.h */ 00409 00410 float sculpt_paint_overlay_col[3]; 00411 00412 short tweak_threshold; 00413 short pad3; 00414 00415 char author[80]; /* author name for file formats supporting it */ 00416 00417 int compute_device_type; 00418 int compute_device_id; 00419 } UserDef; 00420 00421 extern UserDef U; /* from blenkernel blender.c */ 00422 00423 /* ***************** USERDEF ****************** */ 00424 00425 /* userpref/section */ 00426 #define USER_SECTION_INTERFACE 0 00427 #define USER_SECTION_EDIT 1 00428 #define USER_SECTION_FILE 2 00429 #define USER_SECTION_SYSTEM 3 00430 #define USER_SECTION_THEME 4 00431 #define USER_SECTION_INPUT 5 00432 #define USER_SECTION_ADDONS 6 00433 00434 /* flag */ 00435 #define USER_AUTOSAVE (1 << 0) 00436 /*#define USER_AUTOGRABGRID (1 << 1) deprecated */ 00437 /*#define USER_AUTOROTGRID (1 << 2) deprecated */ 00438 /*#define USER_AUTOSIZEGRID (1 << 3) deprecated */ 00439 #define USER_SCENEGLOBAL (1 << 4) 00440 #define USER_TRACKBALL (1 << 5) 00441 /*#define USER_DUPLILINK (1 << 6) deprecated */ 00442 /*#define USER_FSCOLLUM (1 << 7) deprecated */ 00443 #define USER_MAT_ON_OB (1 << 8) 00444 /*#define USER_NO_CAPSLOCK (1 << 9)*/ /* not used anywhere */ 00445 /*#define USER_VIEWMOVE (1 << 10)*/ /* not used anywhere */ 00446 #define USER_TOOLTIPS (1 << 11) 00447 #define USER_TWOBUTTONMOUSE (1 << 12) 00448 #define USER_NONUMPAD (1 << 13) 00449 #define USER_LMOUSESELECT (1 << 14) 00450 #define USER_FILECOMPRESS (1 << 15) 00451 #define USER_SAVE_PREVIEWS (1 << 16) 00452 #define USER_CUSTOM_RANGE (1 << 17) 00453 #define USER_ADD_EDITMODE (1 << 18) 00454 #define USER_ADD_VIEWALIGNED (1 << 19) 00455 #define USER_RELPATHS (1 << 20) 00456 #define USER_RELEASECONFIRM (1 << 21) 00457 #define USER_SCRIPT_AUTOEXEC_DISABLE (1 << 22) 00458 #define USER_FILENOUI (1 << 23) 00459 #define USER_NONEGFRAMES (1 << 24) 00460 #define USER_TXT_TABSTOSPACES_DISABLE (1 << 25) 00461 #define USER_TOOLTIPS_PYTHON (1 << 26) 00462 00463 /* helper macro for checking frame clamping */ 00464 #define FRAMENUMBER_MIN_CLAMP(cfra) \ 00465 { \ 00466 if ((U.flag & USER_NONEGFRAMES) && (cfra < 0)) \ 00467 cfra = 0; \ 00468 } 00469 00470 /* viewzom */ 00471 #define USER_ZOOM_CONT 0 00472 #define USER_ZOOM_SCALE 1 00473 #define USER_ZOOM_DOLLY 2 00474 00475 /* uiflag */ 00476 // old flag for #define USER_KEYINSERTACT (1 << 0) 00477 // old flag for #define USER_KEYINSERTOBJ (1 << 1) 00478 #define USER_WHEELZOOMDIR (1 << 2) 00479 #define USER_FILTERFILEEXTS (1 << 3) 00480 #define USER_DRAWVIEWINFO (1 << 4) 00481 #define USER_PLAINMENUS (1 << 5) // old EVTTOCONSOLE print ghost events, here for tuhopuu compat. --phase 00482 // old flag for hide pulldown was here 00483 /*#define USER_FLIPFULLSCREEN (1 << 7)*/ /* deprecated */ 00484 #define USER_ALLWINCODECS (1 << 8) 00485 #define USER_MENUOPENAUTO (1 << 9) 00486 /*#define USER_PANELPINNED (1 << 10) deprecated */ 00487 #define USER_AUTOPERSP (1 << 11) 00488 #define USER_LOCKAROUND (1 << 12) 00489 #define USER_GLOBALUNDO (1 << 13) 00490 #define USER_ORBIT_SELECTION (1 << 14) 00491 // old flag for #define USER_KEYINSERTAVAI (1 << 15) 00492 #define USER_ORBIT_ZBUF (1 << 15) 00493 #define USER_HIDE_DOT (1 << 16) 00494 #define USER_SHOW_ROTVIEWICON (1 << 17) 00495 #define USER_SHOW_VIEWPORTNAME (1 << 18) 00496 #define USER_CAM_LOCK_NO_PARENT (1 << 19) 00497 #define USER_ZOOM_TO_MOUSEPOS (1 << 20) 00498 #define USER_SHOW_FPS (1 << 21) 00499 #define USER_MMB_PASTE (1 << 22) 00500 #define USER_MENUFIXEDORDER (1 << 23) 00501 #define USER_CONTINUOUS_MOUSE (1 << 24) 00502 #define USER_ZOOM_INVERT (1 << 25) 00503 #define USER_ZOOM_HORIZ (1 << 26) /* for CONTINUE and DOLLY zoom */ 00504 #define USER_SPLASH_DISABLE (1 << 27) 00505 #define USER_HIDE_RECENT (1 << 28) 00506 #define USER_SHOW_THUMBNAILS (1 << 29) 00507 00508 /* Auto-Keying mode */ 00509 /* AUTOKEY_ON is a bitflag */ 00510 #define AUTOKEY_ON 1 00511 /* AUTOKEY_ON + 2**n... (i.e. AUTOKEY_MODE_NORMAL = AUTOKEY_ON + 2) to preserve setting, even when autokey turned off */ 00512 #define AUTOKEY_MODE_NORMAL 3 00513 #define AUTOKEY_MODE_EDITKEYS 5 00514 00515 /* Auto-Keying flag 00516 * U.autokey_flag (not strictly used when autokeying only - is also used when keyframing these days) 00517 * note: AUTOKEY_FLAG_* is used with a macro, search for lines like IS_AUTOKEY_FLAG(INSERTAVAIL) 00518 */ 00519 #define AUTOKEY_FLAG_INSERTAVAIL (1<<0) 00520 #define AUTOKEY_FLAG_INSERTNEEDED (1<<1) 00521 #define AUTOKEY_FLAG_AUTOMATKEY (1<<2) 00522 #define AUTOKEY_FLAG_XYZ2RGB (1<<3) 00523 00524 /* toolsettings->autokey_flag */ 00525 #define AUTOKEY_FLAG_ONLYKEYINGSET (1<<6) 00526 #define ANIMRECORD_FLAG_WITHNLA (1<<10) 00527 00528 /* transopts */ 00529 #define USER_TR_TOOLTIPS (1 << 0) 00530 #define USER_TR_IFACE (1 << 1) 00531 /*#define USER_TR_MENUS (1 << 2) deprecated*/ 00532 /*#define USER_TR_FILESELECT (1 << 3) deprecated*/ 00533 /*#define USER_TR_TEXTEDIT (1 << 4) deprecated*/ 00534 #define USER_DOTRANSLATE (1 << 5) 00535 #define USER_USETEXTUREFONT (1 << 6) 00536 /*#define CONVERT_TO_UTF8 (1 << 7) deprecated*/ 00537 00538 /* dupflag */ 00539 #define USER_DUP_MESH (1 << 0) 00540 #define USER_DUP_CURVE (1 << 1) 00541 #define USER_DUP_SURF (1 << 2) 00542 #define USER_DUP_FONT (1 << 3) 00543 #define USER_DUP_MBALL (1 << 4) 00544 #define USER_DUP_LAMP (1 << 5) 00545 #define USER_DUP_IPO (1 << 6) 00546 #define USER_DUP_MAT (1 << 7) 00547 #define USER_DUP_TEX (1 << 8) 00548 #define USER_DUP_ARM (1 << 9) 00549 #define USER_DUP_ACT (1 << 10) 00550 #define USER_DUP_PSYS (1 << 11) 00551 00552 /* gameflags */ 00553 // #define USER_DEPRECATED_FLAG 1 00554 // #define USER_DISABLE_SOUND 2 deprecated, don't use without checking for 00555 // backwards compatibilty in do_versions! 00556 #define USER_DISABLE_MIPMAP 4 00557 #define USER_DISABLE_VBO 8 00558 #define USER_DISABLE_AA 16 00559 00560 /* wm draw method */ 00561 #define USER_DRAW_TRIPLE 0 00562 #define USER_DRAW_OVERLAP 1 00563 #define USER_DRAW_FULL 2 00564 #define USER_DRAW_AUTOMATIC 3 00565 #define USER_DRAW_OVERLAP_FLIP 4 00566 00567 /* text draw options*/ 00568 #define USER_TEXT_DISABLE_AA (1 << 0) 00569 00570 /* tw_flag (transform widget) */ 00571 00572 /* gp_settings (Grease Pencil Settings) */ 00573 #define GP_PAINT_DOSMOOTH (1<<0) 00574 #define GP_PAINT_DOSIMPLIFY (1<<1) 00575 00576 /* color picker types */ 00577 #define USER_CP_CIRCLE 0 00578 #define USER_CP_SQUARE_SV 1 00579 #define USER_CP_SQUARE_HS 2 00580 #define USER_CP_SQUARE_HV 3 00581 00582 /* timecode display styles */ 00583 /* as little info as is necessary to show relevant info 00584 * with '+' to denote the frames 00585 * i.e. HH:MM:SS+FF, MM:SS+FF, SS+FF, or MM:SS 00586 */ 00587 #define USER_TIMECODE_MINIMAL 0 00588 /* reduced SMPTE - (HH:)MM:SS:FF */ 00589 #define USER_TIMECODE_SMPTE_MSF 1 00590 /* full SMPTE - HH:MM:SS:FF */ 00591 #define USER_TIMECODE_SMPTE_FULL 2 00592 /* milliseconds for sub-frames - HH:MM:SS.sss */ 00593 #define USER_TIMECODE_MILLISECONDS 3 00594 /* seconds only */ 00595 #define USER_TIMECODE_SECONDS_ONLY 4 00596 00597 /* theme drawtypes */ 00598 #define TH_MINIMAL 0 00599 #define TH_ROUNDSHADED 1 00600 #define TH_ROUNDED 2 00601 #define TH_OLDSKOOL 3 00602 #define TH_SHADED 4 00603 00604 /* ndof_flag (3D mouse options) */ 00605 #define NDOF_SHOW_GUIDE (1 << 0) 00606 #define NDOF_FLY_HELICOPTER (1 << 1) 00607 #define NDOF_LOCK_HORIZON (1 << 2) 00608 /* the following might not need to be saved between sessions, 00609 * but they do need to live somewhere accessible... */ 00610 #define NDOF_SHOULD_PAN (1 << 3) 00611 #define NDOF_SHOULD_ZOOM (1 << 4) 00612 #define NDOF_SHOULD_ROTATE (1 << 5) 00613 /* orbit navigation modes 00614 * only two options, so it's sort of a hyrbrid bool/enum 00615 * if ((U.ndof_flag & NDOF_ORBIT_MODE) == NDOF_OM_OBJECT)... */ 00616 /* 00617 #define NDOF_ORBIT_MODE (1 << 6) 00618 #define NDOF_OM_TARGETCAMERA 0 00619 #define NDOF_OM_OBJECT NDOF_ORBIT_MODE 00620 */ 00621 /* actually... users probably don't care about what the mode 00622 * is called, just that it feels right */ 00623 /* zoom is up/down if this flag is set (otherwise forward/backward) */ 00624 #define NDOF_ZOOM_UPDOWN (1 << 7) 00625 #define NDOF_ZOOM_INVERT (1 << 8) 00626 #define NDOF_ROTATE_INVERT_AXIS (1 << 9) 00627 #define NDOF_TILT_INVERT_AXIS (1 << 10) 00628 #define NDOF_ROLL_INVERT_AXIS (1 << 11) 00629 #define NDOF_PANX_INVERT_AXIS (1 << 12) 00630 #define NDOF_PANY_INVERT_AXIS (1 << 13) 00631 #define NDOF_PANZ_INVERT_AXIS (1 << 14) 00632 00633 /* compute_device_type */ 00634 #define USER_COMPUTE_DEVICE_NONE 0 00635 #define USER_COMPUTE_DEVICE_OPENCL 1 00636 #define USER_COMPUTE_DEVICE_CUDA 2 00637 00638 #ifdef __cplusplus 00639 } 00640 #endif 00641 00642 #endif