diff options
author | Jean-Luc Peurière <jlp@nerim.net> | 2008-03-14 02:54:02 +0300 |
---|---|---|
committer | Jean-Luc Peurière <jlp@nerim.net> | 2008-03-14 02:54:02 +0300 |
commit | a68a7f42b02ad0260220d94f36ab61c772db071a (patch) | |
tree | 620b763cd24fbfc1259f00ccb005217914af0c6f /source/blender/include | |
parent | 526d0bec4722900a86d81ff0f5d71504b2b4ad8c (diff) | |
parent | 15215493bf9d1d08e650109e6eb6189fc76e289e (diff) |
resolved conflict state with HEAD r14096
blenderbuttons still bad
not let this compile
Diffstat (limited to 'source/blender/include')
68 files changed, 1491 insertions, 420 deletions
diff --git a/source/blender/include/BDR_drawaction.h b/source/blender/include/BDR_drawaction.h index fdbd710c59f..72b3de1e54d 100644 --- a/source/blender/include/BDR_drawaction.h +++ b/source/blender/include/BDR_drawaction.h @@ -38,9 +38,23 @@ struct Ipo; struct IpoCurve; struct gla2DDrawInfo; struct bAction; +struct bActionGroup; struct Object; struct ListBase; +/* ****************************** Base Structs ****************************** */ + +/* Keyframe Column Struct */ +typedef struct ActKeyColumn { + struct ActKeyColumn *next, *prev; + short sel, handle_type; + float cfra; + + /* only while drawing - used to determine if long-keyframe needs to be drawn */ + short modified; + short totcurve; +} ActKeyColumn; + /* 'Long Keyframe' Struct */ typedef struct ActKeyBlock { struct ActKeyBlock *next, *prev; @@ -53,21 +67,31 @@ typedef struct ActKeyBlock { short totcurve; } ActKeyBlock; -/*Action Generics */ + +/* Inclusion-Range Limiting Struct (optional) */ +typedef struct ActKeysInc { + struct Object *ob; /* if present, used to find action-scaled time */ + float start, end; /* frames (global-time) to only consider keys between */ +} ActKeysInc; + +/* ******************************* Methods ****************************** */ + +/* Action Generics */ void draw_cfra_action(void); -int count_action_levels (struct bAction *act); /* Channel Drawing */ void draw_icu_channel(struct gla2DDrawInfo *di, struct IpoCurve *icu, float ypos); void draw_ipo_channel(struct gla2DDrawInfo *di, struct Ipo *ipo, float ypos); -void draw_action_channel(struct gla2DDrawInfo *di, bAction *act, float ypos); -void draw_object_channel(struct gla2DDrawInfo *di, Object *ob, float ypos); +void draw_agroup_channel(struct gla2DDrawInfo *di, struct bActionGroup *agrp, float ypos); +void draw_action_channel(struct gla2DDrawInfo *di, struct bAction *act, float ypos); +void draw_object_channel(struct gla2DDrawInfo *di, struct Object *ob, float ypos); /* Keydata Generation */ -void icu_to_keylist(struct IpoCurve *icu, ListBase *keys, ListBase *blocks); -int ipo_to_keylist(struct Ipo *ipo, ListBase *keys, ListBase *blocks); -int action_to_keylist(bAction *act, ListBase *keys, ListBase *blocks); -int ob_to_keylist(Object *ob, ListBase *keys, ListBase *blocks); +void icu_to_keylist(struct IpoCurve *icu, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void ipo_to_keylist(struct Ipo *ipo, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void agroup_to_keylist(struct bActionGroup *agrp, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void action_to_keylist(struct bAction *act, ListBase *keys, ListBase *blocks, ActKeysInc *aki); +void ob_to_keylist(struct Object *ob, ListBase *keys, ListBase *blocks, ActKeysInc *aki); #endif /* BDR_DRAWACTION_H */ diff --git a/source/blender/include/BDR_drawmesh.h b/source/blender/include/BDR_drawmesh.h index 60c87308e20..998cadc18a3 100644 --- a/source/blender/include/BDR_drawmesh.h +++ b/source/blender/include/BDR_drawmesh.h @@ -36,6 +36,7 @@ struct Image; struct MTFace; struct Object; +struct DerivedMesh; struct Mesh; struct EdgeHash; @@ -75,7 +76,7 @@ int set_tpage(struct MTFace *tface); void texpaint_enable_mipmap(void); void texpaint_disable_mipmap(void); -void draw_tface_mesh(struct Object *ob, struct Mesh *me, int dt); +void draw_mesh_textured(struct Object *ob, struct DerivedMesh *dm, int facesel); struct EdgeHash *get_tface_mesh_marked_edge_info(struct Mesh *me); void init_realtime_GL(void); diff --git a/source/blender/include/BDR_editcurve.h b/source/blender/include/BDR_editcurve.h index a6319f2333c..70282aeb0c8 100644 --- a/source/blender/include/BDR_editcurve.h +++ b/source/blender/include/BDR_editcurve.h @@ -78,11 +78,13 @@ void extrude_nurb(void); void makecyclicNurb(void); void selectconnected_nurb(void); void selectrow_nurb(void); -void selectends_nurb(int selFirst); +void selectend_nurb(short selfirst, short doswap, short selstatus); void select_more_nurb(void); void select_less_nurb(void); void select_next_nurb(void); void select_prev_nurb(void); +void select_random_nurb(void); +void select_every_nth_nurb(void); void adduplicate_nurb(void); void delNurb(void); void nurb_set_smooth(short event); @@ -94,8 +96,10 @@ void add_primitiveNurb(int type); void clear_tilt(void); void clever_numbuts_curve(void); int bezt_compare (const void *e1, const void *e2); +void setweightNurb( void ); +void setradiusNurb( void ); +void smoothradiusNurb( void ); extern void undo_push_curve(char *name); #endif /* BDR_EDITCURVE_H */ - diff --git a/source/blender/include/BDR_editface.h b/source/blender/include/BDR_editface.h index 31971da292b..72b0e7352da 100644 --- a/source/blender/include/BDR_editface.h +++ b/source/blender/include/BDR_editface.h @@ -34,10 +34,11 @@ #define BDR_EDITFACE_H struct MTFace; +struct EditFace; struct Mesh; struct MCol; -struct MTFace *get_active_tface(struct MCol **mcol); +struct MTFace *get_active_mtface(struct EditFace **efa, struct MCol **mcol, short sloppy); void calculate_uv_map(unsigned short mapmode); void default_uv(float uv[][2], float size); void make_tfaces(struct Mesh *me); @@ -52,7 +53,6 @@ int minmax_tface(float *min, float *max); void face_select(void); void face_borderselect(void); void uv_autocalc_tface(void); -void set_faceselect(void); void set_texturepaint(void); void get_same_uv(void); void seam_mark_clear_tface(short mode); diff --git a/source/blender/include/BDR_editmball.h b/source/blender/include/BDR_editmball.h index c3e9eaaf66c..e2b529acaf8 100644 --- a/source/blender/include/BDR_editmball.h +++ b/source/blender/include/BDR_editmball.h @@ -42,6 +42,8 @@ void load_editMball(void); */ void add_primitiveMball(int); void deselectall_mball(void); +void selectinverse_mball(void); +void selectrandom_mball(void); void mouse_mball(void); void adduplicate_mball(void); void delete_mball(void); diff --git a/source/blender/include/BDR_editobject.h b/source/blender/include/BDR_editobject.h index 2a96a8d65cb..3bc725f5662 100644 --- a/source/blender/include/BDR_editobject.h +++ b/source/blender/include/BDR_editobject.h @@ -65,6 +65,8 @@ void exit_editmode(int flag); void check_editmode(int type); void enter_editmode(int wc); +void exit_paint_modes(void); + void docenter(int centermode); void docenter_new(void); void docenter_cursor(void); @@ -77,6 +79,8 @@ void link_to_scene(unsigned short nr); void make_links_menu(void); void make_links(short event); void make_duplilist_real(void); +void apply_objects_locrot(void); +void apply_objects_visual_tx(void); void apply_object(void); /* old transform */ @@ -93,6 +97,7 @@ void single_object_users(int flag); void new_id_matar(struct Material **matar, int totcol); void single_obdata_users(int flag); void single_mat_users(int flag); +void single_ipo_users(int flag); void do_single_tex_user(struct Tex **from); void single_tex_users_expand(void); void single_mat_users_expand(void); @@ -107,16 +112,20 @@ void set_ob_ipoflags(void); void select_select_keys(void); int vergbaseco(const void *a1, const void *a2); void auto_timeoffs(void); +void ofs_timeoffs(void); +void rand_timeoffs(void); void texspace_edit(void); void flip_subdivison(int); void mirrormenu(void); void hookmenu(void); /* object mode hook menu */ -void add_hook(void); +void add_hook_menu(void); +void add_hook(int mode); void hook_select(struct HookModifierData *hmd); int hook_getIndexArray(int *tot, int **indexar, char *name, float *cent_r); +int object_is_libdata(struct Object *ob); int object_data_is_libdata(struct Object *ob); void hide_objects(int select); void show_objects(void); diff --git a/source/blender/include/BDR_sculptmode.h b/source/blender/include/BDR_sculptmode.h index 0e80a7f0185..e36b8674612 100644 --- a/source/blender/include/BDR_sculptmode.h +++ b/source/blender/include/BDR_sculptmode.h @@ -30,12 +30,12 @@ #ifndef BDR_SCULPTMODE_H #define BDR_SCULPTMODE_H -/* For bglMats */ -#include "BIF_glutil.h" - -#include "transform.h" +#include "DNA_listBase.h" +#include "DNA_vec_types.h" +#include "BKE_sculpt.h" struct uiBlock; +struct BrushAction; struct BrushData; struct IndexNode; struct KeyBlock; @@ -45,77 +45,43 @@ struct PartialVisibility; struct Scene; struct ScrArea; struct SculptData; +struct SculptStroke; -typedef enum PropsetMode { - PropsetNone = 0, - PropsetSize, - PropsetStrength, - PropsetTexRot -} PropsetMode; -typedef struct PropsetData { - PropsetMode mode; - unsigned int tex; - short origloc[2]; - float *texdata; - - short origsize; - char origstrength; - float origtexrot; - - NumInput num; -} PropsetData; - -typedef struct SculptSession { - bglMats mats; - - /* An array of lists; array is sized as - large as the number of verts in the mesh, - the list for each vert contains the index - for all the faces that use that vertex */ - struct ListBase *vertex_users; - struct IndexNode *vertex_users_mem; - int vertex_users_size; - - /* Used to cache the render of the active texture */ - unsigned int texcache_w, texcache_h, *texcache; - - PropsetData *propset; - - /* For rotating around a pivot point */ - vec3f pivot; -} SculptSession; - -SculptSession *sculpt_session(void); +struct SculptSession *sculpt_session(void); struct SculptData *sculpt_data(void); /* Memory */ -void sculptmode_init(struct Scene *); -void sculptmode_free_all(struct Scene *); void sculptmode_correct_state(void); /* Interface */ void sculptmode_draw_interface_tools(struct uiBlock *block,unsigned short cx, unsigned short cy); +void sculptmode_draw_interface_brush(struct uiBlock *block,unsigned short cx, unsigned short cy); void sculptmode_draw_interface_textures(struct uiBlock *block,unsigned short cx, unsigned short cy); void sculptmode_rem_tex(void*,void*); -void sculptmode_propset_init(PropsetMode mode); -void sculptmode_propset(const unsigned short event); void sculptmode_selectbrush_menu(void); void sculptmode_draw_mesh(int); void sculpt_paint_brush(char clear); +void sculpt_stroke_draw(); +void sculpt_radialcontrol_start(int mode); struct BrushData *sculptmode_brush(void); -float tex_angle(void); +void do_symmetrical_brush_actions(struct BrushAction *a, short *, short *); void sculptmode_update_tex(void); char sculpt_modifiers_active(struct Object *ob); void sculpt(void); void set_sculptmode(void); +/* Stroke */ +void sculpt_stroke_new(const int max); +void sculpt_stroke_free(); +void sculpt_stroke_add_point(const short x, const short y); +void sculpt_stroke_apply(struct BrushAction *); +void sculpt_stroke_apply_all(struct BrushAction *); +void sculpt_stroke_draw(); + + /* Partial Mesh Visibility */ -struct PartialVisibility *sculptmode_copy_pmv(struct PartialVisibility *); -void sculptmode_pmv_free(struct PartialVisibility *); -void sculptmode_revert_pmv(struct Mesh *me); -void sculptmode_pmv_off(struct Mesh *me); void sculptmode_pmv(int mode); #endif diff --git a/source/blender/include/BDR_unwrapper.h b/source/blender/include/BDR_unwrapper.h index 6a2b54409c3..a6ff1b614a5 100644 --- a/source/blender/include/BDR_unwrapper.h +++ b/source/blender/include/BDR_unwrapper.h @@ -41,6 +41,7 @@ void select_linked_tfaces_with_seams(int mode, struct Mesh *me, unsigned int ind void unwrap_lscm(short seamcut); /* unwrap faces selected in 3d view */ void minimize_stretch_tface_uv(void); /* optimize faces selected in uv editor */ void pack_charts_tface_uv(void); +void average_charts_tface_uv(void); /* for live mode: no undo pushes, caching for quicky re-unwrap */ void unwrap_lscm_live_begin(void); diff --git a/source/blender/include/BIF_butspace.h b/source/blender/include/BIF_butspace.h index f87e9797cb3..9d5e1961178 100644 --- a/source/blender/include/BIF_butspace.h +++ b/source/blender/include/BIF_butspace.h @@ -83,11 +83,13 @@ extern void validate_editbonebutton_cb(void *bonev, void *namev); #define TAB_OBJECT_OBJECT 0 #define TAB_OBJECT_PHYSICS 1 +#define TAB_OBJECT_PARTICLE 2 #define TAB_SCENE_RENDER 0 -#define TAB_SCENE_WORLD 1 +#define TAB_SCENE_WORLD 1 #define TAB_SCENE_ANIM 2 #define TAB_SCENE_SOUND 3 +#define TAB_SCENE_SEQUENCER 4 /* buts->scaflag */ @@ -102,6 +104,38 @@ extern void validate_editbonebutton_cb(void *bonev, void *namev); #define BUTS_ACT_LINK 256 +/* buttons grid */ +#define PANELX 320 +#define PANELY 0 +#define PANELW 318 +#define PANELH 204 + +#define BUTW1 300 +#define BUTW2 145 +#define BUTW3 93 +#define BUTW4 67 +#define ICONBUTW 20 +#define BUTH 22 + +#define YSPACE 6 +#define XSPACE 10 +#define PANEL_YMAX 210 +#define PANEL_XMAX 310 + +#define X1CLM1 10 + +#define X2CLM1 X1CLM1 +#define X2CLM2 165 + +#define X3CLM1 X1CLM1 +#define X3CLM2 113 +#define X3CLM3 217 + +#define X4CLM1 X1CLM1 +#define X4CLM2 77 +#define X4CLM3 165 +#define X4CLM4 232 + #endif diff --git a/source/blender/include/BIF_drawimage.h b/source/blender/include/BIF_drawimage.h index 72562b76beb..5ad1978a6e2 100644 --- a/source/blender/include/BIF_drawimage.h +++ b/source/blender/include/BIF_drawimage.h @@ -39,12 +39,16 @@ struct Render; struct Image; struct ImBuf; struct uiBlock; +struct MTFace; void do_imagebuts(unsigned short event); void calc_image_view(struct SpaceImage *sima, char mode); void drawimagespace(struct ScrArea *sa, void *spacedata); -void draw_tfaces(void); -void image_changed(struct SpaceImage *sima, int dotile); +void image_changed(struct SpaceImage *sima, struct Image *image); +int draw_uvs_face_check(void); +void tface_center(struct MTFace *tf, float cent[2], void * isquad); +void draw_uvs_sima(void); +void image_set_tile(struct SpaceImage *sima, int dotile); void image_home(void); void image_viewmove(int mode); void image_viewzoom(unsigned short event, int invert); @@ -59,11 +63,10 @@ void imagespace_composite_flipbook(struct ScrArea *sa); void imagewindow_render_callbacks(struct Render *re); void imagewindow_toggle_render(void); -void imagewindow_swap_render_rects(void); -void imagewin_store_spare(void); struct ImBuf *imagewindow_get_ibuf(struct SpaceImage *sima); void image_editvertex_buts(struct uiBlock *block); +void image_editcursor_buts(struct uiBlock *block); #endif diff --git a/source/blender/include/BIF_drawseq.h b/source/blender/include/BIF_drawseq.h index 986044d9c7e..4571267a09c 100644 --- a/source/blender/include/BIF_drawseq.h +++ b/source/blender/include/BIF_drawseq.h @@ -36,6 +36,7 @@ struct ScrArea; struct Sequence; +void drawprefetchseqspace(struct ScrArea *sa, void *spacedata); void drawseqspace(struct ScrArea *sa, void *spacedata); void set_special_seq_update(int val); diff --git a/source/blender/include/BIF_drawtext.h b/source/blender/include/BIF_drawtext.h index a63e2bb264d..6950f3ba215 100644 --- a/source/blender/include/BIF_drawtext.h +++ b/source/blender/include/BIF_drawtext.h @@ -47,7 +47,7 @@ void add_text_fs(char *file); void free_txt_data(void); void pop_space_text(struct SpaceText *st); -void get_format_string(void); +void get_format_string(struct SpaceText *st); void do_brackets(void); #endif diff --git a/source/blender/include/BIF_editaction.h b/source/blender/include/BIF_editaction.h index 6e180418cd8..7fb2a6b2dde 100644 --- a/source/blender/include/BIF_editaction.h +++ b/source/blender/include/BIF_editaction.h @@ -25,7 +25,7 @@ * * The Original Code is: all of this file. * - * Contributor(s): none yet. + * Contributor(s): 2007, Joshua Leung, Action Editor Recode * * ***** END GPL/BL DUAL LICENSE BLOCK ***** */ @@ -33,32 +33,32 @@ #ifndef BIF_EDITACTION_H #define BIF_EDITACTION_H -#define SET_IPO_POPUP 0 -#define SET_IPO_CONSTANT 1 -#define SET_IPO_LINEAR 2 -#define SET_IPO_BEZIER 3 - -#define SET_EXTEND_POPUP 0 -#define SET_EXTEND_CONSTANT 1 -#define SET_EXTEND_EXTRAPOLATION 2 -#define SET_EXTEND_CYCLIC 3 -#define SET_EXTEND_CYCLICEXTRAPOLATION 4 - +/* some interface related sizes*/ #define CHANNELHEIGHT 16 #define CHANNELSKIP 2 -#define NAMEWIDTH 164 -#define SLIDERWIDTH 125 +#define NAMEWIDTH 164 +#define SLIDERWIDTH 125 #define ACTWIDTH (G.saction->actwidth) /* Some types for easier type-testing */ -#define ACTTYPE_NONE 0 -#define ACTTYPE_ACHAN 1 -#define ACTTYPE_CONCHAN 2 -#define ACTTYPE_ICU 3 -#define ACTTYPE_FILLIPO 4 -#define ACTTYPE_FILLCON 5 +enum { + ACTTYPE_NONE= 0, + ACTTYPE_GROUP, + ACTTYPE_ACHAN, + ACTTYPE_CONCHAN, + ACTTYPE_CONCHAN2, + ACTTYPE_ICU, + ACTTYPE_FILLIPO, + ACTTYPE_FILLCON, + ACTTYPE_IPO, + ACTTYPE_SHAPEKEY +}; /* Macros for easier/more consistant state testing */ +#define EDITABLE_AGRP(agrp) ((agrp->flag & AGRP_PROTECTED)==0) +#define EXPANDED_AGRP(agrp) (agrp->flag & AGRP_EXPANDED) +#define SEL_AGRP(agrp) ((agrp->flag & AGRP_SELECTED) || (agrp->flag & AGRP_ACTIVE)) + #define VISIBLE_ACHAN(achan) ((achan->flag & ACHAN_HIDDEN)==0) #define EDITABLE_ACHAN(achan) ((VISIBLE_ACHAN(achan)) && ((achan->flag & ACHAN_PROTECTED)==0)) #define EXPANDED_ACHAN(achan) ((VISIBLE_ACHAN(achan)) && (achan->flag & ACHAN_EXPANDED)) @@ -72,75 +72,127 @@ #define EDITABLE_ICU(icu) ((icu->flag & IPO_PROTECT)==0) #define SEL_ICU(icu) (icu->flag & IPO_SELECT) +#define NLA_ACTION_SCALED (G.saction->pin==0 && OBACT && OBACT->action) +#define NLA_IPO_SCALED (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) + +/* constants for setting ipo-interpolation type */ +enum { + SET_IPO_MENU = -1, + SET_IPO_POPUP = 0, + + SET_IPO_CONSTANT, + SET_IPO_LINEAR, + SET_IPO_BEZIER, +}; + +/* constants for setting ipo-extrapolation type */ +enum { + SET_EXTEND_MENU = 9, + SET_EXTEND_POPUP = 10, + + SET_EXTEND_CONSTANT, + SET_EXTEND_EXTRAPOLATION, + SET_EXTEND_CYCLIC, + SET_EXTEND_CYCLICEXTRAPOLATION +}; + +/* constants for channel rearranging */ +/* WARNING: don't change exising ones without modifying rearrange func accordingly */ +enum { + REARRANGE_ACTCHAN_TOP= -2, + REARRANGE_ACTCHAN_UP= -1, + REARRANGE_ACTCHAN_DOWN= 1, + REARRANGE_ACTCHAN_BOTTOM= 2 +}; + + struct bAction; struct bActionChannel; +struct bActionGroup; +struct bPose; struct bPoseChannel; struct Object; struct Ipo; struct BWinEvent; struct Key; struct ListBase; +struct TimeMarker; /* Key operations */ -void delete_meshchannel_keys(struct Key *key); -void delete_actionchannel_keys(void); -void duplicate_meshchannel_keys(struct Key *key); -void duplicate_actionchannel_keys(void); -void transform_actionchannel_keys(int mode, int dummy); -void transform_meshchannel_keys(char mode, struct Key *key); -void snap_keys_to_frame(int snap_mode); -void mirror_action_keys(short mirror_mode); -void clean_shapekeys(struct Key *key); -void clean_actionchannels(struct bAction *act); +void transform_action_keys(int mode, int dummy); +void duplicate_action_keys(void); +void snap_cfra_action(void); +void snap_action_keys(short mode); +void mirror_action_keys(short mode); void insertkey_action(void); - -/* Marker Operations */ -void column_select_shapekeys(struct Key *key, int mode); -void column_select_actionkeys(struct bAction *act, int mode); +void delete_action_keys(void); +void delete_action_channels(void); +void clean_action(void); +void sample_action_keys(void); + +/* Column/Channel Key select */ +void column_select_action_keys(int mode); +void selectall_action_keys(short mval[], short mode, short selectmode); void markers_selectkeys_between(void); +void nextprev_action_keyframe(short dir); + +/* Action Data Copying */ +void free_actcopybuf(void); +void copy_actdata(void); +void paste_actdata(void); + +/* Group/Channel Operations */ +struct bActionGroup *get_active_actiongroup(struct bAction *act); +void set_active_actiongroup(struct bAction *act, struct bActionGroup *agrp, short select); +void verify_pchan2achan_grouping(struct bAction *act, struct bPose *pose, char name[]); +void action_groups_group(short add_group); +void action_groups_ungroup(void); -/* channel/strip operations */ -void up_sel_action(void); -void down_sel_action(void); -void top_sel_action(void); -void bottom_sel_action(void); +/* Channel/Strip Operations */ +void rearrange_action_channels(short mode); -/* Handles */ -void sethandles_meshchannel_keys(int code, struct Key *key); -void sethandles_actionchannel_keys(int code); +void expand_all_action(void); +void expand_obscuregroups_action(void); +void openclose_level_action(short mode); +void setflag_action_channels(short mode); -/* Ipo type */ -void set_ipotype_actionchannels(int ipotype); -void set_extendtype_actionchannels(int extendtype); +/* IPO/Handle Types */ +void sethandles_action_keys(int code); +void action_set_ipo_flags(short mode, short event); /* Select */ -void borderselect_mesh(struct Key *key); void borderselect_action(void); -void deselect_actionchannel_keys(struct bAction *act, int test, int sel); -void deselect_actionchannels (struct bAction *act, int test); -void deselect_meshchannel_keys (struct Key *key, int test, int sel); +void deselect_action_keys(short test, short sel); +void deselect_action_channels(short mode); +void deselect_actionchannels(struct bAction *act, short mode); int select_channel(struct bAction *act, struct bActionChannel *achan, int selectmode); -void select_actionchannel_by_name (struct bAction *act, char *name, int select); +void select_actionchannel_by_name(struct bAction *act, char *name, int select); +void selectkeys_leftright (short leftright, short select_mode); -/* */ +/* Action Markers */ +void action_set_activemarker(struct bAction *act, struct TimeMarker *active, short deselect); +void action_add_localmarker(struct bAction *act, int frame); +void action_rename_localmarker(struct bAction *act); +void action_remove_localmarkers(struct bAction *act); + +/* ShapeKey stuff */ struct Key *get_action_mesh_key(void); int get_nearest_key_num(struct Key *key, short *mval, float *x); + void *get_nearest_act_channel(short mval[], short *ret_type); /* Action */ -struct bActionChannel* get_hilighted_action_channel(struct bAction* action); +struct bActionChannel *get_hilighted_action_channel(struct bAction* action); struct bAction *add_empty_action(char *name); - -void winqreadactionspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt); - -/* contextual get action */ struct bAction *ob_get_action(struct Object *ob); +void actdata_filter(ListBase *act_data, int filter_mode, void *data, short datatype); +void *get_action_context(short *datatype); + void remake_action_ipos(struct bAction *act); -/* this needs review badly! (ton) */ -struct bAction *bake_action_with_client (struct bAction *act, struct Object *arm, float tolerance); -void world2bonespace(float boneSpaceMat[][4], float worldSpace[][4], float restPos[][4], float armPos[][4]); +/* event handling */ +void winqreadactionspace(struct ScrArea *sa, void *spacedata, struct BWinEvent *evt); #endif diff --git a/source/blender/include/BIF_editarmature.h b/source/blender/include/BIF_editarmature.h index b8ae90b7cfa..935b93c8626 100644 --- a/source/blender/include/BIF_editarmature.h +++ b/source/blender/include/BIF_editarmature.h @@ -84,8 +84,11 @@ void delete_armature(void); void deselectall_armature(int toggle, int doundo); void deselectall_posearmature (struct Object *ob, int test, int doundo); int draw_armature(struct Base *base, int dt); + void extrude_armature(int forked); -void subdivide_armature(void); +void subdivide_armature(int numcuts); +void fill_bones_armature(void); +void merge_armature(void); void free_editArmature(void); @@ -101,26 +104,32 @@ void make_trans_bones (char mode); int do_pose_selectbuffer(struct Base *base, unsigned int *buffer, short hits); +void generateSkeleton(void); + void mouse_armature(void); void remake_editArmature(void); void selectconnected_armature(void); void selectconnected_posearmature(void); void select_bone_parent(void); -void unique_editbone_name (struct ListBase *ebones, char* name); +void setflag_armature(short mode); +void unique_editbone_name (struct ListBase *ebones, char *name); -void auto_align_armature(void); -void create_vgroups_from_armature(Object *ob, Object *par); +void auto_align_armature(short mode); + +void create_vgroups_from_armature(struct Object *ob, struct Object *par); +void add_verts_to_dgroups(struct Object *ob, struct Object *par, int heat, int mirror); void hide_selected_pose_bones(void); void hide_unselected_pose_bones(void); void show_all_pose_bones(void); -int bone_looper(Object *ob, struct Bone *bone, void *data, - int (*bone_func)(Object *, struct Bone *, void *)); +int bone_looper(struct Object *ob, struct Bone *bone, void *data, + int (*bone_func)(struct Object *, struct Bone *, void *)); void undo_push_armature(char *name); void armature_bone_rename(struct bArmature *arm, char *oldname, char *newname); void armature_flip_names(void); +void armature_autoside_names(short axis); EditBone *armature_bone_get_mirrored(EditBone *ebo); void transform_armature_mirror_update(void); @@ -137,3 +146,4 @@ void show_all_armature_bones(void); #endif + diff --git a/source/blender/include/BIF_editconstraint.h b/source/blender/include/BIF_editconstraint.h index db55bc5c7d7..81e2356e6cb 100644 --- a/source/blender/include/BIF_editconstraint.h +++ b/source/blender/include/BIF_editconstraint.h @@ -38,25 +38,30 @@ struct ListBase; struct Object; struct bConstraint; struct bConstraintChannel; +struct Text; -struct bConstraint *add_new_constraint(short type); - -void add_constraint_to_object(struct bConstraint *con, struct Object *ob); - +/* generic constraint editing functions */ struct ListBase *get_active_constraints(struct Object *ob); struct bConstraint *get_active_constraint(struct Object *ob); struct ListBase *get_active_constraint_channels (struct Object *ob, int forcevalid); struct bConstraintChannel *get_active_constraint_channel(struct Object *ob); -void object_test_constraints(struct Object *owner); - -void add_constraint(int only_IK); +void add_constraint_to_object(struct bConstraint *con, struct Object *ob); +struct bConstraint *add_new_constraint(short type); +void add_constraint(short only_IK); void ob_clear_constraints(void); +void rename_constraint(struct Object *ob, struct bConstraint *con, char *newname); -char *get_con_subtarget_name(struct bConstraint *con, struct Object *target); +void object_test_constraints(struct Object *owner); -void rename_constraint(struct Object *ob, struct bConstraint *con, char *newname); +/* a few special functions for PyConstraints */ +char *buildmenu_pyconstraints(struct Text *con_text, int *pyconindex); +void validate_pyconstraint_cb(void *arg1, void *arg2); +void update_pyconstraint_cb(void *arg1, void *arg2); +/* two special functions for ChildOf Constriant */ +void childof_const_setinv (void *conv, void *unused); +void childof_const_clearinv(void *conv, void *unused); #endif diff --git a/source/blender/include/BIF_editdeform.h b/source/blender/include/BIF_editdeform.h index 2a8f43c14e7..84deb134be9 100644 --- a/source/blender/include/BIF_editdeform.h +++ b/source/blender/include/BIF_editdeform.h @@ -50,6 +50,7 @@ void del_defgroup (struct Object *ob); void duplicate_defgroup ( struct Object *ob ); void assign_verts_defgroup (void); void remove_verts_defgroup (int allverts); +void remove_verts_defgroups (int allverts); void sel_verts_defgroup (int select); struct MDeformWeight *get_defweight (struct MDeformVert *dv, int defgroup); @@ -61,6 +62,8 @@ void add_vert_to_defgroup (struct Object *ob, struct bDeformGroup *dg, int assignmode); void remove_vert_defgroup (struct Object *ob, struct bDeformGroup *dg, int vertnum); +float get_vert_defgroup (struct Object *ob, struct bDeformGroup *dg, + int vertnum); void create_dverts(ID *id); void vertexgroup_select_by_name(struct Object *ob, char *name); diff --git a/source/blender/include/BIF_editmesh.h b/source/blender/include/BIF_editmesh.h index 931693f0889..42d581ee758 100644 --- a/source/blender/include/BIF_editmesh.h +++ b/source/blender/include/BIF_editmesh.h @@ -35,6 +35,8 @@ #ifndef BIF_EDITMESH_H #define BIF_EDITMESH_H +#include "BKE_mesh.h" + struct EditMesh; struct EditFace; struct EditEdge; @@ -141,7 +143,10 @@ extern void righthandfaces(int select); extern void mouse_mesh(void); extern void deselectall_mesh(void); -extern void selectconnected_mesh(int qual); +extern void selectconnected_mesh_all(void); +extern void selectconnected_mesh(void); +extern void selectconnected_delimit_mesh(void); +extern void selectconnected_delimit_mesh_all(void); extern void selectswap_mesh(void); extern void hide_mesh(int swap); @@ -169,7 +174,9 @@ extern void selectrandom_mesh(void); extern void editmesh_select_by_material(int index); extern void editmesh_deselect_by_material(int index); +extern void Vertex_Menu(void); extern void Edge_Menu(void); +extern void Face_Menu(void); extern void select_mesh_group_menu(void); extern void editmesh_mark_seam(int clear); extern void loop_multiselect(int looptype); @@ -199,7 +206,7 @@ extern short sharesFace(struct EditEdge* e1, struct EditEdge* e2); #define SUBDIV_SELECT_LOOPCUT 3 extern void convert_to_triface(int direction); -extern int removedoublesflag(short flag, float limit); +extern int removedoublesflag(short flag, short automerge, float limit); extern void xsortvert_flag(int flag); extern void hashvert_flag(int flag); @@ -216,7 +223,13 @@ extern void join_triangles(void); extern void edge_flip(void); extern void fill_mesh(void); extern void bevel_menu(); +void mesh_set_face_flags(short mode); extern void mesh_set_smooth_faces(short event); +extern void mesh_rotate_uvs(void); +extern void mesh_mirror_uvs(void); +extern void mesh_rotate_colors(void); +extern void mesh_mirror_colors(void); +void mesh_copy_menu(void); void edge_rotate_selected(int dir); int EdgeSlide(short immediate, float imperc); int EdgeLoopDelete(void); @@ -238,4 +251,15 @@ int merge_target( int target, int uvmerge); void pathselect(void); void loop_to_region(void); void region_to_loop(void); + +UvVertMap *make_uv_vert_map_EM(int selected, int do_face_idx_array, float *limit); +UvMapVert *get_uv_map_vert_EM(UvVertMap *vmap, unsigned int v); +void free_uv_vert_map_EM(UvVertMap *vmap); + +int EM_texFaceCheck(void); /* can we edit UV's for this mesh?*/ +int EM_vertColorCheck(void); /* can we edit colors for this mesh?*/ + +void EM_set_actFace(struct EditFace *efa); +struct EditFace * EM_get_actFace(void); + #endif diff --git a/source/blender/include/BIF_editmode_undo.h b/source/blender/include/BIF_editmode_undo.h index b03b4160166..5b445fef17b 100644 --- a/source/blender/include/BIF_editmode_undo.h +++ b/source/blender/include/BIF_editmode_undo.h @@ -39,7 +39,8 @@ extern void undo_editmode_push(char *name, void (*freedata)(void *), // pointer to function freeing data void (*to_editmode)(void *), // data to editmode conversion - void *(*from_editmode)(void)); // editmode to data conversion + void *(*from_editmode)(void), // editmode to data conversion + int (*validate_undo)(void *)); // check if undo data is still valid // Further exported for UI is: diff --git a/source/blender/include/BIF_editparticle.h b/source/blender/include/BIF_editparticle.h new file mode 100644 index 00000000000..6074dcd4fec --- /dev/null +++ b/source/blender/include/BIF_editparticle.h @@ -0,0 +1,98 @@ +/* BIF_editparticle.h + * + * + * $Id: BIF_editparticle.h $ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2007 by Janne Karhu. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ + +#ifndef BIF_EDITPARTICLE_H +#define BIF_EDITPARTICLE_H + +struct Object; +struct ParticleSystem; +struct ParticleEditSettings; +struct RadialControl; + +/* particle edit mode */ +void PE_set_particle_edit(void); +void PE_create_particle_edit(struct Object *ob, struct ParticleSystem *psys); +void PE_free_particle_edit(struct ParticleSystem *psys); + +void PE_change_act(void *ob_v, void *act_v); +int PE_can_edit(struct ParticleSystem *psys); + +/* access */ +struct ParticleSystem *PE_get_current(struct Object *ob); +short PE_get_current_num(struct Object *ob); +int PE_minmax(float *min, float *max); +void PE_get_colors(char sel[4], char nosel[4]); +struct ParticleEditSettings *PE_settings(void); +struct RadialControl **PE_radialcontrol(); + +/* update calls */ +void PE_hide_keys_time(struct ParticleSystem *psys, float cfra); +void PE_update_object(struct Object *ob, int useflag); +void PE_update_selection(struct Object *ob, int useflag); +void PE_recalc_world_cos(struct Object *ob, struct ParticleSystem *psys); + +/* selection tools */ +void PE_select_root(void); +void PE_select_tip(void); +void PE_deselectall(void); +void PE_select_linked(void); +void PE_select_less(void); +void PE_select_more(void); + +void PE_mouse_particles(void); +void PE_borderselect(void); +void PE_selectionCB(short selecting, struct Object *editobj, short *mval, float rad); +void PE_do_lasso_select(short mcords[][2], short moves, short select); + +/* tools */ +void PE_hide(int mode); +void PE_rekey(void); +void PE_subdivide(void); +int PE_brush_particles(void); +void PE_delete_particle(void); +void PE_remove_doubles(void); +void PE_mirror_x(int tagged); +void PE_selectbrush_menu(void); +void PE_remove_doubles(void); +void PE_radialcontrol_start(const int mode); + +/* undo */ +void PE_undo_push(char *str); +void PE_undo_step(int step); +void PE_undo(void); +void PE_redo(void); +void PE_undo_menu(void); + +#endif + diff --git a/source/blender/include/BIF_editseq.h b/source/blender/include/BIF_editseq.h index 3999b4311d4..ff6c7882b76 100644 --- a/source/blender/include/BIF_editseq.h +++ b/source/blender/include/BIF_editseq.h @@ -40,32 +40,74 @@ void add_sequence(int type); void borderselect_seq(void); void boundbox_seq(void); void change_sequence(void); +void reload_sequence(void); void update_seq_ipo_rect(struct Sequence * seq); void update_seq_icu_rects(struct Sequence * seq); struct Sequence* get_last_seq(); +struct Sequence* get_forground_frame_seq( int frame ); void set_last_seq(struct Sequence * seq); void clear_last_seq(); void del_seq(void); void enter_meta(void); void exit_meta(void); +struct Sequence* find_neighboring_sequence(struct Sequence *test, int lr, int sel); +struct Sequence* find_next_prev_sequence(struct Sequence *test, int lr, int sel); struct Sequence* find_nearest_seq(int *hand); int insert_gap(int gap, int cfra); void make_meta(void); +void select_channel_direction(struct Sequence *test,int lr); +void select_more_seq(void); +void select_less_seq(void); void mouse_select_seq(void); void no_gaps(void); void seq_snap(short event); void seq_snap_menu(void); +void seq_mute_sel( int mute ); +void seq_lock_sel(int lock); void set_filter_seq(void); void swap_select_seq(void); void touch_seq_files(void); +void seq_remap_paths(void); void transform_seq(int mode, int context); +void transform_seq_nomarker(int mode, int context); void un_meta(void); void seq_cut(int cutframe); +void seq_separate_images(void); void reassign_inputs_seq_effect(void); +void select_surrounding_handles(struct Sequence *test); +void select_surround_from_last(); +void select_dir_from_last(int lr); +void select_neighbor_from_last(int lr); +void select_linked_seq(int mode); +int test_overlap_seq(struct Sequence *test); +void shuffle_seq(struct Sequence *test); struct Sequence* alloc_sequence(ListBase *lb, int cfra, int machine); /*used from python*/ +int check_single_seq(struct Sequence *seq); + +/* seq funcs for transform + notice the difference between start/end and left/right. + + left and right are the bounds at which the setuence is rendered, +start and end are from the start and fixed length of the sequence. +*/ + +/* sequence transform functions, for internal used */ +int seq_tx_get_start(struct Sequence *seq); +int seq_tx_get_end(struct Sequence *seq); + +int seq_tx_get_final_left(struct Sequence *seq); +int seq_tx_get_final_right(struct Sequence *seq); + +void seq_tx_set_final_left(struct Sequence *seq, int i); +void seq_tx_set_final_right(struct Sequence *seq, int i); + +/* check if one side can be transformed */ +int seq_tx_check_left(struct Sequence *seq); +int seq_tx_check_right(struct Sequence *seq); + +#define SEQ_DEBUG_INFO(seq) printf("seq into '%s' -- len:%i start:%i startstill:%i endstill:%i startofs:%i endofs:%i depth:%i\n",\ + seq->name, seq->len, seq->start, seq->startstill, seq->endstill, seq->startofs, seq->endofs, seq->depth) -/* drawseq.c */ -void do_seqbuttons(short); #endif diff --git a/source/blender/include/BIF_editsima.h b/source/blender/include/BIF_editsima.h index 6a67ebc7009..fe6846e4b36 100644 --- a/source/blender/include/BIF_editsima.h +++ b/source/blender/include/BIF_editsima.h @@ -31,7 +31,12 @@ */ struct Mesh; +struct EditMesh; +struct SpaceImage; +struct EditFace; +struct MTFace; +/* id can be from 0 to 3 */ #define TF_PIN_MASK(id) (TF_PIN1 << id) #define TF_SEL_MASK(id) (TF_SEL1 << id) @@ -45,27 +50,34 @@ int is_uv_tface_editing_allowed_silent(void); void get_connected_limit_tface_uv(float *limit); int minmax_tface_uv(float *min, float *max); +int cent_tface_uv(float *cent, int mode); void transform_width_height_tface_uv(int *width, int *height); void transform_aspect_ratio_tface_uv(float *aspx, float *aspy); +void mouseco_to_cursor_sima(void); void borderselect_sima(short whichuvs); void mouseco_to_curtile(void); void mouse_select_sima(void); +void snap_menu_sima(void); +void aspect_sima(struct SpaceImage *sima, float *x, float *y); + +void select_invert_tface_uv(void); void select_swap_tface_uv(void); void mirrormenu_tface_uv(void); -void mirror_tface_uv(char mirroraxis); void hide_tface_uv(int swap); void reveal_tface_uv(void); -void stitch_uv_tface(int mode); +void stitch_limit_uv_tface(void); +void stitch_vert_uv_tface(void); void unlink_selection(void); +void uvface_setsel__internal(short select); void select_linked_tface_uv(int mode); -void toggle_uv_select(int mode); void pin_tface_uv(int mode); void weld_align_menu_tface_uv(void); void weld_align_tface_uv(char tool); -void be_square_tface_uv(struct Mesh *me); +void be_square_tface_uv(struct EditMesh *em); void select_pinned_tface_uv(void); +void select_edgeloop_tface_uv(struct EditFace *efa, int a, int shift, int *flush); void sima_sample_color(void); @@ -83,3 +95,18 @@ void pack_image_sima(void); /* checks images for forced updates on frame change */ void BIF_image_update_frame(void); + +void find_nearest_uv(struct MTFace **nearesttf, struct EditFace **nearestefa, unsigned int *nearestv, int *nearestuv); + +/* face selection check functions */ + +int simaFaceDraw_Check_nolocal( struct EditFace *efa ); +int simaFaceDraw_Check( struct EditFace *efa, struct MTFace *tf ); + +int simaFaceSel_Check( struct EditFace *efa, struct MTFace *tf ); +void simaFaceSel_Set( struct EditFace *efa, struct MTFace *tf ); +void simaFaceSel_UnSet( struct EditFace *efa, struct MTFace *tf ); + +int simaUVSel_Check( struct EditFace *efa, struct MTFace *tf, int i); +void simaUVSel_Set( struct EditFace *efa, struct MTFace *tf, int i); +void simaUVSel_UnSet( struct EditFace *efa, struct MTFace *tf, int i); diff --git a/source/blender/include/BIF_editsound.h b/source/blender/include/BIF_editsound.h index abeabdc3e06..6e341bfb204 100644 --- a/source/blender/include/BIF_editsound.h +++ b/source/blender/include/BIF_editsound.h @@ -71,7 +71,7 @@ void sound_set_position(void *object, struct hdaudio * sound_open_hdaudio(char * name); struct hdaudio * sound_copy_hdaudio(struct hdaudio * c); -long sound_hdaudio_get_duration(struct hdaudio * hdaudio, int frame_rate); +long sound_hdaudio_get_duration(struct hdaudio * hdaudio, double frame_rate); void sound_hdaudio_extract(struct hdaudio * hdaudio, short * target_buffer, int sample_position /* units of target_rate */, diff --git a/source/blender/include/BIF_editview.h b/source/blender/include/BIF_editview.h index 676bc3bd9f0..d47bd82332f 100644 --- a/source/blender/include/BIF_editview.h +++ b/source/blender/include/BIF_editview.h @@ -39,10 +39,12 @@ struct Camera; struct View3D; void arrows_move_cursor(unsigned short event); +int lasso_inside(short mcords[][2], short moves, short sx, short sy); void borderselect(void); void circle_select(void); void deselectall(void); void selectswap(void); +void selectrandom(void); void selectall_type(short obtype); void selectall_layer(unsigned int layernum); void draw_sel_circle(short *mval, short *mvalo, float rad, float rado, int selecting); diff --git a/source/blender/include/BIF_filelist.h b/source/blender/include/BIF_filelist.h new file mode 100644 index 00000000000..730a41c22e9 --- /dev/null +++ b/source/blender/include/BIF_filelist.h @@ -0,0 +1,86 @@ +/** + * $Id$ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef BIF_FILELIST_H +#define BIF_FILELIST_H + +#ifdef __cplusplus +extern "C" { +#endif + +struct FileList; +struct direntry; +struct BlendHandle; + +struct FileList * BIF_filelist_new(); +void BIF_filelist_init_icons(); +void BIF_filelist_free_icons(); +struct FileList * BIF_filelist_copy(struct FileList* filelist); +int BIF_filelist_find(struct FileList* filelist, char *file); +void BIF_filelist_free(struct FileList* filelist); +void BIF_filelist_freelib(struct FileList* filelist); +void BIF_filelist_sort(struct FileList* filelist, short sort); +int BIF_filelist_numfiles(struct FileList* filelist); +const char * BIF_filelist_dir(struct FileList* filelist); +void BIF_filelist_setdir(struct FileList* filelist, const char *dir); +struct direntry * BIF_filelist_file(struct FileList* filelist, int index); +void BIF_filelist_hidedot(struct FileList* filelist, short hide); +void BIF_filelist_setfilter(struct FileList* filelist, unsigned int filter); +void BIF_filelist_filter(struct FileList* filelist); +void BIF_filelist_swapselect(struct FileList* filelist); +void BIF_filelist_imgsize(struct FileList* filelist, short w, short h); +void BIF_filelist_loadimage(struct FileList* filelist, int index); +struct ImBuf * BIF_filelist_getimage(struct FileList* filelist, int index); + +void BIF_filelist_readdir(struct FileList* filelist); + +int BIF_filelist_empty(struct FileList* filelist); +void BIF_filelist_parent(struct FileList* filelist); +void BIF_filelist_setfiletypes(struct FileList* filelist, short has_quicktime); +int BIF_filelist_islibrary (struct FileList* filelist, char* dir, char* group); +void BIF_filelist_from_main(struct FileList* filelist); +void BIF_filelist_from_library(struct FileList* filelist); +void BIF_filelist_append_library(struct FileList* filelist, char *dir, char* file, short flag, int idcode); +void BIF_filelist_settype(struct FileList* filelist, int type); +short BIF_filelist_gettype(struct FileList* filelist); +void BIF_filelist_setipotype(struct FileList* filelist, short ipotype); +void BIF_filelist_hasfunc(struct FileList* filelist, int has_func); + +struct BlendHandle *BIF_filelist_lib(struct FileList* filelist); +int BIF_groupname_to_code(char *group); /* TODO: where should this go */ + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/source/blender/include/BIF_fsmenu.h b/source/blender/include/BIF_fsmenu.h index b32dee01854..1c5280c14f8 100644 --- a/source/blender/include/BIF_fsmenu.h +++ b/source/blender/include/BIF_fsmenu.h @@ -55,17 +55,20 @@ char* fsmenu_build_menu (void); /** Append a seperator to the FSMenu, inserts always follow the * last seperator. */ -void fsmenu_append_seperator (void); +void fsmenu_append_separator (void); /** Inserts a new fsmenu entry with the given @a path. * Duplicate entries are not added. * @param sorted Should entry be inserted in sorted order? */ -void fsmenu_insert_entry (char *path, int sorted); +void fsmenu_insert_entry (char *path, int sorted, short save); /** Removes the fsmenu entry at the given @a index. */ void fsmenu_remove_entry (int index); + /** saves the 'favourites' to the specified file */ +void fsmenu_write_file(const char *filename); + /** Free's all the memory associated with the fsmenu */ void fsmenu_free (void); diff --git a/source/blender/include/BIF_gl.h b/source/blender/include/BIF_gl.h index 215e88dc002..67d51edc531 100644 --- a/source/blender/include/BIF_gl.h +++ b/source/blender/include/BIF_gl.h @@ -53,11 +53,16 @@ #endif #ifdef __APPLE__ -#include <OpenGL/gl.h> -#include <OpenGL/glu.h> + #include <OpenGL/gl.h> + #include <OpenGL/glu.h> #else -#include <GL/gl.h> -#include <GL/glu.h> + #if defined (__sun) || defined (__sun__) + #include <GL/gl.h> + #include <mesa/glu.h> + #else + #include <GL/gl.h> + #include <GL/glu.h> + #endif #endif /* * these should be phased out. cpack should be replaced in diff --git a/source/blender/include/BIF_imasel.h b/source/blender/include/BIF_imasel.h index d6a1800730b..fb332022ba4 100644 --- a/source/blender/include/BIF_imasel.h +++ b/source/blender/include/BIF_imasel.h @@ -33,28 +33,20 @@ #define BIF_IMASEL_H struct SpaceImaSel; -struct OneSelectableIma; struct ScrArea; -struct ImaDir; +struct ID; -void imadir_parent(struct SpaceImaSel *simasel); -int bitset(int l, int bit); -void free_sel_ima(struct OneSelectableIma *firstima); - -void write_new_pib(struct SpaceImaSel *simasel); -void free_ima_dir(struct ImaDir *firstdir); -void check_for_pib(struct SpaceImaSel *simasel); -void clear_ima_dir(struct SpaceImaSel *simasel); -void check_ima_dir_name(char *dir); -int get_ima_dir(char *dirname, int dtype, int *td, struct ImaDir **first); -void get_next_image(struct SpaceImaSel *simasel); -void get_file_info(struct SpaceImaSel *simasel); -void get_pib_file(struct SpaceImaSel *simasel); -void change_imadir(struct SpaceImaSel *simasel); -void check_imasel_copy(struct SpaceImaSel *simasel); void free_imasel(struct SpaceImaSel *simasel); void clever_numbuts_imasel(void); +void activate_imageselect(int type, char *title, char *file, void (*func)(char *)); +void activate_imageselect_menu(int type, char *title, char *file, char *pupmenu, short *menup, void (*func)(char *)); +void activate_imageselect_args(int type, char *title, char *file, void (*func)(char *, void *, void *), void *arg1, void *arg2); + +void activate_databrowse_imasel(struct ID *id, int idcode, int fromcode, int retval, short *menup, void (*func)(unsigned short)); +/* +void activate_databrowse_imasel_args(struct ID *id, int idcode, int fromcode, short *menup, void (*func)(char *, void *, void *), void *arg1, void *arg2); +*/ #endif diff --git a/source/blender/include/BIF_interface.h b/source/blender/include/BIF_interface.h index ad2c8988343..4fadfe12297 100644 --- a/source/blender/include/BIF_interface.h +++ b/source/blender/include/BIF_interface.h @@ -166,6 +166,7 @@ struct AutoComplete; #define BUT_CURVE (32<<9) #define BUT_TOGDUAL (33<<9) #define ICONTOGN (34<<9) +#define FTPREVIEW (35<<9) #define BUTTYPE (63<<9) @@ -187,7 +188,7 @@ void uiGetMouse(int win, short *adr); void uiComposeLinks(uiBlock *block); void uiSetButLock(int val, char *lockstr); void uiClearButLock(void); -int uiDoBlocks(struct ListBase *lb, int event); +int uiDoBlocks(struct ListBase *lb, int event, int movemouse_quit); void uiSetCurFont(uiBlock *block, int index); void uiDefFont(unsigned int index, void *xl, void *large, void *medium, void *small); void uiFreeBlock(uiBlock *block); diff --git a/source/blender/include/BIF_interface_icons.h b/source/blender/include/BIF_interface_icons.h index c69fa122099..c628d68e9db 100644 --- a/source/blender/include/BIF_interface_icons.h +++ b/source/blender/include/BIF_interface_icons.h @@ -48,6 +48,7 @@ typedef struct IconFile { #define ICON_DEFAULT_HEIGHT 16 +#define PREVIEW_DEFAULT_HEIGHT 96 /* Resizable Icons for Blender @@ -57,6 +58,8 @@ int BIF_icon_get_width(int icon_id); int BIF_icon_get_height(int icon_id); void BIF_icon_draw(float x, float y, int icon_id); +void BIF_icon_draw_preview(float x, float y, int icon_id, int nocreate); + void BIF_icon_draw_aspect(float x, float y, int icon_id, float aspect); void BIF_icon_draw_aspect_blended(float x, float y, int icon_id, float aspect, int shade); void BIF_icons_free(); diff --git a/source/blender/include/BIF_language.h b/source/blender/include/BIF_language.h index 9a6ddfc7fc5..6ed8a8d1574 100644 --- a/source/blender/include/BIF_language.h +++ b/source/blender/include/BIF_language.h @@ -33,6 +33,8 @@ #ifndef BIF_LANGUAGE_H #define BIF_LANGUAGE_H +#include "DNA_vec_types.h" + struct BMF_Font; int read_languagefile(void); /* usiblender.c */ @@ -47,6 +49,7 @@ char *fontsize_pup(void); int BIF_DrawString(struct BMF_Font* font, char *str, int translate); float BIF_GetStringWidth(struct BMF_Font* font, char *str, int translate); +void BIF_GetBoundingBox(struct BMF_Font* font, char* str, int translate, rctf* bbox); void BIF_RasterPos(float x, float y); void BIF_SetScale(float aspect); diff --git a/source/blender/include/BIF_meshlaplacian.h b/source/blender/include/BIF_meshlaplacian.h new file mode 100644 index 00000000000..74e4fef0937 --- /dev/null +++ b/source/blender/include/BIF_meshlaplacian.h @@ -0,0 +1,87 @@ +/** + * $Id$ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + * BIF_meshlaplacian.h: Algorithms using the mesh laplacian. + */ + +#ifndef BIF_MESHLAPLACIAN_H +#define BIF_MESHLAPLACIAN_H + +//#define RIGID_DEFORM + +struct Object; +struct Mesh; +struct bDeformGroup; +struct MeshDeformModifierData; + +#ifdef RIGID_DEFORM +struct EditMesh; +#endif + +/* Laplacian System */ + +struct LaplacianSystem; +typedef struct LaplacianSystem LaplacianSystem; + +LaplacianSystem *laplacian_construct_begin(int totvert, int totface); + +void laplacian_add_vertex(LaplacianSystem *sys, float *co, int pinned); +void laplacian_add_triangle(LaplacianSystem *sys, int v1, int v2, int v3); + +void laplacian_construct_end(LaplacianSystem *sys); +void laplacian_delete(LaplacianSystem *sys); + +void laplacian_begin_solve(LaplacianSystem *sys, int index); +void laplacian_add_right_hand_side(LaplacianSystem *sys, int v, float value); +int laplacian_system_solve(LaplacianSystem *sys); +float laplacian_system_get_solution(int v); + +/* Heat Weighting */ + +void heat_bone_weighting(struct Object *ob, struct Mesh *me, float (*verts)[3], + int numbones, struct bDeformGroup **dgrouplist, + struct bDeformGroup **dgroupflip, float (*root)[3], float (*tip)[3], + int *selected); + +#ifdef RIGID_DEFORM +/* As-Rigid-As-Possible Deformation */ + +void rigid_deform_begin(struct EditMesh *em); +void rigid_deform_iteration(void); +void rigid_deform_end(int cancel); +#endif + +/* Harmonic Coordinates */ + +void harmonic_coordinates_bind(struct MeshDeformModifierData *mmd, + float (*vertexcos)[3], int totvert, float cagemat[][4]); + +#endif + diff --git a/source/blender/include/BIF_meshtools.h b/source/blender/include/BIF_meshtools.h index a08f800d7b6..15782aa8f3c 100644 --- a/source/blender/include/BIF_meshtools.h +++ b/source/blender/include/BIF_meshtools.h @@ -40,11 +40,13 @@ extern int join_mesh(void); extern void sort_faces(void); extern void objects_bake_render_menu(void); -extern void objects_bake_render(short event); +extern void objects_bake_render_ui(short event); +extern void objects_bake_render(short event, char **error_msg); extern long mesh_octree_table(struct Object *ob, float *co, char mode); extern int mesh_get_x_mirror_vert(struct Object *ob, int index); extern struct EditVert *editmesh_get_x_mirror_vert(struct Object *ob, float *co); +extern int *mesh_get_x_mirror_faces(struct Object *ob); #endif diff --git a/source/blender/include/BIF_outliner.h b/source/blender/include/BIF_outliner.h index 34ed7950421..582b2cc1ada 100644 --- a/source/blender/include/BIF_outliner.h +++ b/source/blender/include/BIF_outliner.h @@ -78,6 +78,8 @@ typedef struct TreeElement { #define TSE_LINKED_MAT 22 /* NOTE, is used for light group */ #define TSE_LINKED_LAMP 23 +#define TSE_POSEGRP_BASE 24 +#define TSE_POSEGRP 25 /* outliner search flags */ #define OL_FIND 0 @@ -97,6 +99,9 @@ extern void outliner_show_hierarchy(struct ScrArea *sa); extern void outliner_one_level(struct ScrArea *sa, int add); extern void outliner_select(struct ScrArea *sa); extern void outliner_toggle_selected(struct ScrArea *sa); +extern void outliner_toggle_visibility(struct ScrArea *sa); +extern void outliner_toggle_selectability(struct ScrArea *sa); +extern void outliner_toggle_renderability(struct ScrArea *sa); extern void outliner_del(struct ScrArea *sa); extern void outliner_operation_menu(struct ScrArea *sa); extern void outliner_page_up_down(struct ScrArea *sa, int up); diff --git a/source/blender/include/BIF_poselib.h b/source/blender/include/BIF_poselib.h new file mode 100644 index 00000000000..209c386d2d6 --- /dev/null +++ b/source/blender/include/BIF_poselib.h @@ -0,0 +1,55 @@ +/** + * $Id$ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2007 Blender Foundation + * All rights reserved. + * + * The Original Code is: this is a new part of Blender + * + * Contributor(s): Joshua Leung + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ + +#ifndef BIF_POSELIB_H +#define BIF_POSELIB_H + +struct Object; +struct bAction; +struct TimeMarker; + +char *poselib_build_poses_menu(struct bAction *act, char title[]); +int poselib_get_free_index(struct bAction *act); +struct TimeMarker *poselib_get_active_pose(struct bAction *act); + +struct bAction *poselib_init_new(struct Object *ob); +struct bAction *poselib_validate(struct Object *ob); + +void poselib_validate_act(struct bAction *act); + +void poselib_remove_pose(struct Object *ob, struct TimeMarker *marker); +void poselib_rename_pose(struct Object *ob); +void poselib_add_current_pose(struct Object *ob, int mode); + +void poselib_preview_poses(struct Object *ob, short apply_active); + +#endif diff --git a/source/blender/include/BIF_poseobject.h b/source/blender/include/BIF_poseobject.h index 835b808c9ba..bf60fdb6038 100644 --- a/source/blender/include/BIF_poseobject.h +++ b/source/blender/include/BIF_poseobject.h @@ -35,6 +35,7 @@ struct Object; +struct bPose; struct bPoseChannel; void enter_posemode(void); @@ -58,14 +59,28 @@ void free_posebuf(void); void copy_posebuf (void); void paste_posebuf (int flip); -void pose_adds_vgroups(struct Object *meshobj); +void pose_adds_vgroups(struct Object *meshobj, int heatweights); + +void pose_add_posegroup(void); +void pose_remove_posegroup(void); +char *build_posegroups_menustr(struct bPose *pose, short for_pupmenu); +void pose_assign_to_posegroup(short active); +void pose_remove_from_posegroups(void); +void pgroup_operation_with_menu(void); + +void pose_select_grouped(short nr); +void pose_select_grouped_menu(void); void pose_calculate_path(struct Object *ob); +void pose_recalculate_paths(struct Object *ob); void pose_clear_paths(struct Object *ob); void pose_flip_names(void); +void pose_autoside_names(short axis); void pose_activate_flipped_bone(void); void pose_movetolayer(void); +void pose_relax(void); +void pose_flipquats(void); #endif diff --git a/source/blender/include/BIF_radialcontrol.h b/source/blender/include/BIF_radialcontrol.h new file mode 100644 index 00000000000..81181a3a91e --- /dev/null +++ b/source/blender/include/BIF_radialcontrol.h @@ -0,0 +1,62 @@ +/* + * $Id: multires.h 13015 2007-12-27 07:27:03Z nicholasbishop $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2008 by Nicholas Bishop + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef RADIALCONTROL_H +#define RADIALCONTROL_H + +struct NumInput; + +#define RADIALCONTROL_NONE 0 +#define RADIALCONTROL_SIZE 1 +#define RADIALCONTROL_STRENGTH 2 +#define RADIALCONTROL_ROTATION 3 + +typedef void (*RadialControlCallback)(const int, const int); + +typedef struct RadialControl { + int mode; + short origloc[2]; + + unsigned int tex; + + int new_value; + int original_value; + int max_value; + RadialControlCallback callback; + + struct NumInput *num; +} RadialControl; + +RadialControl *radialcontrol_start(const int mode, RadialControlCallback callback, + const int original_value, const int max_value, + const unsigned int tex); +void radialcontrol_do_events(RadialControl *rc, const unsigned short event); +void radialcontrol_draw(RadialControl *rc); + +#endif diff --git a/source/blender/include/BIF_renderwin.h b/source/blender/include/BIF_renderwin.h index 789c3661db7..9bddafac701 100644 --- a/source/blender/include/BIF_renderwin.h +++ b/source/blender/include/BIF_renderwin.h @@ -33,6 +33,7 @@ struct Render; struct ScrArea; struct RenderStats; +struct ImBuf; void calc_renderwin_rectangle(int rectx, int recty, int posmask, int renderpos_r[2], int rendersize_r[2]); @@ -40,6 +41,15 @@ void BIF_close_render_display(void); void BIF_do_render(int anim); +/* render text */ +void BIF_make_render_text(struct RenderStats *rs); +char *BIF_render_text(void); + +/* render spare buffer */ +int BIF_show_render_spare(void); +struct ImBuf *BIF_render_spare_imbuf(void); +void BIF_free_render_spare(void); + /** * @param v3d The View3D space to render. */ diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h index 7f3b27fcf2f..1649287297b 100644 --- a/source/blender/include/BIF_resources.h +++ b/source/blender/include/BIF_resources.h @@ -58,24 +58,24 @@ typedef enum { ICON_SPACE4, ICON_TRIA_LEFT, ICON_TRIA_UP, - ICON_NDOF_TURN, - ICON_NDOF_FLY, - ICON_NDOF_TRANS, - ICON_NDOF_DOM, + ICON_FONTPREVIEW, + ICON_BLANK4, + ICON_BLANK5, + ICON_BLANK6, ICON_ORTHO, ICON_PERSP, ICON_CAMERA, - ICON_EFFECTS, + ICON_PARTICLES, ICON_BBOX, ICON_WIRE, ICON_SOLID, ICON_SMOOTH, ICON_POTATO, ICON_MARKER_HLT, - ICON_NORMALVIEW, - ICON_LOCALVIEW, - ICON_UNUSEDVIEW, + ICON_PMARKER_ACT, + ICON_PMARKER_SEL, + ICON_PMARKER, ICON_VIEWZOOM, ICON_SORTALPHA, ICON_SORTTIME, @@ -84,10 +84,10 @@ typedef enum { ICON_SHORTDISPLAY, ICON_TRIA_DOWN, ICON_TRIA_RIGHT, - ICON_BLANK7, - ICON_BLANK8, - ICON_BLANK9, - ICON_BLANK10, + ICON_NDOF_TURN, + ICON_NDOF_FLY, + ICON_NDOF_TRANS, + ICON_NDOF_DOM, ICON_VIEW_AXIS_ALL, ICON_VIEW_AXIS_NONE, @@ -123,9 +123,9 @@ typedef enum { ICON_AXIS_SIDE, ICON_AXIS_FRONT, ICON_AXIS_TOP, - ICON_DRAW_UVFACES, - ICON_STICKY_UVS, - ICON_STICKY2_UVS, + ICON_STICKY_UVS_LOC, + ICON_STICKY_UVS_DISABLE, + ICON_STICKY_UVS_VERT, ICON_PREV_KEYFRAME, ICON_NEXT_KEYFRAME, ICON_ENVMAP, @@ -164,7 +164,7 @@ typedef enum { ICON_FACESEL_DEHLT, ICON_FACESEL_HLT, ICON_EDIT_DEHLT, - ICON_BLANK19, + ICON_BOOKMARKS, ICON_BLANK20, ICON_BLANK21, ICON_BLANK22, @@ -268,7 +268,7 @@ typedef enum { ICON_EYEDROPPER, ICON_WINDOW_WINDOW, ICON_PANEL_CLOSE, - ICON_BLANK35, + ICON_PHYSICS, ICON_BLANK36, ICON_BLANK37, ICON_BLANK38, @@ -317,13 +317,13 @@ typedef enum { ICON_HOME, ICON_CLIPUV_DEHLT, ICON_CLIPUV_HLT, - ICON_SOME_WACKY_VERTS_AND_LINES, - ICON_A_WACKY_VERT_AND_SOME_LINES, + ICON_BLANK2, + ICON_BLANK3, ICON_VPAINT_COL, ICON_RESTRICT_SELECT_OFF, ICON_RESTRICT_SELECT_ON, - ICON_BLANK45, - ICON_BLANK46, + ICON_MUTE_IPO_OFF, + ICON_MUTE_IPO_ON, ICON_MAN_TRANS, ICON_MAN_ROT, @@ -494,6 +494,7 @@ enum { TH_NORMAL, TH_FACE_DOT, TH_FACEDOT_SIZE, + TH_CFRAME, TH_SYNTAX_B, TH_SYNTAX_V, @@ -525,6 +526,7 @@ enum { TH_SEQ_META, TH_EDGE_SHARP, + TH_EDITMESH_ACTIVE, }; /* XXX WARNING: previous is saved in file, so do not change order! */ diff --git a/source/blender/include/BIF_space.h b/source/blender/include/BIF_space.h index 884f0459abf..43f0629f935 100644 --- a/source/blender/include/BIF_space.h +++ b/source/blender/include/BIF_space.h @@ -55,6 +55,7 @@ struct SpaceOops; #define VIEW3D_HANDLER_OBJECT 3 #define VIEW3D_HANDLER_PREVIEW 4 #define VIEW3D_HANDLER_MULTIRES 5 +#define VIEW3D_HANDLER_TRANSFORM 6 /* ipo handler codes */ #define IPO_HANDLER_PROPERTIES 20 @@ -65,6 +66,8 @@ struct SpaceOops; #define IMAGE_HANDLER_CURVES 32 #define IMAGE_HANDLER_PREVIEW 33 #define IMAGE_HANDLER_GAME_PROPERTIES 34 +#define IMAGE_HANDLER_VIEW_PROPERTIES 35 +/*#define IMAGE_HANDLER_TRANSFORM_PROPERTIES 36*/ /* action handler codes */ #define ACTION_HANDLER_PROPERTIES 40 @@ -75,6 +78,9 @@ struct SpaceOops; /* sequence handler codes */ #define SEQ_HANDLER_PROPERTIES 60 +/* imasel handler codes */ +#define IMASEL_HANDLER_IMAGE 70 + /* theme codes */ #define B_ADD_THEME 3301 #define B_DEL_THEME 3302 @@ -89,6 +95,7 @@ struct SpaceOops; #define B_RECALCLIGHT 3310 +void scrarea_do_winprefetchdraw (struct ScrArea *sa); void scrarea_do_windraw (struct ScrArea *sa); void scrarea_do_winchange (struct ScrArea *sa); void scrarea_do_winhandle (struct ScrArea *sa, struct BWinEvent *evt); @@ -114,6 +121,7 @@ extern void force_draw_plus(int type, int header); extern void freespacelist(struct ScrArea *sa); extern void handle_view3d_around(void); extern void handle_view3d_lock(void); +extern void handle_view_middlemouse(void); extern void init_v2d_oops(struct ScrArea *, struct SpaceOops *); extern void initipo(struct ScrArea *sa); extern void newspace(struct ScrArea *sa, int type); diff --git a/source/blender/include/BIF_spacetypes.h b/source/blender/include/BIF_spacetypes.h index e825acf676f..6125cfd5926 100644 --- a/source/blender/include/BIF_spacetypes.h +++ b/source/blender/include/BIF_spacetypes.h @@ -35,6 +35,7 @@ struct BWinEvent; typedef struct _SpaceType SpaceType; +typedef void (*SpacePrefetchDrawFP) (struct ScrArea *sa, void *spacedata); typedef void (*SpaceDrawFP) (struct ScrArea *sa, void *spacedata); typedef void (*SpaceChangeFP) (struct ScrArea *sa, void *spacedata); typedef void (*SpaceHandleFP) (struct ScrArea *sa, void *spacedata, struct BWinEvent *evt); @@ -43,7 +44,7 @@ typedef void (*SpaceHandleFP) (struct ScrArea *sa, void *spacedata, struct BWinE SpaceType* spacetype_new (char *name); -void spacetype_set_winfuncs (SpaceType *st, SpaceDrawFP draw, SpaceChangeFP change, SpaceHandleFP handle); +void spacetype_set_winfuncs (SpaceType *st, SpacePrefetchDrawFP prefetch, SpaceDrawFP draw, SpaceChangeFP change, SpaceHandleFP handle); /***/ diff --git a/source/blender/include/BIF_toolbox.h b/source/blender/include/BIF_toolbox.h index 72867cbfa05..39f86aefe73 100644 --- a/source/blender/include/BIF_toolbox.h +++ b/source/blender/include/BIF_toolbox.h @@ -65,4 +65,14 @@ void replace_names_but (void); void BIF_screendump(int fscreen); void write_screendump(char *name); +typedef struct TBitem { + int icon; + char *name; + int retval; + void *poin; +} TBitem; +void toolbox_generic( struct TBitem *generic_menu ); /* for external toolbox - python only for now */ + +void toolbox_mousepos( short *mpos, int save ); /* saves/restores mouse position when entering/exiting menus */ + #endif diff --git a/source/blender/include/BIF_transform.h b/source/blender/include/BIF_transform.h index a8abcabc4cb..82d6bb84281 100644 --- a/source/blender/include/BIF_transform.h +++ b/source/blender/include/BIF_transform.h @@ -55,6 +55,14 @@ #define TFM_BONE_ENVELOPE 16 #define TFM_CURVE_SHRINKFATTEN 17 #define TFM_BONE_ROLL 18 +#define TFM_TIME_TRANSLATE 19 +#define TFM_TIME_SLIDE 20 +#define TFM_TIME_SCALE 21 +#define TFM_TIME_EXTEND 22 +#define TFM_BAKE_TIME 23 +#define TFM_BEVEL 24 +#define TFM_BWEIGHT 25 +#define TFM_ALIGN 26 /* TRANSFORM CONTEXTS */ #define CTX_NONE 0 @@ -62,11 +70,13 @@ #define CTX_EDGE 2 #define CTX_NO_PET 4 #define CTX_TWEAK 8 -#define CTX_NDOF 16 +#define CTX_NO_MIRROR 16 +#define CTX_AUTOCONFIRM 32 +#define CTX_BMESH 64 +#define CTX_NDOF 128 void initTransform(int mode, int context); void Transform(void); -void Mirror(short mode); void NDofTransform(); /* Standalone call to get the transformation center corresponding to the current situation @@ -77,6 +87,8 @@ int calculateTransformCenter(int centerMode, float *vec); struct TransInfo; struct ScrArea; +struct Base; +struct Scene; struct TransInfo * BIF_GetTransInfo(void); void BIF_setSingleAxisConstraint(float vec[3], char *text); @@ -84,6 +96,20 @@ void BIF_setDualAxisConstraint(float vec1[3], float vec2[3], char *text); void BIF_setLocalAxisConstraint(char axis, char *text); void BIF_setLocalLockConstraint(char axis, char *text); +int BIF_snappingSupported(void); + +struct TransformOrientation; + +void BIF_clearTransformOrientation(void); +void BIF_removeTransformOrientation(struct TransformOrientation *ts); +void BIF_manageTransformOrientation(int confirm, int set); +int BIF_menuselectTransformOrientation(void); +void BIF_selectTransformOrientation(struct TransformOrientation *ts); +void BIF_selectTransformOrientationFromIndex(int index); + +char * BIF_menustringTransformOrientation(); /* the returned value was allocated and needs to be freed after use */ +int BIF_countTransformOrientation(); + /* Drawing callbacks */ void BIF_drawConstraint(void); void BIF_drawPropCircle(void); diff --git a/source/blender/include/BIF_usiblender.h b/source/blender/include/BIF_usiblender.h index e7475af3ab7..42261ce09d3 100644 --- a/source/blender/include/BIF_usiblender.h +++ b/source/blender/include/BIF_usiblender.h @@ -49,6 +49,7 @@ void BIF_read_autosavefile(void); void BIF_write_file(char *target); void BIF_write_homefile(void); void BIF_write_autosave(void); +void BIF_clear_tempfiles(void); #endif diff --git a/source/blender/include/BPI_script.h b/source/blender/include/BPI_script.h deleted file mode 100644 index 80ac8b46900..00000000000 --- a/source/blender/include/BPI_script.h +++ /dev/null @@ -1,71 +0,0 @@ -/** - * include/BPI_script.h (jan-2004 ianwill) - * - * $Id$ - * - * Header for BPython's script structure. BPI: Blender Python external include - * file. - * - * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. The Blender - * Foundation also sells licenses for use in proprietary software under - * the Blender License. See http://www.blender.org/BL/ for information - * about this. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * This is a new part of Blender. - * - * Contributor(s): Willian P. Germano. - * - * ***** END GPL/BL DUAL LICENSE BLOCK ***** - */ - -#ifndef BPI_SCRIPT_H -#define BPI_SCRIPT_H - -//#include "DNA_listBase.h" -#include "DNA_ID.h" - -typedef struct Script { - ID id; - - void *py_draw; - void *py_event; - void *py_button; - void *py_browsercallback; - void *py_globaldict; - - int flags, lastspace; - -} Script; - -/* Note: a script that registers callbacks in the script->py_* pointers - * above (or calls the file or image selectors) needs to keep its global - * dictionary until Draw.Exit() is called and the callbacks removed. - * Unsetting SCRIPT_RUNNING means the interpreter reached the end of the - * script and returned control to Blender, but we can't get rid of its - * namespace (global dictionary) while SCRIPT_GUI or SCRIPT_FILESEL is set, - * because of the callbacks. The flags and the script name are saved in - * each running script's global dictionary, under '__script__'. */ - -/* Flags */ -#define SCRIPT_RUNNING 0x01 -#define SCRIPT_GUI 0x02 -#define SCRIPT_FILESEL 0x04 - -#endif /* BPI_SCRIPT_H */ diff --git a/source/blender/include/BSE_drawimasel.h b/source/blender/include/BSE_drawimasel.h index f412ca08584..6c68ba79bb9 100644 --- a/source/blender/include/BSE_drawimasel.h +++ b/source/blender/include/BSE_drawimasel.h @@ -33,27 +33,28 @@ #ifndef BSE_DRAWIMASEL_H #define BSE_DRAWIMASEL_H + +/* button events */ +#define B_FS_FILENAME 1 +#define B_FS_DIRNAME 2 +#define B_FS_DIR_MENU 3 +#define B_FS_PARDIR 4 +#define B_FS_LOAD 5 +#define B_FS_CANCEL 6 +#define B_FS_LIBNAME 7 +#define B_FS_BOOKMARK 8 + +/* ui geometry */ +#define IMASEL_BUTTONS_HEIGHT 60 +#define TILE_BORDER_X 8 +#define TILE_BORDER_Y 8 + struct ScrArea; struct SpaceImaSel; -void viewgate(short sx, short sy, short ex, short ey); -void areaview (void); -void calc_hilite(struct SpaceImaSel *simasel); -void make_sima_area(struct SpaceImaSel *simasel); -void draw_sima_area(struct SpaceImaSel *simasel); -void select_ima_files(struct SpaceImaSel *simasel); -void move_imadir_sli(struct SpaceImaSel *simasel); -void move_imafile_sli(struct SpaceImaSel *simasel); -void ima_select_all(struct SpaceImaSel *simasel); -void pibplay(struct SpaceImaSel *simasel); void drawimaselspace(struct ScrArea *sa, void *spacedata); - -/* void calc_hilite(SpaceImaSel *simasel); */ -/* void ima_select_all(SpaceImaSel *simasel); */ -/* void move_imadir_sli(SpaceImaSel *simasel); */ -/* void move_imafile_sli(SpaceImaSel *simasel); */ -/* void pibplay(SpaceImaSel *simasel); */ -/* void select_ima_files(SpaceImaSel *simasel); */ +void calc_imasel_rcts(SpaceImaSel *simasel, int winx, int winy); +void do_imasel_buttonevents(short event, SpaceImaSel *simasel); #endif /* BSE_DRAWIMASEL_H */ diff --git a/source/blender/include/BSE_drawipo.h b/source/blender/include/BSE_drawipo.h index 07f116d8d67..2053f41a178 100644 --- a/source/blender/include/BSE_drawipo.h +++ b/source/blender/include/BSE_drawipo.h @@ -55,6 +55,7 @@ void ipoco_to_areaco_noclip (struct View2D *v2d, float *vec, short *mval); void view2d_do_locks (struct ScrArea *cursa, int flag); void view2d_zoom (struct View2D *v2d, float factor, int winx, int winy); +void view2d_getscale (struct View2D *v2d, float *x, float *y); void test_view2d (struct View2D *v2d, int winx, int winy); void calc_scrollrcts (struct ScrArea *sa, struct View2D *v2d, int winx, int winy); diff --git a/source/blender/include/BSE_drawview.h b/source/blender/include/BSE_drawview.h index 9c577746da9..c425cbc62ea 100644 --- a/source/blender/include/BSE_drawview.h +++ b/source/blender/include/BSE_drawview.h @@ -58,7 +58,7 @@ struct ImBuf *read_backbuf(short xmin, short ymin, short xmax, short ymax); unsigned int sample_backbuf_rect(short mval[2], int size, unsigned int min, unsigned int max, int *dist, short strict, unsigned int (*indextest)(unsigned int index)); void drawview3dspace(struct ScrArea *sa, void *spacedata); -void drawview3d_render(struct View3D *v3d, int winx, int winy); +void drawview3d_render(struct View3D *v3d, int winx, int winy, float winmat[][4]); int update_time(void); void calc_viewborder(struct View3D *v3d, struct rctf *viewborder_r); diff --git a/source/blender/include/BSE_edit.h b/source/blender/include/BSE_edit.h index 048d4d012b2..71f6b275fd8 100644 --- a/source/blender/include/BSE_edit.h +++ b/source/blender/include/BSE_edit.h @@ -50,6 +50,7 @@ void snap_sel_to_curs(void); void snap_curs_to_grid(void); void snap_curs_to_sel(void); void snap_to_center(void); +void snap_curs_to_active(void); #endif /* BSE_EDIT_H */ diff --git a/source/blender/include/BSE_editaction_types.h b/source/blender/include/BSE_editaction_types.h new file mode 100644 index 00000000000..c347c04d7c2 --- /dev/null +++ b/source/blender/include/BSE_editaction_types.h @@ -0,0 +1,87 @@ +/** + * $Id: BIF_editaction.h 10519 2007-04-13 11:15:08Z aligorith $ + * + * ***** BEGIN GPL/BL DUAL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): 2007, Joshua Leung (major Action Editor recode) + * + * ***** END GPL/BL DUAL LICENSE BLOCK ***** + */ + +#ifndef BIF_EDITACTION_TYPES_H +#define BIF_EDITACTION_TYPES_H + +/******************************************************* */ +/* FILTERED ACTION DATA - TYPES */ + +/* types of keyframe data in ActListElem */ +typedef enum ALE_KEYTYPE { + ALE_NONE = 0, + ALE_IPO, + ALE_ICU, + ALE_GROUP +} ALE_KEYTYPE; + +/* This struct defines a structure used for quick access */ +typedef struct bActListElem { + struct bActListElem *next, *prev; + + void *data; /* source data this elem represents */ + int type; /* one of the ACTTYPE_* values */ + int flag; /* copy of elem's flags for quick access */ + int index; /* copy of adrcode where applicable */ + + void *key_data; /* motion data - ipo or ipo-curve */ + short datatype; /* type of motion data to expect */ + + struct bActionGroup *grp; /* action group that owns the channel */ + + void *owner; /* will either be an action channel or fake ipo-channel (for keys) */ + short ownertype; /* type of owner */ +} bActListElem; + +/******************************************************* */ +/* FILTER ACTION DATA - METHODS/TYPES */ + +/* filtering flags - under what circumstances should a channel be added */ +typedef enum ACTFILTER_FLAGS { + ACTFILTER_VISIBLE = (1<<0), /* should channels be visible */ + ACTFILTER_SEL = (1<<1), /* should channels be selected */ + ACTFILTER_FOREDIT = (1<<2), /* does editable status matter */ + ACTFILTER_CHANNELS = (1<<3), /* do we only care that it is a channel */ + ACTFILTER_IPOKEYS = (1<<4), /* only channels referencing ipo's */ + ACTFILTER_ONLYICU = (1<<5), /* only reference ipo-curves */ + ACTFILTER_FORDRAWING = (1<<6), /* make list for interface drawing */ + ACTFILTER_ACTGROUPED = (1<<7) /* belongs to the active group */ +} ACTFILTER_FLAGS; + +/* Action Editor - Main Data types */ +typedef enum ACTCONT_TYPES { + ACTCONT_NONE = 0, + ACTCONT_ACTION, + ACTCONT_SHAPEKEY +} ACTCONT_TYPES; + +#endif diff --git a/source/blender/include/BSE_editipo.h b/source/blender/include/BSE_editipo.h index 01f985018ed..99a7930ddb1 100644 --- a/source/blender/include/BSE_editipo.h +++ b/source/blender/include/BSE_editipo.h @@ -44,6 +44,7 @@ struct Object; struct IpoKey; struct TransOb; struct Tex; +struct TransInfo; void remake_object_ipos(struct Object *ob); char *getname_ac_ei(int nr); @@ -59,14 +60,15 @@ char *getname_la_ei(int nr); char *getname_cam_ei(int nr); char *getname_snd_ei(int nr); char *getname_fluidsim_ei(int nr); +char *getname_part_ei(int nr); -char *getname_ipocurve(struct IpoCurve *icu); +char *getname_ipocurve(struct IpoCurve *icu, struct Object *ob); int geticon_ipo_blocktype(short blocktype); struct EditIpo *get_active_editipo(void); -void boundbox_ipocurve(struct IpoCurve *icu); -void boundbox_ipo(struct Ipo *ipo, struct rctf *bb); +void boundbox_ipocurve(struct IpoCurve *icu, int selectedonly); +void boundbox_ipo(struct Ipo *ipo, struct rctf *bb, int selectedonly); void editipo_changed(struct SpaceIpo *si, int doredraw); void scale_editipo(void); @@ -87,12 +89,14 @@ void do_ipo_selectbuttons(void); /* gets ipo curve, creates if needed */ -struct IpoCurve *verify_ipocurve(struct ID *, short, char *, char *, int); -struct Ipo *verify_ipo(struct ID *, short, char *, char *); +struct IpoCurve *verify_ipocurve(struct ID *, short, char *, char *, char *, int); +struct Ipo *verify_ipo(struct ID *, short, char *, char *, char *); int texchannel_to_adrcode(int channel); -void insert_vert_ipo(struct IpoCurve *icu, float x, float y); +int insert_bezt_icu(struct IpoCurve *icu, struct BezTriple *bezt); +void insert_vert_icu(struct IpoCurve *icu, float x, float y, short fast); void add_vert_ipo(void); + void add_duplicate_editipo(void); void remove_doubles_ipo(void); void clean_ipo(void); @@ -107,6 +111,7 @@ void ipo_mirror(short event); void mouse_select_ipo(void); void sethandles_ipo(int code); void select_ipo_bezier_keys(struct Ipo *ipo, int selectmode); +void select_icu_bezier_keys(struct IpoCurve *icu, int selectmode); void set_ipotype(void); void borderselect_ipo(void); void del_ipo(int need_check); @@ -118,7 +123,7 @@ void paste_editipo(void); void set_exprap_ipo(int mode); void set_speed_editipo(float speed); -void insertkey(ID *id, int blocktype, char *actname, char *constname, int adrcode); +void insertkey(ID *id, int blocktype, char *actname, char *constname, int adrcode, short fast); void insertkey_smarter(ID *id, int blocktype, char *actname, char *constname, int adrcode); void insertkey_editipo(void); void common_insertkey(void); @@ -135,21 +140,24 @@ void movekey_ipo(int dir); void movekey_obipo(int dir); void nextkey_ipo(int dir); void nextkey_obipo(int dir); -void remake_ipo_transverts(struct TransVert *transmain, float *dvec, int tot); -void transform_ipo(int mode); void filter_sampledata(float *data, int sfra, int efra); void sampledata_to_ipocurve(float *data, int sfra, int efra, struct IpoCurve *icu); -void ipo_record(void); +void ipo_record(void); + +void make_ipo_transdata(struct TransInfo *t); +void remake_ipo_transdata(struct TransInfo *t); +void transform_ipo(int mode); void actstrip_map_ipo_keys(struct Object *ob, struct Ipo *ipo, short restore, short only_keys); void sethandles_ipo_keys(struct Ipo *ipo, int code); +void snap_cfra_ipo_keys(struct Ipo *ipo, short mode); void snap_ipo_keys(struct Ipo *ipo, short snaptype); void mirror_ipo_keys(struct Ipo *ipo, short mirror_mode); void setipotype_ipo(struct Ipo *ipo, int code); void set_ipo_key_selection(struct Ipo *ipo, int sel); int is_ipo_key_selected(struct Ipo *ipo); -void delete_icu_key(struct IpoCurve *icu, int index); +void delete_icu_key(struct IpoCurve *icu, int index, short do_recalc); void delete_ipo_keys(struct Ipo *ipo); int fullselect_ipo_keys(struct Ipo *ipo); int add_trans_ipo_keys(struct Ipo *ipo, struct TransVert *tv, int tvtot); @@ -157,8 +165,8 @@ void duplicate_ipo_keys(struct Ipo *ipo); void borderselect_ipo_key(struct Ipo *ipo, float xmin, float xmax, int val); void borderselect_icu_key(struct IpoCurve *icu, float xmin, float xmax, int (*select_function)(struct BezTriple *)); -void insertmatrixkey(ID *id, int blocktype, char *actname, char *constname, int adrcode, float matrixvalue); - +int insertmatrixkey(ID *id, int blocktype, char *actname, char *constname, int adrcode); +void insertfloatkey(ID *id, int blocktype, char *actname, char *constname, int adrcode, float floatkey); void select_ipo_key(struct Ipo *ipo, float selx, int sel); void select_icu_key(struct IpoCurve *icu, float selx, int selectmode); void setexprap_ipoloop(struct Ipo *ipo, int code); diff --git a/source/blender/include/BSE_filesel.h b/source/blender/include/BSE_filesel.h index 6934899062e..a41eea32040 100644 --- a/source/blender/include/BSE_filesel.h +++ b/source/blender/include/BSE_filesel.h @@ -53,8 +53,6 @@ void activate_fileselect(int type, char *title, char *file, void (*func)(char *) void activate_fileselect_menu(int type, char *title, char *file, char *pupmenu, short *menup, void (*func)(char *)); void activate_fileselect_args(int type, char *title, char *file, void (*func)(char *, void *, void *), void *arg1, void *arg2); -void activate_imageselect(int type, char *title, char *file, void (*func)(char *)); - void activate_databrowse(struct ID *id, int idcode, int fromcode, int retval, short *menup, void (*func)(unsigned short)); void activate_databrowse_args(struct ID *id, int idcode, int fromcode, short *menup, void (*func)(char *, void *, void *), void *arg1, void *arg2); diff --git a/source/blender/include/BSE_headerbuttons.h b/source/blender/include/BSE_headerbuttons.h index b0daf106ca8..112517dbe7f 100644 --- a/source/blender/include/BSE_headerbuttons.h +++ b/source/blender/include/BSE_headerbuttons.h @@ -141,6 +141,7 @@ void do_view3d_select_object_typemenu(void *arg, int event); void do_view3d_select_faceselmenu(void *arg, int event); void do_view3d_select_meshmenu(void *arg, int event); void do_view3d_select_curvemenu(void *arg, int event); +void do_view3d_select_metaballmenu(void *arg, int event); void do_view3d_edit_snapmenu(void *arg, int event); void do_view3d_edit_mirrormenu(void *arg, int event); void do_view3d_transform_moveaxismenu(void *arg, int event); diff --git a/source/blender/include/BSE_node.h b/source/blender/include/BSE_node.h index 243cac56152..0e9e511e9e6 100644 --- a/source/blender/include/BSE_node.h +++ b/source/blender/include/BSE_node.h @@ -54,6 +54,8 @@ struct Material *editnode_get_active_material(struct Material *ma); struct bNode *editnode_get_active_idnode(struct bNodeTree *ntree, short id_code); struct bNode *editnode_get_active(struct bNodeTree *ntree); +void node_rename(struct SpaceNode *snode); + void snode_tag_dirty(struct SpaceNode *snode); void snode_set_context(struct SpaceNode *snode); @@ -71,6 +73,10 @@ void node_ungroup(struct SpaceNode *snode); void snode_make_group_editable(struct SpaceNode *snode, struct bNode *gnode); void node_hide(struct SpaceNode *snode); void node_read_renderlayers(struct SpaceNode *snode); +void node_read_fullsamplelayers(struct SpaceNode *snode); +void clear_scene_in_nodes(struct Scene *sce); +void node_make_link(struct SpaceNode *snode); +void node_active_link_viewer(struct SpaceNode *snode); void node_transform_ext(int mode, int unused); void node_shader_default(struct Material *ma); @@ -95,8 +101,13 @@ struct SpaceNode; struct bNodeLink; void node_draw_link(struct SpaceNode *snode, struct bNodeLink *link); +void node_rename_but(char *s); + void init_node_butfuncs(void); +void node_curvemap_sample(float *col); + + /* exported to CMP and SHD nodes */ //void node_ID_title_cb(void *node_v, void *unused_v); //void node_but_title_cb(void *node_v, void *but_v); diff --git a/source/blender/include/BSE_seqeffects.h b/source/blender/include/BSE_seqeffects.h index 2962bbf3676..2dde9d3cc79 100644 --- a/source/blender/include/BSE_seqeffects.h +++ b/source/blender/include/BSE_seqeffects.h @@ -89,6 +89,7 @@ struct SeqEffectHandle { }; struct SeqEffectHandle get_sequence_effect(struct Sequence * seq); +struct SeqEffectHandle get_sequence_blend(struct Sequence * seq); int get_sequence_effect_num_inputs(int seq_type); void sequence_effect_speed_rebuild_map(struct Sequence * seq, int force); diff --git a/source/blender/include/BSE_seqscopes.h b/source/blender/include/BSE_seqscopes.h index 3dd5e495928..a2b3c65d6e9 100644 --- a/source/blender/include/BSE_seqscopes.h +++ b/source/blender/include/BSE_seqscopes.h @@ -32,7 +32,10 @@ struct ImBuf; struct ImBuf *make_waveform_view_from_ibuf(struct ImBuf * ibuf); +struct ImBuf *make_sep_waveform_view_from_ibuf(struct ImBuf * ibuf); struct ImBuf *make_vectorscope_view_from_ibuf(struct ImBuf * ibuf); +struct ImBuf *make_zebra_view_from_ibuf(struct ImBuf * ibuf, float perc); +struct ImBuf *make_histogram_view_from_ibuf(struct ImBuf * ibuf); #endif diff --git a/source/blender/include/BSE_sequence.h b/source/blender/include/BSE_sequence.h index c975e8de8ff..9f15b729e1c 100644 --- a/source/blender/include/BSE_sequence.h +++ b/source/blender/include/BSE_sequence.h @@ -37,6 +37,7 @@ struct PluginSeq; struct StripElem; +struct TStripElem; struct Strip; struct Sequence; struct ListBase; @@ -44,21 +45,46 @@ struct Editing; struct ImBuf; struct Scene; -void free_stripdata(int len, struct StripElem *se); +void free_tstripdata(int len, struct TStripElem *se); void free_strip(struct Strip *strip); -void new_stripdata(struct Sequence *seq); +void new_tstripdata(struct Sequence *seq); void free_sequence(struct Sequence *seq); void build_seqar(struct ListBase *seqbase, struct Sequence ***seqar, int *totseq); + +#define BUILD_SEQAR_COUNT_NOTHING 0 +#define BUILD_SEQAR_COUNT_CURRENT 1 +#define BUILD_SEQAR_COUNT_CHILDREN 2 + +void build_seqar_cb(struct ListBase *seqbase, struct Sequence ***seqar, + int *totseq, int (*test_func)(struct Sequence * seq)); void free_editing(struct Editing *ed); void calc_sequence(struct Sequence *seq); +void calc_sequence_disp(struct Sequence *seq); +void reload_sequence_new_file(struct Sequence * seq); +void seq_proxy_rebuild(struct Sequence * seq); void sort_seq(void); void clear_scene_in_allseqs(struct Scene *sce); +char *give_seqname_by_type(int type); +char *give_seqname(struct Sequence *seq); + int evaluate_seq_frame(int cfra); struct StripElem *give_stripelem(struct Sequence *seq, int cfra); +struct TStripElem *give_tstripelem(struct Sequence *seq, int cfra); void set_meta_stripdata(struct Sequence *seqm); struct ImBuf *give_ibuf_seq(int rectx, int recty, int cfra, int chansel); /* chansel: render this channel. Default=0 (renders end result)*/ +struct ImBuf *give_ibuf_seq_direct(int rectx, int recty, int cfra, + struct Sequence * seq); + +/* sequence prefetch API */ +void seq_start_threads(); +void seq_stop_threads(); +void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown); +void seq_wait_for_prefetch_ready(); +struct ImBuf * give_ibuf_seq_threaded(int rectx, int recty, int cfra, + int chanshown); + void free_imbuf_seq_except(int cfra); void free_imbuf_seq_with_ipo(struct Ipo * ipo); diff --git a/source/blender/include/BSE_time.h b/source/blender/include/BSE_time.h index 459101f592d..27560c09e75 100644 --- a/source/blender/include/BSE_time.h +++ b/source/blender/include/BSE_time.h @@ -35,8 +35,14 @@ struct ListBase; struct View2D; +struct TimeMarker; -/* ******** Markers - General Api ********* */ +/* ****** Marker Macros - General API ****** */ + +/* macro for getting the scene's set of markers */ +#define SCE_MARKERS (&(G.scene->markers)) + +/* ******** Markers - General API ********* */ void add_marker(int frame); void duplicate_marker(void); void remove_marker(void); @@ -45,16 +51,25 @@ void transform_markers(int mode, int smode); void borderselect_markers(void); void deselect_markers(short test, short sel); -struct TimeMarker *find_nearest_marker(int clip_y); +struct TimeMarker *find_nearest_marker(struct ListBase *markers, int clip_y); void nextprev_marker(short dir); void get_minmax_markers(short sel, float *first, float *last); int find_nearest_marker_time(float dx); +struct TimeMarker *get_frame_marker(int frame); void add_marker_to_cfra_elem(struct ListBase *lb, struct TimeMarker *marker, short only_sel); void make_marker_cfra_list(struct ListBase *lb, short only_sel); -void draw_markers_timespace(void); +/* ********* Markers - Drawing API ********* */ + +/* flags for drawing markers */ +enum { + DRAW_MARKERS_LINES = (1<<0), + DRAW_MARKERS_LOCAL = (1<<1) +}; + +void draw_markers_timespace(struct ListBase *markers, int flag); /* ******** Animation - Preview Range ************* */ void anim_previewrange_set(void); diff --git a/source/blender/include/BSE_trans_types.h b/source/blender/include/BSE_trans_types.h index d75da302436..9c8b9e5595f 100644 --- a/source/blender/include/BSE_trans_types.h +++ b/source/blender/include/BSE_trans_types.h @@ -35,6 +35,7 @@ struct Object; struct MDeformVert; +struct ColorBand; typedef struct TransOb { float *loc; diff --git a/source/blender/include/BSE_view.h b/source/blender/include/BSE_view.h index 94834d2c771..0e88b2467f7 100644 --- a/source/blender/include/BSE_view.h +++ b/source/blender/include/BSE_view.h @@ -78,6 +78,7 @@ void calctrackballvec(struct rcti *area, short *mval, float *vec); void viewmove(int mode); void viewmoveNDOFfly(int mode); void viewmoveNDOF(int mode); +void view_zoom_mouseloc(float dfac, short *mouseloc); int get_view3d_viewplane(int winxi, int winyi, rctf *viewplane, float *clipsta, float *clipend, float *pixsize); void setwinmatrixview3d(int winx, int winy, struct rctf *rect); diff --git a/source/blender/include/blendef.h b/source/blender/include/blendef.h index e2d4d0c67ad..8ed23e10641 100644 --- a/source/blender/include/blendef.h +++ b/source/blender/include/blendef.h @@ -40,7 +40,6 @@ #define MINFRAME 1 #define MINFRAMEF 1.0 -#define MAXLAMP 32765 /* max length material array, 16 because of bits in matfrom */ #define MAXPICKBUF 10000 #define MAXSEQ 32 @@ -54,7 +53,7 @@ /* also fill in structs itself, dna cannot handle defines, duplicate with utildefines.h still */ #ifndef FILE_MAXDIR -#define FILE_MAXDIR 160 +#define FILE_MAXDIR 160 #define FILE_MAXFILE 80 #endif @@ -87,13 +86,16 @@ #endif #define SELECT 1 +#define HIDDEN 1 +#define FIRST 1 #define ACTIVE 2 /*#ifdef WITH_VERSE*/ #define VERSE 3 /*#endif*/ #define DESELECT 0 #define NOT_YET 0 - +#define VISIBLE 0 +#define LAST 0 #define TESTBASE(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0) ) #define TESTBASELIB(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && ((base)->object->id.lib==0) && (((base)->object->restrictflag & OB_RESTRICT_VIEW)==0)) @@ -111,12 +113,17 @@ #define EFRA (G.scene->r.efra) #define PSFRA ((G.scene->r.psfra != 0)? (G.scene->r.psfra): (G.scene->r.sfra)) #define PEFRA ((G.scene->r.psfra != 0)? (G.scene->r.pefra): (G.scene->r.efra)) +#define FRA2TIME(a) ((((double) G.scene->r.frs_sec_base) * (a)) / G.scene->r.frs_sec) +#define TIME2FRA(a) ((((double) G.scene->r.frs_sec) * (a)) / G.scene->r.frs_sec_base) +#define FPS (((double) G.scene->r.frs_sec) / G.scene->r.frs_sec_base) #define ISPOIN(a, b, c) ( (a->b) && (a->c) ) #define ISPOIN3(a, b, c, d) ( (a->b) && (a->c) && (a->d) ) #define ISPOIN4(a, b, c, d, e) ( (a->b) && (a->c) && (a->d) && (a->e) ) -#define BEZSELECTED(bezt) (((bezt)->f1 & 1) || ((bezt)->f2 & 1) || ((bezt)->f3 & 1)) +#define BEZSELECTED(bezt) (((bezt)->f1 & SELECT) || ((bezt)->f2 & SELECT) || ((bezt)->f3 & SELECT)) +/* for curve objects in editmode that can have hidden handles - may use for IPO's later */ +#define BEZSELECTED_HIDDENHANDLES(bezt) ((G.f & G_HIDDENHANDLES) ? (bezt)->f2 & SELECT : BEZSELECTED(bezt)) /* psfont */ #define FNT_PDRAW 1 @@ -158,7 +165,6 @@ #define B_TEXALONE 47 #define B_MESHALONE 48 #define B_CURVEALONE 49 -#define B_HEMESHALONE 50 /* EVENT < 50: alones en locals */ @@ -171,7 +177,7 @@ #define B_PLAINMENUS 66 -#define B_GLRESLIMITCHANGED 69 +#define B_GLRESLIMITCHANGED 69 #define B_SHOWSPLASH 70 #define B_RESETAUTOSAVE 71 #define B_SOUNDTOGGLE 72 @@ -212,17 +218,15 @@ #define B_AUTOKEY 139 #define B_SCENELOCK 140 #define B_LOCALVIEW 141 -#define B_U_CAPSLOCK 142 +#define B_U_CAPSLOCK 142 #define B_VIEWBUT 146 #define B_PERSP 147 #define B_PROPTOOL 148 -#define B_VIEWRENDER 149 -#define B_VIEWTRANS 150 -#define B_VIEWZOOM 151 -#define B_STARTGAME 152 +#define B_VIEWRENDER 149 +#define B_STARTGAME 150 -#define B_MODESELECT 156 +#define B_MODESELECT 156 #define B_AROUND 157 #define B_SEL_VERT 158 #define B_SEL_EDGE 159 @@ -230,9 +234,11 @@ #define B_MAN_TRANS 161 #define B_MAN_ROT 162 #define B_MAN_SCALE 163 -#define B_HEMESHBROWSE 164 -#define B_HEMESHLOCAL 165 -#define B_NDOF 166 +#define B_SEL_PATH 166 +#define B_SEL_POINT 167 +#define B_SEL_END 168 +#define B_MAN_MODE 169 +#define B_NDOF 170 /* IPO: 200 */ #define B_IPOHOME 201 @@ -243,14 +249,16 @@ #define B_IPOEXTRAP 206 #define B_IPOCYCLIC 207 #define B_IPOMAIN 208 -#define B_IPOSHOWKEY 209 -#define B_IPOCYCLICX 210 +#define B_IPOSHOWKEY 209 +#define B_IPOCYCLICX 210 /* warn: also used for oops and seq */ -#define B_VIEW2DZOOM 211 +#define B_VIEW2DZOOM 211 #define B_IPOPIN 212 #define B_IPO_ACTION_OB 213 #define B_IPO_ACTION_KEY 214 - +#define B_IPOVIEWCENTER 215 +#define B_IPOVIEWALL 216 +#define B_IPOREDRAW 217 /* OOPS: 250 */ #define B_OOPSHOME 251 @@ -261,15 +269,15 @@ /* INFO: 300 */ /* watch: also in filesel.c and editobject.c */ #define B_INFOSCR 301 -#define B_INFODELSCR 302 +#define B_INFODELSCR 302 #define B_INFOSCE 304 -#define B_INFODELSCE 305 +#define B_INFODELSCE 305 #define B_FILEMENU 306 #define B_PACKFILE 307 #define B_CONSOLEOUT 308 #define B_CONSOLENUMLINES 309 -#define B_USERPREF 310 +#define B_USERPREF 310 #define B_LOADUIFONT 311 #define B_SETLANGUAGE 312 #define B_SETFONTSIZE 313 @@ -285,32 +293,33 @@ #define B_UITHEMEIMPORT 323 #define B_UITHEMEEXPORT 324 -#define B_MEMCACHELIMIT 325 +#define B_MEMCACHELIMIT 325 +#define B_WPAINT_RANGE 326 /* Definitions for the fileselect buttons in user prefs */ #define B_FONTDIRFILESEL 330 #define B_TEXTUDIRFILESEL 331 -#define B_PLUGTEXDIRFILESEL 332 -#define B_PLUGSEQDIRFILESEL 333 -#define B_RENDERDIRFILESEL 334 -#define B_PYTHONDIRFILESEL 335 +#define B_PLUGTEXDIRFILESEL 332 +#define B_PLUGSEQDIRFILESEL 333 +#define B_RENDERDIRFILESEL 334 +#define B_PYTHONDIRFILESEL 335 #define B_SOUNDDIRFILESEL 336 #define B_TEMPDIRFILESEL 337 /* yafray: for exportdir select */ #define B_YAFRAYDIRFILESEL 338 -#define B_PYMENUEVAL 339 /* re-eval scripts registration in menus */ +#define B_PYMENUEVAL 339 /* re-eval scripts registration in menus */ /* END Definitions for the fileselect buttons in user prefs */ /* IMAGE: 350 */ #define B_SIMAGEHOME 351 #define B_SIMABROWSE 352 #define B_SIMAGELOAD 353 -#define B_SIMAGEDRAW 354 -#define B_BE_SQUARE 355 -#define B_SIMAGEDRAW1 356 -#define B_TWINANIM 357 +#define B_SIMA_REDR_IMA_3D 354 +#define B_SIMAGETILE 355 +#define B_BE_SQUARE 356 +#define B_TWINANIM 357 #define B_SIMAGEREPLACE 358 -#define B_CLIP_UV 359 +#define B_CLIP_UV 359 #define B_SIMAGELOAD1 360 #define B_SIMAGEREPLACE1 361 #define B_SIMAGEPAINTTOOL 362 @@ -334,20 +343,27 @@ #define B_SIMANAME 381 #define B_SIMAMULTI 382 #define B_TRANS_IMAGE 383 -#define B_SIMA_REPACK 384 -#define B_SIMA_PLAY 385 -#define B_SIMA_RECORD 386 +#define B_CURSOR_IMAGE 384 +#define B_SIMA_REPACK 385 +#define B_SIMA_PLAY 386 +#define B_SIMA_RECORD 387 +#define B_SIMAPIN 388 +#define B_SIMA3DVIEWDRAW 389 + /* BUTS: 400 */ -#define B_BUTSHOME 401 -#define B_BUTSPREVIEW 402 -#define B_MATCOPY 403 -#define B_MATPASTE 404 -#define B_MESHTYPE 405 +#define B_BUTSHOME 401 +#define B_BUTSPREVIEW 402 +#define B_MATCOPY 403 +#define B_MATPASTE 404 +#define B_MESHTYPE 405 #define B_CONTEXT_SWITCH 406 /* IMASEL: 450 */ -/* in imasel.h */ +/* in imasel.h - not any more - elubie */ +#define B_SORTIMASELLIST 451 +#define B_RELOADIMASELDIR 452 +#define B_FILTERIMASELDIR 453 /* TEXT: 500 */ #define B_TEXTBROWSE 501 @@ -361,8 +377,8 @@ #define B_SYNTAX 509 /* SCRIPT: 525 */ -#define B_SCRIPTBROWSE 526 -#define B_SCRIPT2PREV 527 +#define B_SCRIPTBROWSE 526 +#define B_SCRIPT2PREV 527 /* FILE: 550 */ #define B_SORTFILELIST 551 @@ -382,34 +398,35 @@ #define B_ACTHOME 701 #define B_ACTCOPY 702 #define B_ACTPASTE 703 -#define B_ACTPASTEFLIP 704 +#define B_ACTPASTEFLIP 704 #define B_ACTCYCLIC 705 #define B_ACTCONT 706 #define B_ACTMAIN 707 #define B_ACTPIN 708 #define B_ACTBAKE 709 +#define B_ACTCOPYKEYS 710 +#define B_ACTPASTEKEYS 711 /* TIME: 751 - 800 */ #define B_TL_REW 751 #define B_TL_PLAY 752 #define B_TL_FF 753 -#define B_TL_PREVKEY 754 -#define B_TL_NEXTKEY 755 +#define B_TL_PREVKEY 754 +#define B_TL_NEXTKEY 755 #define B_TL_STOP 756 -#define B_TL_PREVIEWON 757 +#define B_TL_PREVIEWON 757 /* NLA: 801-850 */ #define B_NLAHOME 801 /* NODE: 851-900 */ -#define B_NODEHOME 851 +#define B_NODEHOME 851 #define B_NODE_USEMAT 852 #define B_NODE_USESCENE 853 /* FREE 901 - 999 */ -#define B_NOTHING -1 #define B_NOP -1 @@ -418,22 +435,22 @@ #define B_KEEPORIG 2 #define B_BEAUTY 4 #define B_SMOOTH 8 -#define B_BEAUTY_SHORT 16 +#define B_BEAUTY_SHORT 16 #define B_AUTOFGON 32 #define B_KNIFE 0x80 -#define B_PERCENTSUBD 0x40 -#define B_MESH_X_MIRROR 0x100 -#define B_JOINTRIA_UV 0x200 -#define B_JOINTRIA_VCOL 0X400 -#define B_JOINTRIA_SHARP 0X800 -#define B_JOINTRIA_MAT 0X1000 +#define B_PERCENTSUBD 0x40 +#define B_MESH_X_MIRROR 0x100 +#define B_JOINTRIA_UV 0x200 +#define B_JOINTRIA_VCOL 0X400 +#define B_JOINTRIA_SHARP 0X800 +#define B_JOINTRIA_MAT 0X1000 /* DISPLAYMODE */ #define R_DISPLAYIMAGE 0 #define R_DISPLAYWIN 1 #define R_DISPLAYSCREEN 2 - /* Gvp.flag and Gwp.flag */ +/* Gvp.flag and Gwp.flag */ #define VP_COLINDEX 1 #define VP_AREA 2 #define VP_SOFT 4 @@ -441,10 +458,11 @@ #define VP_SPRAY 16 #define VP_MIRROR_X 32 #define VP_HARD 64 -#define VP_ONLYVGROUP 128 +#define VP_ONLYVGROUP 128 /* Error messages */ #define ERROR_LIBDATA_MESSAGE "Can't edit external libdata" +#define MAX_RENDER_PASS 100 #endif diff --git a/source/blender/include/butspace.h b/source/blender/include/butspace.h index 142d2ae1d0b..739cec7b9f3 100644 --- a/source/blender/include/butspace.h +++ b/source/blender/include/butspace.h @@ -64,10 +64,13 @@ extern void do_render_panels(unsigned short event); extern void anim_panels(void); extern void sound_panels(void); extern void do_soundbuts(unsigned short event); +extern void sequencer_panels(void); +extern void do_sequencer_panels(unsigned short event); /* object */ extern void object_panels(void); extern void physics_panels(void); +extern void particle_panels(void); extern void do_object_panels(unsigned short event); extern void do_constraintbuts(unsigned short event); extern void object_panel_constraint(char *context); @@ -86,8 +89,6 @@ extern int mod_moveDown(void *ob_v, void *md_v); extern void const_moveUp(void *ob_v, void *con_v); extern void const_moveDown(void *ob_v, void *con_v); extern void del_constr_func (void *ob_v, void *con_v); -extern void get_constraint_typestring(char *str, void *con_v); -extern void get_constraint_ipo_context(void *ob_v, char *actname); /* editing */ extern void editing_panels(void); @@ -103,6 +104,7 @@ extern void do_cambuts(unsigned short event); extern void do_armbuts(unsigned short event); extern void do_uvcalculationbuts(unsigned short event); extern void weight_paint_buttons(struct uiBlock *); +extern void particle_edit_buttons(struct uiBlock *); extern char *get_vertexgroup_menustr(struct Object *ob); // used in object buttons @@ -168,6 +170,8 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_ARMATUREPANEL3 1013 #define B_OBJECTPANELSCALE 1014 #define B_OBJECTPANELDIMS 1015 +#define B_TRANSFORMSPACEADD 1016 +#define B_TRANSFORMSPACECLEAR 1017 /* *********************** */ #define B_LAMPBUTS 1200 @@ -180,6 +184,9 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_SHADRAY 1106 #define B_LMTEXPASTE 1107 #define B_LMTEXCOPY 1108 +#define B_LFALLOFFCHANGED 1109 +#define B_LMTEXMOVEUP 1110 +#define B_LMTEXMOVEDOWN 1111 /* *********************** */ #define B_MATBUTS 1300 @@ -209,6 +216,14 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_MAT_VCOL_PAINT 1222 #define B_MAT_VCOL_LIGHT 1223 + /* world buttons: buttons-preview update, and redraw 3dview */ +#define B_WORLDPRV2 1224 + +#define B_MAT_PARTICLE 1225 + +#define B_MTEXMOVEUP 1226 +#define B_MTEXMOVEDOWN 1227 + /* *********************** */ #define B_TEXBUTS 1400 @@ -277,6 +292,15 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_FLUIDSIM_MAKEPART 1453 #define B_GROUP_RELINK 1460 +#define B_OBJECT_IPOFLAG 1461 + +#define B_BAKEABLE_CHANGE 1470 + +/* Cloth sim button defines */ +#define B_CLOTH_CLEARCACHEALL 1480 +#define B_CLOTH_CLEARCACHEFRAME 1481 +#define B_CLOTH_CHANGEPREROLL 1482 +#define B_CLOTH_RENEW 1483 /* *********************** */ #define B_WORLDBUTS 1600 @@ -286,15 +310,18 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_COLZEN 1503 #define B_WMTEXPASTE 1504 #define B_WMTEXCOPY 1505 -#define B_AO_DISTANCES 1506 +#define B_AO_FALLOFF 1506 +#define B_WMTEXMOVEUP 1507 +#define B_WMTEXMOVEDOWN 1508 /* *********************** */ -#define B_RENDERBUTS 1700 +#define B_RENDERBUTS 1690 +#define B_SEQUENCERBUTS 1699 #define B_FS_PIC 1601 #define B_FS_BACKBUF 1602 -#define B_FS_FTYPE 1604 +#define B_FS_FTYPE 1604 /* FTYPE is no more */ #define B_DORENDER 1605 #define B_DOANIM 1606 #define B_PLAYANIM 1607 @@ -311,7 +338,7 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_PR_PANO 1619 #define B_PR_NTSC 1620 -#define B_IS_FTYPE 1622 +#define B_IS_FTYPE 1622 /* FTYPE is nomore */ #define B_IS_BACKBUF 1623 #define B_PR_PC 1624 @@ -338,6 +365,14 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_ADD_RENDERLAYER 1645 #define B_SET_PASS 1646 +#define B_SEQ_BUT_PLUGIN 1691 +#define B_SEQ_BUT_RELOAD 1692 +#define B_SEQ_BUT_EFFECT 1693 +#define B_SEQ_BUT_RELOAD_ALL 1694 +#define B_SEQ_BUT_TRANSFORM 1695 +#define B_SEQ_BUT_RELOAD_FILE 1696 +#define B_SEQ_BUT_REBUILD_PROXY 1697 + /* *********************** */ #define B_ARMATUREBUTS 1800 #define B_POSE 1701 @@ -361,6 +396,7 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_DOCENTER 2015 #define B_DOCENTERNEW 2016 #define B_DOCENTERCURSOR 2017 +#define B_MATASS_BROWSE 2018 /* 20 values! */ #define B_OBLAY 2019 @@ -372,6 +408,7 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_PREVKEY 2045 #define B_NEXTKEY 2046 #define B_LOCKKEY 2047 +#define B_MATCOL2 2048 #define B_MESHBUTS 2090 @@ -408,6 +445,9 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_JOINTRIA 2081 #define B_SETTFACE_RND 2082 #define B_SETMCOL_RND 2083 +#define B_DRAWBWEIGHTS 2084 + +#define B_GEN_SKELETON 2090 /* *********************** */ #define B_VGROUPBUTS 2100 @@ -450,6 +490,11 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_SETRESOLU 2121 #define B_SETW4 2122 #define B_SUBSURFTYPE 2123 +#define B_TILTINTERP 2124 +#define B_SETPT_AUTO 2125 +#define B_SETPT_VECTOR 2126 +#define B_SETPT_ALIGN 2127 +#define B_SETPT_FREE 2128 /* *********************** */ #define B_FONTBUTS 2300 @@ -483,6 +528,23 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la #define B_ARM_CALCPATHS 2303 #define B_ARM_CLEARPATHS 2304 +#define B_POSELIB_VALIDATE 2310 +#define B_POSELIB_ADDPOSE 2311 +#define B_POSELIB_REPLACEP 2312 +#define B_POSELIB_REMOVEP 2313 +#define B_POSELIB_APPLYP 2314 + + /* these shouldn't be here... */ +#define B_POSELIB_BROWSE 2320 +#define B_POSELIB_ALONE 2321 +#define B_POSELIB_DELETE 2322 + + +#define B_POSEGRP_RECALC 2330 +#define B_POSEGRP_ADD 2331 +#define B_POSEGRP_REMOVE 2332 +#define B_POSEGRP_MCUSTOM 2333 + /* *********************** */ #define B_CAMBUTS 2500 @@ -569,6 +631,14 @@ void curvemap_buttons(struct uiBlock *block, struct CurveMapping *cumap, char la /* Sculptmode */ #define B_SCULPT_TEXBROWSE 2860 +/* Particles */ +#define B_BAKE_OLENGTH 2870 +#define B_BAKE_APPLY_AV 2871 +#define B_BAKE_KEYTIME 2872 +#define B_BAKE_AV_CHANGE 2873 +#define B_BAKE_REDRAWEDIT 2874 +#define B_BAKE_RECACHE 2875 + /* *********************** */ #define B_RADIOBUTS 3000 @@ -640,7 +710,7 @@ enum { B_CONSTRAINT_ADD_ACTION, B_CONSTRAINT_ADD_LOCKTRACK, B_CONSTRAINT_ADD_FOLLOWPATH, - B_CONSTRAINT_ADD_DISTANCELIMIT, + B_CONSTRAINT_ADD_DISTLIMIT, B_CONSTRAINT_ADD_STRETCHTO, B_CONSTRAINT_ADD_LOCLIMIT, B_CONSTRAINT_ADD_ROTLIMIT, @@ -649,6 +719,7 @@ enum { B_CONSTRAINT_ADD_CHILDOF, B_CONSTRAINT_ADD_PYTHON, B_CONSTRAINT_ADD_CLAMPTO, + B_CONSTRAINT_ADD_TRANSFORM, B_CONSTRAINT_INF }; @@ -675,7 +746,7 @@ enum { #define B_EFFECTSBUTS 3500 -#define B_AUTOTIMEOFS 3403 +#define B_AUTOTIMEOFS 3403 /* see B_OFSTIMEOFS, B_RANDTIMEOFS also */ #define B_FRAMEMAP 3404 #define B_NEWEFFECT 3405 #define B_PREVEFFECT 3406 @@ -690,6 +761,29 @@ enum { #define B_FIELD_CHANGE 3415 #define B_PAF_SET_VG 3416 #define B_PAF_SET_VG1 3417 +#define B_PARTBROWSE 3418 +#define B_PARTDELETE 3419 +#define B_PARTALONE 3420 +#define B_PARTLOCAL 3421 +#define B_PARTAUTONAME 3422 +#define B_PART_ALLOC 3423 +#define B_PART_DISTR 3424 +#define B_PART_INIT 3425 +#define B_PART_RECALC 3426 +#define B_PART_REDRAW 3427 +#define B_PARTTYPE 3428 +#define B_PARTACT 3429 +#define B_PARTTARGET 3430 +#define B_PART_ALLOC_CHILD 3431 +#define B_PART_DISTR_CHILD 3432 +#define B_PART_INIT_CHILD 3433 +#define B_PART_RECALC_CHILD 3434 +#define B_PART_EDITABLE 3435 +#define B_PART_REKEY 3436 +#define B_PART_ENABLE 3437 +#define B_OFSTIMEOFS 3438 /* see B_AUTOTIMEOFS too */ +#define B_RANDTIMEOFS 3439 +#define B_PART_REDRAW_DEPS 3440 #define B_MODIFIER_BUTS 3600 @@ -700,7 +794,9 @@ enum { #define B_NODE_BUTS 4000 /* 400 slots reserved, we want an exec event for each node */ #define B_NODE_LOADIMAGE 3601 -#define B_NODE_TREE_EXEC 3602 +#define B_NODE_SETIMAGE 3602 +#define B_NODE_TREE_EXEC 3603 + /* exec should be last in this list */ #define B_NODE_EXEC 3610 diff --git a/source/blender/include/datatoc.h b/source/blender/include/datatoc.h index d7a1aa5c78c..7afd4428d70 100644 --- a/source/blender/include/datatoc.h +++ b/source/blender/include/datatoc.h @@ -44,6 +44,9 @@ extern char datatoc_Bfs[]; extern int datatoc_blenderbuttons_size; extern char datatoc_blenderbuttons[]; +extern int datatoc_prvicons_size; +extern char datatoc_prvicons[]; + extern int datatoc_Bfont_size; extern char datatoc_Bfont[]; diff --git a/source/blender/include/editmesh.h b/source/blender/include/editmesh.h index 50115e52a21..1b2d91e22b8 100644 --- a/source/blender/include/editmesh.h +++ b/source/blender/include/editmesh.h @@ -90,6 +90,7 @@ extern int convex(float *v1, float *v2, float *v3, float *v4); /* ******************* editmesh_mods.c */ extern EditEdge *findnearestedge(int *dist); +extern void EM_automerge(int update); /** * findnearestvert @@ -104,5 +105,6 @@ extern EditVert *findnearestvert(int *dist, short sel, short strict); /* ******************* editmesh_tools.c */ + #endif diff --git a/source/blender/include/interface.h b/source/blender/include/interface.h index d7be02c6fc5..d8e779b9af8 100644 --- a/source/blender/include/interface.h +++ b/source/blender/include/interface.h @@ -230,7 +230,7 @@ extern void ui_draw_but(uiBut *but); extern void ui_rasterpos_safe(float x, float y, float aspect); extern void ui_draw_tria_icon(float x, float y, float aspect, char dir); extern void ui_draw_anti_x(float x1, float y1, float x2, float y2); - +extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select); #endif diff --git a/source/blender/include/multires.h b/source/blender/include/multires.h index 069dbee802f..e4726c02d7e 100644 --- a/source/blender/include/multires.h +++ b/source/blender/include/multires.h @@ -43,37 +43,17 @@ struct uiBlock; int multires_test(); int multires_level1_test(); -struct MultiresLevel *multires_level_n(struct Multires *mr, int n); - void multires_draw_interface(struct uiBlock *block, unsigned short cx, unsigned short cy); -void multires_disp_map(void *, void*); void multires_make(void *ob, void *me); void multires_delete(void *ob, void *me); -struct Multires *multires_copy(struct Multires *orig); -void multires_free(struct Multires *mr); -void multires_free_level(struct MultiresLevel *lvl); +void multires_level_to_editmesh(struct Object *ob, struct Mesh *me, const int render); +void multires_finish_mesh_update(struct Object *ob); +void multires_subdivide(void *ob, void *me); void multires_del_lower(void *ob, void *me); void multires_del_higher(void *ob, void *me); -void multires_add_level(void *ob, void *me); void multires_set_level_cb(void *ob, void *me); -void multires_set_level(struct Object *ob, struct Mesh *me, const int render); -void multires_update_levels(struct Mesh *me, const int render); -void multires_level_to_mesh(struct Object *ob, struct Mesh *me, const int render); -void multires_calc_level_maps(struct MultiresLevel *lvl); -void multires_edge_level_update(void *ob, void *me); +void multires_edge_level_update_cb(void *ob, void *me); int multires_modifier_warning(); -/* multires-firstlevel.c */ -/* Generic */ -void multires_update_first_level(struct Mesh *me, struct EditMesh *em); -void multires_update_customdata(struct MultiresLevel *lvl1, struct CustomData *src, - struct CustomData *dst, const int type); -void multires_customdata_to_mesh(struct Mesh *me, struct EditMesh *em, struct MultiresLevel *lvl, - struct CustomData *src, struct CustomData *dst, const int type); -void multires_del_lower_customdata(struct Multires *mr, struct MultiresLevel *cr_lvl); - -void multires_add_layer(struct Mesh *me, struct CustomData *cd, const int type, const int n); -void multires_delete_layer(struct Mesh *me, struct CustomData *cd, const int type, int n); - #endif diff --git a/source/blender/include/mydevice.h b/source/blender/include/mydevice.h index 9a8d154e030..949c9f57851 100644 --- a/source/blender/include/mydevice.h +++ b/source/blender/include/mydevice.h @@ -257,6 +257,8 @@ #define REDRAWANIM 0x4037 #define REDRAWNODE 0x4038 #define RECALC_COMPOSITE 0x4039 +#define REDRAWMARKER 0x4040 /* all views that display markers */ +#define REDRAWVIEW3D_IMAGE 0x4041 #endif /* !__MYDEVICE_H__ */ diff --git a/source/blender/include/reeb.h b/source/blender/include/reeb.h new file mode 100644 index 00000000000..c8352aedec5 --- /dev/null +++ b/source/blender/include/reeb.h @@ -0,0 +1,127 @@ +/** + * $Id: + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. The Blender + * Foundation also sells licenses for use in proprietary software under + * the Blender License. See http://www.blender.org/BL/ for information + * about this. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * Contributor(s): Martin Poirier + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#ifndef REEB_H_ +#define REEB_H_ + +#include "DNA_listBase.h" + +struct EdgeHash; +struct ReebArc; +struct ReebEdge; +struct ReebNode; + +typedef struct ReebGraph { + ListBase arcs; + ListBase nodes; + int totnodes; + struct EdgeHash *emap; +} ReebGraph; + +typedef struct EmbedBucket { + float val; + int nv; + float p[3]; +} EmbedBucket; + +typedef struct ReebNode { + struct ReebNode *next, *prev; + struct ReebArc **arcs; + int index; + int degree; + float weight; + float p[3]; + int flags; +} ReebNode; + +typedef struct ReebEdge { + struct ReebEdge *next, *prev; + struct ReebArc *arc; + struct ReebNode *v1, *v2; + struct ReebEdge *nextEdge; +} ReebEdge; + +typedef struct ReebArc { + struct ReebArc *next, *prev; + ListBase edges; + struct ReebNode *v1, *v2; + struct EmbedBucket *buckets; + int bcount; + int flags; +} ReebArc; + +typedef struct ReebArcIterator { + struct ReebArc *arc; + int index; + int start; + int end; + int stride; +} ReebArcIterator; + +struct EditMesh; + +int weightToHarmonic(struct EditMesh *em); +int weightFromDistance(struct EditMesh *em); +int weightFromLoc(struct EditMesh *me, int axis); +void weightToVCol(struct EditMesh *em); +void renormalizeWeight(struct EditMesh *em, float newmax); + +ReebGraph * generateReebGraph(struct EditMesh *me, int subdivisions); +void freeGraph(ReebGraph *rg); +void exportGraph(ReebGraph *rg, int count); + +#define OTHER_NODE(arc, node) ((arc->v1 == node) ? arc->v2 : arc->v1) + +void initArcIterator(struct ReebArcIterator *iter, struct ReebArc *arc, struct ReebNode *head); +void initArcIterator2(struct ReebArcIterator *iter, struct ReebArc *arc, int start, int end); +struct EmbedBucket * nextBucket(struct ReebArcIterator *iter); + +/* Filtering */ +void filterNullReebGraph(ReebGraph *rg); +int filterExternalReebGraph(ReebGraph *rg, float threshold); +int filterInternalReebGraph(ReebGraph *rg, float threshold); + +/* Post-Build processing */ +void repositionNodes(ReebGraph *rg); +void postprocessGraph(ReebGraph *rg, char mode); +void removeNormalNodes(ReebGraph *rg); + +/* Graph processing */ +void buildAdjacencyList(ReebGraph *rg); + +void sortNodes(ReebGraph *rg); +void sortArcs(ReebGraph *rg); + +int subtreeDepth(ReebNode *node, ReebArc *rootArc); +int countConnectedArcs(ReebGraph *rg, ReebNode *node); +int hasAdjacencyList(ReebGraph *rg); +int isGraphCyclic(ReebGraph *rg); + +/* Sanity check */ +void verifyBuckets(ReebGraph *rg); + +#endif /*REEB_H_*/ diff --git a/source/blender/include/transform.h b/source/blender/include/transform.h index 6f3ba36a497..cfe85916eb4 100644 --- a/source/blender/include/transform.h +++ b/source/blender/include/transform.h @@ -44,6 +44,8 @@ struct NumInput; struct Object; struct View3D; struct ScrArea; +struct bPose; +struct bConstraint; typedef struct NDofInput { @@ -127,7 +129,7 @@ typedef struct TransDataExtension { float iquat[4]; /* Initial rotation quaternion */ float *size; /* Size of the data to transform (Faculative) */ float isize[3]; /* Initial size */ - float obmat[3][3]; /* Object matrix */ + float obmat[4][4]; /* Object matrix */ } TransDataExtension; typedef struct TransData2D { @@ -148,6 +150,7 @@ typedef struct TransData { float smtx[3][3]; /* Transformation matrix from global space to data space */ float axismtx[3][3];/* Axis orientation matrix of the data */ struct Object *ob; + struct bConstraint *con; /* for objects/bones, the first constraint in its constraint stack */ TransDataExtension *ext; /* for objects, poses. 1 single malloc per TransInfo! */ TransDataIpokey *tdi; /* for objects, ipo keys. per transdata a malloc */ void *tdmir; /* mirrored element pointer, in editmode mesh to EditVert */ @@ -238,7 +241,7 @@ typedef struct TransInfo { // for manipulator exceptions, like scaling using center point, drawing help lines #define T_USES_MANIPULATOR (1 << 7) -/* restrictions flags */ + /* restrictions flags */ #define T_ALL_RESTRICTIONS ((1 << 8)|(1 << 9)|(1 << 10)) #define T_NO_CONSTRAINT (1 << 8) #define T_NULL_ONE (1 << 9) @@ -247,14 +250,17 @@ typedef struct TransInfo { #define T_PROP_EDIT (1 << 11) #define T_PROP_CONNECTED (1 << 12) -/* if MMB is pressed or not */ + /* if MMB is pressed or not */ #define T_MMB_PRESSED (1 << 13) #define T_V3D_ALIGN (1 << 14) -#define T_2D_EDIT (1 << 15) /* for 2d views like uv or ipo */ + /* for 2d views like uv or ipo */ +#define T_2D_EDIT (1 << 15) #define T_CLIP_UV (1 << 16) #define T_FREE_CUSTOMDATA (1 << 17) + /* auto-ik is on */ +#define T_AUTOIK (1 << 18) /* ******************************************************************************** */ @@ -270,14 +276,19 @@ typedef struct TransInfo { /* transdata->flag */ #define TD_SELECTED 1 -#define TD_NOACTION 2 -#define TD_USEQUAT 4 -#define TD_NOTCONNECTED 8 -#define TD_SINGLESIZE 16 /* used for scaling of MetaElem->rad */ +#define TD_ACTIVE (1 << 1) +#define TD_NOACTION (1 << 2) +#define TD_USEQUAT (1 << 3) +#define TD_NOTCONNECTED (1 << 4) +#define TD_SINGLESIZE (1 << 5) /* used for scaling of MetaElem->rad */ #ifdef WITH_VERSE -#define TD_VERSE_OBJECT 32 -#define TD_VERSE_VERT 64 + #define TD_VERSE_OBJECT (1 << 6) + #define TD_VERSE_VERT (1 << 7) #endif +#define TD_TIMEONLY (1 << 8) +#define TD_NOCENTER (1 << 9) +#define TD_NO_EXT (1 << 10) /* ext abused for particle key timing */ +#define TD_SKIP (1 << 11) /* don't transform this data */ /* transsnap->status */ #define SNAP_ON 1 @@ -292,6 +303,7 @@ typedef struct TransInfo { #define SNAP_CLOSEST 0 #define SNAP_CENTER 1 #define SNAP_MEDIAN 2 +#define SNAP_ACTIVE 3 void checkFirstTime(void); @@ -304,6 +316,7 @@ void convertVecToDisplayNum(float *vec, float *num); void convertDisplayNumToVec(float *num, float *vec); void initWarp(TransInfo *t); +int handleEventWarp(TransInfo *t, unsigned short event, short val); int Warp(TransInfo *t, short mval[2]); void initShear(TransInfo *t); @@ -337,6 +350,13 @@ int Trackball(TransInfo *t, short mval[2]); void initPushPull(TransInfo *t); int PushPull(TransInfo *t, short mval[2]); +void initBevel(TransInfo *t); +int handleEventBevel(TransInfo *t, unsigned short evenl, short val); +int Bevel(TransInfo *t, short mval[2]); + +void initBevelWeight(TransInfo *t); +int BevelWeight(TransInfo *t, short mval[2]); + void initCrease(TransInfo *t); int Crease(TransInfo *t, short mval[2]); @@ -349,15 +369,35 @@ int BoneEnvelope(TransInfo *t, short mval[2]); void initBoneRoll(TransInfo *t); int BoneRoll(TransInfo *t, short mval[2]); +void initTimeTranslate(TransInfo *t); +int TimeTranslate(TransInfo *t, short mval[2]); + +void initTimeSlide(TransInfo *t); +int TimeSlide(TransInfo *t, short mval[2]); + +void initTimeScale(TransInfo *t); +int TimeScale(TransInfo *t, short mval[2]); + +void initBakeTime(TransInfo *t); +int BakeTime(TransInfo *t, short mval[2]); + +void initMirror(TransInfo *t); +int Mirror(TransInfo *t, short mval[2]); + +void initAlign(TransInfo *t); +int Align(TransInfo *t, short mval[2]); + /*********************** transform_conversions.c ********** */ struct ListBase; +void flushTransIpoData(TransInfo *t); void flushTransUVs(TransInfo *t); +void flushTransParticles(TransInfo *t); int clipUVTransform(TransInfo *t, float *vec, int resize); /*********************** exported from transform_manipulator.c ********** */ void draw_manipulator_ext(struct ScrArea *sa, int type, char axis, int col, float vec[3], float mat[][3]); int calc_manipulator_stats(struct ScrArea *sa); -float get_drawsize(struct View3D *v3d); +float get_drawsize(struct View3D *v3d, float *co); /*********************** TransData Creation and General Handling *********** */ void createTransData(TransInfo *t); @@ -365,6 +405,13 @@ void sort_trans_data_dist(TransInfo *t); void add_tdi_poin(float *poin, float *old, float delta); void special_aftertrans_update(TransInfo *t); +void transform_autoik_update(TransInfo *t, short mode); + +/* auto-keying stuff used by special_aftertrans_update */ +short autokeyframe_cfra_can_key(struct Object *ob); +void autokeyframe_ob_cb_func(struct Object *ob, int tmode); +void autokeyframe_pose_cb_func(struct Object *ob, int tmode, short targetless_ik); + /*********************** Constraints *****************************/ void getConstraintMatrix(TransInfo *t); @@ -428,6 +475,7 @@ void calculateCenterBound(TransInfo *t); void calculateCenterMedian(TransInfo *t); void calculateCenterCursor(TransInfo *t); +void calculateCenterCursor2D(TransInfo *t); void calculatePropRatio(TransInfo *t); void getViewVector(float coord[3], float vec[3]); @@ -455,5 +503,30 @@ int handleNDofInput(NDofInput *n, unsigned short event, short val); #define NDOF_CANCEL 4 +/*********************** TransSpace ******************************/ + +int manageObjectSpace(int confirm, int set); +int manageMeshSpace(int confirm, int set); + +/* Those two fill in mat and return non-zero on success */ +int createSpaceNormal(float mat[3][3], float normal[3]); +int createSpaceNormalTangent(float mat[3][3], float normal[3], float tangent[3]); + +int addMatrixSpace(float mat[3][3], char name[]); +int addObjectSpace(struct Object *ob); +void applyTransformOrientation(void); + + +#define ORIENTATION_NONE 0 +#define ORIENTATION_NORMAL 1 +#define ORIENTATION_VERT 2 +#define ORIENTATION_EDGE 3 +#define ORIENTATION_FACE 4 + +int getTransformOrientation(float normal[3], float plane[3], int activeOnly); +int createSpaceNormal(float mat[3][3], float normal[3]); +int createSpaceNormalTangent(float mat[3][3], float normal[3], float tangent[3]); + #endif + |