diff options
Diffstat (limited to 'source/blender/include')
88 files changed, 6882 insertions, 0 deletions
diff --git a/source/blender/include/BDR_drawaction.h b/source/blender/include/BDR_drawaction.h new file mode 100644 index 00000000000..7cff1089c4d --- /dev/null +++ b/source/blender/include/BDR_drawaction.h @@ -0,0 +1,48 @@ +/** + * $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 ***** + */ + +#ifndef BDR_DRAWACTION_H +#define BDR_DRAWACTION_H + +struct BezTriple; +struct Ipo; +struct gla2DDrawInfo; +struct bAction; +struct Object; + +void draw_cfra_action(void); +void draw_bevel_but(int x, int y, int w, int h, int sel); +void draw_ipo_channel(struct gla2DDrawInfo *di, struct Ipo *ipo, int flags, float ypos); +void draw_action_channel(struct gla2DDrawInfo *di, struct bAction *act, int flags, float ypos); +void draw_object_channel(struct gla2DDrawInfo *di, struct Object *ob, int flags, float ypos); + +#endif /* BDR_DRAWACTION_H */ diff --git a/source/blender/include/BDR_drawmesh.h b/source/blender/include/BDR_drawmesh.h new file mode 100644 index 00000000000..2aede9b5143 --- /dev/null +++ b/source/blender/include/BDR_drawmesh.h @@ -0,0 +1,81 @@ +/** + * $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 ***** + */ + +#ifndef BDR_DRAWMESH_H +#define BDR_DRAWMESH_H + +struct Image; +struct TFace; +struct Object; +struct Mesh; + +/** + * Enables or disable mipmapping for realtime images (textures). + * Note that this will will destroy all texture bindings in OpenGL. + * @see free_realtime_image() + * @param mipmap Turn mipmapping on (mipmap!=0) or off (mipmap==0). + */ +void set_mipmap(int mipmap); + +/** + * Returns the current setting for mipmapping. + */ +int get_mipmap(void); + +/** + * Enables or disable linear mipmap setting for realtime images (textures). + * Note that this will will destroy all texture bindings in OpenGL. + * @see free_realtime_image() + * @param mipmap Turn linear mipmapping on (linear!=0) or off (linear==0). + */ +void set_linear_mipmap(int linear); + +/** + * Returns the current setting for linear mipmapping. + */ +int get_linear_mipmap(void); + +/** + * Resets the realtime image cache variables. + */ +void clear_realtime_image_cache(); + +void free_realtime_image(struct Image *ima); +void free_all_realtime_images(void); +void make_repbind(struct Image *ima); +int set_tpage(struct TFace *tface); +void spack(unsigned int ucol); +void draw_tfaces3D(struct Object *ob, struct Mesh *me); +void draw_tface_mesh(struct Object *ob, struct Mesh *me, int dt); +void init_realtime_GL(void); + +#endif /* BDR_DRAWMESH_H */ diff --git a/source/blender/include/BDR_drawobject.h b/source/blender/include/BDR_drawobject.h new file mode 100644 index 00000000000..a07c17f3f59 --- /dev/null +++ b/source/blender/include/BDR_drawobject.h @@ -0,0 +1,67 @@ +/** + * $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 ***** + */ + +#ifndef BDR_DRAWOBJECT_H +#define BDR_DRAWOBJECT_H + +#ifdef __cplusplus +extern "C" { +#endif + + +struct Object; +struct Nurb; +struct Lamp; +struct ListBase; +struct BoundBox; +struct Base; + +void init_draw_rects(void); +void helpline(float *vec); +void drawaxes(float size); +void drawcamera(struct Object *ob); +void calc_lattverts_ext(void); +void calc_meshverts(void); +void calc_meshverts_ext(void); +void calc_nurbverts_ext(void); +void tekenvertices(short sel); +void tekenvertices_ext(int mode); +void drawcircball(float *cent, float rad, float tmat[][4]); +void get_local_bounds(struct Object *ob, float *centre, float *size); +void draw_object(struct Base *base); +void draw_object_ext(struct Base *base); + +#ifdef __cplusplus +} +#endif + +#endif /* BDR_DRAWOBJECT_H */ diff --git a/source/blender/include/BDR_editcurve.h b/source/blender/include/BDR_editcurve.h new file mode 100644 index 00000000000..991d176e286 --- /dev/null +++ b/source/blender/include/BDR_editcurve.h @@ -0,0 +1,93 @@ +/** + * $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 ***** + */ + +#ifndef BDR_EDITCURVE_H +#define BDR_EDITCURVE_H + +struct Curve; +struct Nurb; +struct BezTriple; +struct BPoint; +struct BezTripleNurb; + +short isNurbsel(struct Nurb *nu); +int isNurbsel_count(struct Nurb *nu); +void printknots(void); +void load_editNurb(void); +void make_editNurb(void); +void remake_editNurb(void); +void separate_nurb(void); +short isNurbselUV(struct Nurb *nu, int *u, int *v, int flag); +void setflagsNurb(short flag); +void rotateflagNurb(short flag, float *cent, float rotmat[][3]); +void translateflagNurb(short flag, float *vec); +void weightflagNurb(short flag, float w, int mode); +void deleteflagNurb(short flag); +short extrudeflagNurb(int flag); +void adduplicateflagNurb(short flag); +void switchdirectionNurb2(void); +void switchdirection_knots(float *base, int tot); +void deselectall_nurb(void); +void hideNurb(int swap); +void revealNurb(void); +void selectswapNurb(void); +void subdivideNurb(void); +short findnearestNurbvert(short sel, struct Nurb **nurb, + struct BezTriple **bezt, struct BPoint **bp); +void findselectedNurbvert(struct Nurb **nu, struct BezTriple **bezt, + struct BPoint **bp); +void setsplinetype(short type); +void rotate_direction_nurb(struct Nurb *nu); +int is_u_selected(struct Nurb *nu, int u); +void make_selection_list_nurb(void); +void merge_2_nurb(struct Nurb *nu1, struct Nurb *nu2); +void merge_nurb(void); +void addsegment_nurb(void); +void mouse_nurb(void); +void spinNurb(float *dvec, short mode); +void addvert_Nurb(int mode); +void extrude_nurb(void); +void makecyclicNurb(void); +void selectconnected_nurb(void); +void selectrow_nurb(void); +void adduplicate_nurb(void); +void delNurb(void); +void join_curve(int type); +struct Nurb *addNurbprim(int type, int stype, int newname); +void default_curve_ipo(struct Curve *cu); +void add_primitiveCurve(int stype); +void add_primitiveNurb(int type); +void clear_tilt(void); +void clever_numbuts_curve(void); +int bezt_compare (const void *e1, const void *e2); + +#endif /* BDR_EDITCURVE_H */ diff --git a/source/blender/include/BDR_editface.h b/source/blender/include/BDR_editface.h new file mode 100644 index 00000000000..4f45515cca9 --- /dev/null +++ b/source/blender/include/BDR_editface.h @@ -0,0 +1,56 @@ +/** + * $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 ***** + */ + +#ifndef BDR_EDITFACE_H +#define BDR_EDITFACE_H + +struct TFace; +struct Mesh; + +void set_lasttface(void); +void default_uv(float uv[][2], float size); +void default_tface(struct TFace *tface); +void make_tfaces(struct Mesh *me); +void reveal_tface(void); +void hide_tface(void); +void select_linked_tfaces(void); +void deselectall_tface(void); +void rotate_uv_tface(void); +struct TFace* face_pick(struct Mesh *me, short x, short y); +void face_select(void); +void face_borderselect(void); +float CalcNormUV(float *a, float *b, float *c); +void uv_autocalc_tface(void); +void set_faceselect(void); +void face_draw(void); + +#endif /* BDR_EDITFACE_H */ diff --git a/source/blender/include/BDR_editmball.h b/source/blender/include/BDR_editmball.h new file mode 100644 index 00000000000..3557266a55e --- /dev/null +++ b/source/blender/include/BDR_editmball.h @@ -0,0 +1,49 @@ +/** + * $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 ***** + */ + +#ifndef BDR_EDITMBALL_H +#define BDR_EDITMBALL_H + +void make_editMball(void); +void load_editMball(void); + +/** + * @attention The argument is discarded. It is there for + * compatibility. + */ +void add_primitiveMball(int); +void deselectall_mball(void); +void mouse_mball(void); +void adduplicate_mball(void); +void delete_mball(void); + +#endif /* BDR_EDITMBALL_H */ diff --git a/source/blender/include/BDR_editobject.h b/source/blender/include/BDR_editobject.h new file mode 100644 index 00000000000..ed88334cbc8 --- /dev/null +++ b/source/blender/include/BDR_editobject.h @@ -0,0 +1,119 @@ +/** + * $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 ***** + */ + +#ifndef BDR_EDITOBJECT_H +#define BDR_EDITOBJECT_H + +struct TransVert; +struct Object; +struct TransOb; +struct Tex; +struct Material; +struct Base; + +void add_object_draw(int type); +void free_and_unlink_base(struct Base *base); +void delete_obj(int ok); +void make_track(void); +void apply_obmat(struct Object *ob); +void clear_parent(void); +void clear_track(void); +void clear_object(char mode); +void reset_slowparents(void); +void set_slowparent(void); +void make_vertex_parent(void); +int test_parent_loop(struct Object *par, struct Object *ob); +void make_parent(void); + +void make_displists_by_parent(struct Object *ob); +void exit_editmode(int freedata); +void check_editmode(int type); +void docentre(void); +void docentre_new(void); +void docentre_cursor(void); +void movetolayer(void); +void special_editmenu(void); +void convertmenu(void); +void copymenu_properties(struct Object *ob); +void copymenu(void); +void link_to_scene(unsigned short nr); +void linkmenu(void); +void make_duplilist_real(void); +void apply_object(void); +void ob_to_transob(struct Object *ob, struct TransOb *tob); +void ob_to_tex_transob(struct Object *ob, struct TransOb *tob); +void make_trans_objects(void); +void enter_editmode(void); +void copymenu_logicbricks(struct Object *ob); +void clearbaseflags_for_editing(void); +void make_trans_verts(float *min, float *max, int mode); +void draw_prop_circle(void); +void set_proportional_weight(struct TransVert *tv, float *min, float *max); +void special_trans_update(int keyflags); +void special_aftertrans_update(char mode, int flip, short canceled, int keyflags); +void calc_trans_verts(void); +void apply_keyb_grid(float *val, float fac1, float fac2, float fac3, int invert); +void compatible_eul(float *eul, float *oldrot); +void headerprint(char *str); +void add_ipo_tob_poin(float *poin, float *old, float delta); +void restore_tob(struct TransOb *tob); +int cylinder_intersect_test(void); +int sphere_intersect_test(void); +int my_clock(void); +void transform(int mode); +void std_rmouse_transform(void (*xf_func)(int)); +void rightmouse_transform(void); +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 do_single_tex_user(struct Tex **from); +void single_tex_users_expand(void); +void single_mat_users_expand(void); +void single_user(void); +void make_local(void); +void adduplicate(float *dtrans); +void selectlinks(void); +void image_aspect(void); +void set_ob_ipoflags(void); +void select_select_keys(void); +int verg_hoogste_zco(const void *a1, const void *a2); +void sortfaces(void); +int vergbaseco(const void *a1, const void *a2); +void auto_timeoffs(void); +void texspace_edit(void); +void first_base(void); +void make_displists_by_obdata(void *obdata); + + +#endif /* BDR_EDITOBJECT_H */ + diff --git a/source/blender/include/BDR_isect.h b/source/blender/include/BDR_isect.h new file mode 100644 index 00000000000..3af6ea6ea17 --- /dev/null +++ b/source/blender/include/BDR_isect.h @@ -0,0 +1,92 @@ +/** + * $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 ***** + * Some geometrical operations (intersection and such). + */ + +#ifndef BDR_ISECT_H +#define BDR_ISECT_H + + +struct EditVert; +struct EditVlak; + +/** + * Intersect a face and a linesegment + * + * @param v1 Vertex 1 of the face + * @param v2 Vertex 2 of the face + * @param v3 Vertex 3 of the face + * @param v4 Point 1 on the line + * @param v5 Point 2 on the line + * @param vec Location of the intersection (if it exists) + * + * @retval -1 colliniar + * @retval 0 no intersection + * @retval 1 exact intersection of edge and line + * @retval 2 cross-intersection + */ +short IsectFL(float *v1, float *v2, float *v3, + float *v4, float *v5, float *vec); + +/** + * Intersect two lines + * + * @param v1 Point 1 of line 1 + * @param v2 Point 2 of line 1 + * @param v3 Point 1 of line 2 + * @param v4 Point 2 of line 2 + * @param cox projection (?) + * @param coy projection (?) + * @param labda answer (?) + * @param mu answer (?) + * @param vec answer (?) + * + * @retval -1 colliniar + * @retval 0 no intersection of segments + * @retval 1 exact intersection of segments + * @retval 2 cross-intersection of segments + */ +short IsectLL(float *v1, float *v2, float *v3, float *v4, + short cox, short coy, + float *labda, float *mu, float *vec); + +int count_comparevlak(struct EditVlak *vl1, struct EditVlak *vl2); +void empty(void); +void addisedge(float *vec, short* edflag, + struct EditVlak *vl1, struct EditVlak *vl2, + short tel); +void oldedsort_andmake(struct EditVert **olded, int edcount, int proj); +short maxco(float *v1, float *v2); +void newfillvert(struct EditVert *v1); +void addisfaces(struct EditVlak *evl); +void intersect_mesh(void); + +#endif /* BDR_ISECT_H */ diff --git a/source/blender/include/BDR_vpaint.h b/source/blender/include/BDR_vpaint.h new file mode 100644 index 00000000000..7f8fda21e92 --- /dev/null +++ b/source/blender/include/BDR_vpaint.h @@ -0,0 +1,58 @@ +/** + * $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 ***** + */ + +#ifndef BDR_VPAINT_H +#define BDR_VPAINT_H + +struct Mesh; +struct MDeformVert; /* __NLA */ +unsigned int vpaint_get_current_col(void); +unsigned int rgba_to_mcol(float r, float g, float b, float a); +void do_shared_vertexcol(struct Mesh *me); +void make_vertexcol(void); +void copy_vpaint_undo(unsigned int *mcol, int tot); +void vpaint_undo(void); +void clear_vpaint(void); +void clear_vpaint_selectedfaces(void); +void vpaint_dogamma(void); +void sample_vpaint(void); +void init_vertexpaint(void); +void free_vertexpaint(void); +void vertex_paint(void); +void set_vpaint(void); +void set_wpaint(void); + +void weight_paint(void); +void wpaint_undo (void); +void copy_wpaint_undo (struct MDeformVert *dverts, int dcount); + +#endif /* BDR_VPAINT_H */ diff --git a/source/blender/include/BIF_buttons.h b/source/blender/include/BIF_buttons.h new file mode 100644 index 00000000000..450a39929a9 --- /dev/null +++ b/source/blender/include/BIF_buttons.h @@ -0,0 +1,40 @@ +/** + * $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 ***** + */ +#ifndef BIF_BUTTONS_H +#define BIF_BUTTONS_H + +struct Base; + +extern void do_blenderbuttons(unsigned short event); +extern void redraw_test_buttons(struct Base *new); + +#endif diff --git a/source/blender/include/BIF_drawimage.h b/source/blender/include/BIF_drawimage.h new file mode 100644 index 00000000000..a6a01ad5cb2 --- /dev/null +++ b/source/blender/include/BIF_drawimage.h @@ -0,0 +1,49 @@ +/** + * $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 ***** + */ + +#ifndef BIF_DRAWIMAGE_H +#define BIF_DRAWIMAGE_H + +struct SpaceImage; + +void calc_image_view(struct SpaceImage *sima, char mode); +void drawimagespace(void); +void draw_tfaces(void); +void image_changed(struct SpaceImage *sima, int dotile); +void image_home(void); +void image_viewmove(void); +void rectwrite_part(int winxmin, int winymin, int winxmax, int winymax, int x1, int y1, int xim, int yim, float zoomx, float zoomy, unsigned int *rect); +void uvco_to_areaco(float *vec, short *mval); +void uvco_to_areaco_noclip(float *vec, short *mval); +void what_image(struct SpaceImage *sima); + +#endif diff --git a/source/blender/include/BIF_drawoops.h b/source/blender/include/BIF_drawoops.h new file mode 100644 index 00000000000..d580361be86 --- /dev/null +++ b/source/blender/include/BIF_drawoops.h @@ -0,0 +1,40 @@ +/** + * $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 ***** + */ + +#ifndef BIF_DRAWOOPS_H +#define BIF_DRAWOOPS_H + +void give_oopslink_line(Oops *oops, OopsLink *ol, float *v1, float *v2); +void mysbox(float x1, float y1, float x2, float y2); +void boundbox_oops(void); + +#endif diff --git a/source/blender/include/BIF_drawscene.h b/source/blender/include/BIF_drawscene.h new file mode 100644 index 00000000000..19c22bb4a5f --- /dev/null +++ b/source/blender/include/BIF_drawscene.h @@ -0,0 +1,33 @@ +/** + * $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 ***** + */ +struct Scene; +void set_scene(struct Scene *sce); diff --git a/source/blender/include/BIF_drawseq.h b/source/blender/include/BIF_drawseq.h new file mode 100644 index 00000000000..0e7b113d9b4 --- /dev/null +++ b/source/blender/include/BIF_drawseq.h @@ -0,0 +1,41 @@ +/** + * $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 ***** + */ + +#ifndef BIF_DRAWSEQ_H +#define BIF_DRAWSEQ_H + +struct Sequence; +void drawseqspace(void); +void drawseq(struct Sequence *seq); +void set_special_seq_update(int val); + +#endif diff --git a/source/blender/include/BIF_drawtext.h b/source/blender/include/BIF_drawtext.h new file mode 100644 index 00000000000..ab3c6223563 --- /dev/null +++ b/source/blender/include/BIF_drawtext.h @@ -0,0 +1,51 @@ +/** + * $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 ***** + */ + +#ifndef BIF_DRAWTEXT_H +#define BIF_DRAWTEXT_H + +struct ScrArea; +struct SpaceText; +struct Text; + +void unlink_text(struct Text *text); + +void init_textspace(struct ScrArea *sa); +void free_textspace(struct SpaceText *st); + +void txt_write_file(struct Text *text); +void add_text_fs(char *file); + +void free_txt_data(void); +void pop_space_text(struct SpaceText *st); + +#endif diff --git a/source/blender/include/BIF_editarmature.h b/source/blender/include/BIF_editarmature.h new file mode 100644 index 00000000000..fac2eae6bf0 --- /dev/null +++ b/source/blender/include/BIF_editarmature.h @@ -0,0 +1,116 @@ +/** + * $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 ***** + */ +#ifndef BIF_EDITARMATURE_H +#define BIF_EDITARMATURE_H + +struct Object; +struct Bone; +struct bArmature; + +typedef struct EditBone +{ + struct EditBone *next, *prev; + struct EditBone *parent;/* Editbones have a one-way link (i.e. children refer + to parents. This is converted to a two-way link for + normal bones when leaving editmode. */ + void *temp; /* Used to store temporary data */ + + char name[32]; + char oldname[32]; + float roll; /* Roll along axis. We'll ultimately use the axis/angle method + for determining the transformation matrix of the bone. The axis + is tail-head while roll provides the angle. Refer to Graphics + Gems 1 p. 466 (section IX.6) if it's not already in here somewhere*/ + + float head[3]; /* Orientation and length is implicit during editing */ + float tail[3]; + /* All joints are considered to have zero rotation with respect to + their parents. Therefore any rotations specified during the + animation are automatically relative to the bones' rest positions*/ + short sHead[2]; + short sTail[2]; + int flag; + + int parNr; /* Used for retrieving values from the menu system */ + /* Storage for transformation data used by the posing system. + Maybe a better solution would be to make bones a blenderObject + variant? Or perhaps to use a TOTALLY custom transformation scheme + for pose element, rather than trying to use the existing transObject + system? + */ + float dist, weight; + float loc[3], dloc[3]; + float size[3], dsize[3]; + float rot[3], drot[3]; + float quat[4], dquat[4]; + float obmat[4][4]; + + +} EditBone; + + +void adduplicate_armature(void); +void addvert_armature(void); +void add_primitiveArmature(int type); +void apply_rot_armature (struct Object *ob, float mat[3][3]); +void armaturebuts(void); +void clear_armature(struct Object *ob, char mode); +void clever_numbuts_armature (void); +void clever_numbuts_posearmature (void); +void delete_armature(void); +void deselectall_armature(void); +void deselectall_posearmature (int test); +void draw_armature(struct Object *ob); +void extrude_armature(void); +void free_editArmature(void); +void join_armature(void); +void load_editArmature(void); +char* make_bone_menu(struct bArmature *arm); +void make_bone_parent(void); +void make_editArmature(void); +void make_trans_bones (char mode); +void mousepose_armature(void); +void mouse_armature(void); +void remake_editArmature(void); +void selectconnected_armature(void); +void selectconnected_posearmature(void); +void select_bone_by_name (struct bArmature *arm, char *name, int select); +struct Bone *get_first_selected_bone (void); +void auto_align_armature(void); + +#define BONESEL_TIP 0x08000000 +#define BONESEL_ROOT 0x04000000 +#define BONESEL_BONE (BONESEL_TIP|BONESEL_ROOT) +#define BONESEL_NOSEL 0x80000000 /* Indicates a negative number */ + +#endif + diff --git a/source/blender/include/BIF_editconstraint.h b/source/blender/include/BIF_editconstraint.h new file mode 100644 index 00000000000..5d6d38fd529 --- /dev/null +++ b/source/blender/include/BIF_editconstraint.h @@ -0,0 +1,62 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITCONSTRAINT_H +#define BIF_EDITCONSTRAINT_H + +struct ListBase; +struct Object; +struct bConstraint; +struct bConstraintChannel; + +typedef struct ConstraintElement{ + struct ConstraintElement *next, *prev; + struct ConstraintElement *parent; + Object *ob; + int flag; + const char *substring; + void *subdata; +} ConstraintElement; + +struct bConstraintChannel *add_new_constraint_channel(const char *name); +struct bConstraint * add_new_constraint(void); +struct ListBase *get_constraint_client_channels (int forcevalid); +struct ListBase *get_constraint_client(char *name, short *clienttype, void** clientdata); +int test_constraints (struct Object *owner, const char *substring, int disable); +void test_scene_constraints (void); +void unique_constraint_name (struct bConstraint *con, struct ListBase *list); +void *new_constraint_data (short type); + +/* void unique_constraint_name (struct bConstraint *con, struct ListBase *list); */ + +#endif + diff --git a/source/blender/include/BIF_editdeform.h b/source/blender/include/BIF_editdeform.h new file mode 100644 index 00000000000..5fcd0473ce5 --- /dev/null +++ b/source/blender/include/BIF_editdeform.h @@ -0,0 +1,51 @@ +/** + * $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 ***** + */ + +#ifndef BIF_DEFORM_H +#define BIF_DEFORM_H + +struct Object; +struct MDeformVert; +struct MDeformWeight; +struct bDeformGroup; + +void unique_vertexgroup_name (struct bDeformGroup *dg, struct Object *ob); +void add_defgroup (struct Object *ob); +void del_defgroup (struct Object *ob); +void assign_verts_defgroup (void); +void remove_verts_defgroup (int allverts); +void sel_verts_defgroup (int select); +struct MDeformWeight *verify_defweight (struct MDeformVert *dv, int defgroup); +void verify_defgroups (struct Object *ob); + +#endif + diff --git a/source/blender/include/BIF_editfont.h b/source/blender/include/BIF_editfont.h new file mode 100644 index 00000000000..155e78d8a34 --- /dev/null +++ b/source/blender/include/BIF_editfont.h @@ -0,0 +1,48 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITFONT_H +#define BIF_EDITFONT_H + +void do_textedit(unsigned short event, short val, char ascii); +void make_editText(void); +void load_editText(void); +void remake_editText(void); +void free_editText(void); +/** + * @attention The argument is discarded. It is there for + * compatibility. + */ +void add_primitiveFont(int); +void to_upper(void); + +#endif diff --git a/source/blender/include/BIF_editgroup.h b/source/blender/include/BIF_editgroup.h new file mode 100644 index 00000000000..33a85839a49 --- /dev/null +++ b/source/blender/include/BIF_editgroup.h @@ -0,0 +1,38 @@ +/** + * $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 ***** + */ +struct Group; +void set_active_group(void); +void add_selected_to_group(void); +void rem_selected_from_group(void); +void group_menu(void); +void prev_group_key(struct Group *group); +void next_group_key(struct Group *group); diff --git a/source/blender/include/BIF_editika.h b/source/blender/include/BIF_editika.h new file mode 100644 index 00000000000..ccbb91b2120 --- /dev/null +++ b/source/blender/include/BIF_editika.h @@ -0,0 +1,37 @@ +/** + * $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 ***** + */ +struct Object; +void draw_ika(struct Object *ob, int sel); +void draw_ika_nrs(struct Object *ob, int type); +int extrude_ika(struct Object *ob, int add); +void delete_skeleton(void); +void make_skeleton(void); diff --git a/source/blender/include/BIF_editkey.h b/source/blender/include/BIF_editkey.h new file mode 100644 index 00000000000..724f935cab5 --- /dev/null +++ b/source/blender/include/BIF_editkey.h @@ -0,0 +1,62 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITKEY_H +#define BIF_EDITKEY_H + +struct Key; +struct KeyBlock; +struct Mesh; +struct Object; +struct Lattice; +struct Curve; + +void mesh_to_key(struct Mesh *me, struct KeyBlock *kb); +void key_to_mesh(struct KeyBlock *kb, struct Mesh *me); +void insert_meshkey(struct Mesh *me); + +void latt_to_key(struct Lattice *lt, struct KeyBlock *kb); +void key_to_latt(struct KeyBlock *kb, struct Lattice *lt); +void insert_lattkey(struct Lattice *lt); + +void curve_to_key(struct Curve *cu, struct KeyBlock *kb, ListBase *nurb); +void key_to_curve(struct KeyBlock *kb, struct Curve *cu, ListBase *nurb); +void insert_curvekey(struct Curve *cu); + +struct Key *give_current_key(struct Object *ob); +void showkeypos(struct Key *key, struct KeyBlock *kb); + +void deselectall_key(void); +void delete_key(void); +void move_keys(void); + +#endif diff --git a/source/blender/include/BIF_editlattice.h b/source/blender/include/BIF_editlattice.h new file mode 100644 index 00000000000..d7d8bcd272c --- /dev/null +++ b/source/blender/include/BIF_editlattice.h @@ -0,0 +1,44 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITLATTICE_H +#define BIF_EDITLATTICE_H + +void apply_lattice(void); +void free_editLatt(void); +void make_editLatt(void); +void load_editLatt(void); +void remake_editLatt(void); +void deselectall_Latt(void); +void mouse_lattice(void); + +#endif diff --git a/source/blender/include/BIF_editmesh.h b/source/blender/include/BIF_editmesh.h new file mode 100644 index 00000000000..9254a0db50b --- /dev/null +++ b/source/blender/include/BIF_editmesh.h @@ -0,0 +1,118 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITMESH_H +#define BIF_EDITMESH_H + +struct EditVlak; +struct EditEdge; +struct EditVert; +struct Mesh; +struct bDeformGroup; +struct View3D; + +void free_hashedgetab(void); +void fasterdraw(void); +void slowerdraw(void); +void vertexnoise(void); +void vertexsmooth(void); +void make_sticky(void); +void deselectall_mesh(void); + + /** Aligns the selected TFace's of @a me to the @a v3d, + * using the given axis (0-2). Can give a user error. + */ +void faceselect_align_view_to_selected(struct View3D *v3d, struct Mesh *me, int axis); + /** Aligns the selected faces or vertices of @a me to the @a v3d, + * using the given axis (0-2). Can give a user error. + */ +void editmesh_align_view_to_selected(struct View3D *v3d, int axis); + +struct EditVert *addvertlist(float *vec); +struct EditEdge *addedgelist(struct EditVert *v1, struct EditVert *v2); +struct EditVlak *addvlaklist(struct EditVert *v1, struct EditVert *v2, struct EditVert *v3, struct EditVert *v4, struct EditVlak *example); +struct EditEdge *findedgelist(struct EditVert *v1, struct EditVert *v2); + +void remedge(struct EditEdge *eed); + +int vlakselectedAND(struct EditVlak *evl, int flag); + +void recalc_editnormals(void); +void flip_editnormals(void); +void vertexnormals(int testflip); +/* this is currently only used by the python NMesh module: */ +void vertexnormals_mesh(struct Mesh *me, float *extverts); + +void make_editMesh(void); +void load_editMesh(void); +void free_editMesh(void); +void remake_editMesh(void); + +void convert_to_triface(int all); + +void righthandfaces(int select); + +void mouse_mesh(void); + +void selectconnected_mesh(void); +short extrudeflag(short flag,short type); +void rotateflag(short flag, float *cent, float rotmat[][3]); +void translateflag(short flag, float *vec); +short removedoublesflag(short flag, float limit); +void xsortvert_flag(int flag); +void hashvert_flag(int flag); +void subdivideflag(int flag, float rad, int beauty); +void adduplicateflag(int flag); +void extrude_mesh(void); +void adduplicate_mesh(void); +void split_mesh(void); +void separate_mesh(void); +void extrude_repeat_mesh(int steps, float offs); +void spin_mesh(int steps,int degr,float *dvec, int mode); +void screw_mesh(int steps,int turns); +void selectswap_mesh(void); +void addvert_mesh(void); +void addedgevlak_mesh(void); +void delete_mesh(void); +void add_primitiveMesh(int type); +void hide_mesh(int swap); +void reveal_mesh(void); +void beauty_fill(void); +void join_triangles(void); +void edge_flip(void); +void join_mesh(void); +void clever_numbuts_mesh(void); +void sort_faces(void); +void vertices_to_sphere(void); +void fill_mesh(void); + +#endif diff --git a/source/blender/include/BIF_editnla.h b/source/blender/include/BIF_editnla.h new file mode 100644 index 00000000000..ebcbd1eaa49 --- /dev/null +++ b/source/blender/include/BIF_editnla.h @@ -0,0 +1,38 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITNLA_H +#define BIF_EDITNLA_H + +void clever_numbuts_nla(void); + +#endif diff --git a/source/blender/include/BIF_editoops.h b/source/blender/include/BIF_editoops.h new file mode 100644 index 00000000000..7e76cc65ea5 --- /dev/null +++ b/source/blender/include/BIF_editoops.h @@ -0,0 +1,45 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITOOPS_H +#define BIF_EDITOOPS_H + +void borderselect_oops(void); +void deselect_all_area_oops(void); +void mouse_select_oops(void); +void select_backlinked_oops(void); +void select_linked_oops(void); +void set_select_flag_oops(void); +void swap_select_all_oops(void); +void transform_oops(int mode); + +#endif diff --git a/source/blender/include/BIF_editsca.h b/source/blender/include/BIF_editsca.h new file mode 100644 index 00000000000..93f43363ddf --- /dev/null +++ b/source/blender/include/BIF_editsca.h @@ -0,0 +1,40 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITSCA_H +#define BIF_EDITSCA_H + +void make_unique_prop_names(char *str); +void do_gamebuts(unsigned short event); +void gamebuts(void); + +#endif diff --git a/source/blender/include/BIF_editseq.h b/source/blender/include/BIF_editseq.h new file mode 100644 index 00000000000..e10a221c018 --- /dev/null +++ b/source/blender/include/BIF_editseq.h @@ -0,0 +1,59 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITSEQ_H +#define BIF_EDITSEQ_H + +struct Sequence; + +void add_duplicate_seq(void); +void add_sequence(int type); +void borderselect_seq(void); +void boundbox_seq(void); +void change_sequence(void); +void clear_last_seq(void); +void clever_numbuts_seq(void); +void del_seq(void); +void enter_meta(void); +struct Sequence* find_nearest_seq(int *hand); +int insert_gap(int gap, int cfra); +void make_meta(void); +void mouse_select_seq(void); +void no_gaps(void); +void seq_snapmenu(void); +void set_filter_seq(void); +void swap_select_seq(void); +void touch_seq_files(void); +void transform_seq(int mode); +void un_meta(void); + +#endif diff --git a/source/blender/include/BIF_editsima.h b/source/blender/include/BIF_editsima.h new file mode 100644 index 00000000000..f14f856a876 --- /dev/null +++ b/source/blender/include/BIF_editsima.h @@ -0,0 +1,38 @@ +/** + * $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 ***** + */ +void clever_numbuts_sima(void); +void borderselect_sima(void); +void mouseco_to_curtile(void); +void mouse_select_sima(void); +void select_swap_tface_uv(void); +void tface_do_clip(void); +void transform_tface_uv(int mode); diff --git a/source/blender/include/BIF_editsound.h b/source/blender/include/BIF_editsound.h new file mode 100644 index 00000000000..e4b730aedc8 --- /dev/null +++ b/source/blender/include/BIF_editsound.h @@ -0,0 +1,71 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITSOUND_H +#define BIF_EDITSOUND_H + +struct bSound; +struct bSample; +struct ListBase; +struct PackedFile; + +void sound_init_audio(void); +void sound_initialize_sounds(void); +void sound_exit_audio(void); +int sound_get_mixrate(void); + +void* sound_get_audiodevice(void); +void* sound_get_listener(void); + +int sound_set_sample(struct bSound* sound, struct bSample* sample); +int sound_sample_is_null(struct bSound* sound); +int sound_load_sample(struct bSound* sound); + +struct bSample* sound_find_sample(struct bSound* sound); +struct bSample* sound_new_sample(struct bSound* sound); + +struct bSound* sound_new_sound(char *name); +struct bSound* sound_make_copy(struct bSound* originalsound); +void sound_end_all_sounds(void); + +void sound_initialize_sample(struct bSound * sound); +void sound_load_samples(void); + +void sound_play_sound(struct bSound *sound); +void sound_stop_all_sounds(void); + +void sound_set_position(void *object, + struct bSound *sound, + float obmatrix[4][4]); + +#endif + diff --git a/source/blender/include/BIF_editview.h b/source/blender/include/BIF_editview.h new file mode 100644 index 00000000000..9c09103372f --- /dev/null +++ b/source/blender/include/BIF_editview.h @@ -0,0 +1,52 @@ +/** + * $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 ***** + */ + +#ifndef BIF_EDITVIEW_H +#define BIF_EDITVIEW_H + +struct Base; +struct Object; + +void arrows_move_cursor(unsigned short event); +void borderselect(void); +void circle_select(void); +void deselectall(void); +void draw_sel_circle(short *mval, short *mvalo, float rad, float rado, int selecting); +void fly(void); +int gesture(void); +void mouse_cursor(void); +void mouse_select(void); +void set_active_base(struct Base *base); +void set_active_object(struct Object *ob); +void set_render_border(void); + +#endif diff --git a/source/blender/include/BIF_fsmenu.h b/source/blender/include/BIF_fsmenu.h new file mode 100644 index 00000000000..c038360a874 --- /dev/null +++ b/source/blender/include/BIF_fsmenu.h @@ -0,0 +1,72 @@ +/** + * $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 ***** + * + */ + +#ifndef BSE_FSMENU_H +#define BSE_FSMENU_H + + /** Returns the number of entries in the Fileselect Menu */ +int fsmenu_get_nentries (void); + + /** Returns true if the fsmenu entry at @a index exists and + * is a seperator. + */ +char* fsmenu_is_entry_a_seperator (int index); + + /** Returns the fsmenu entry at @a index (or NULL if a bad index) + * or a seperator. + */ +char* fsmenu_get_entry (int index); + + /** Returns a new menu description string representing the + * fileselect menu. Should be free'd with MEM_freeN. + */ +char* fsmenu_build_menu (void); + + /** Append a seperator to the FSMenu, inserts always follow the + * last seperator. + */ +void fsmenu_append_seperator (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); + + /** Removes the fsmenu entry at the given @a index. */ +void fsmenu_remove_entry (int index); + + /** Free's all the memory associated with the fsmenu */ +void fsmenu_free (void); + +#endif diff --git a/source/blender/include/BIF_gl.h b/source/blender/include/BIF_gl.h new file mode 100644 index 00000000000..f5507d30170 --- /dev/null +++ b/source/blender/include/BIF_gl.h @@ -0,0 +1,70 @@ +/** + * $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 ***** + * os dependent include locations of gl.h + */ + +#ifndef BIF_GL_H +#define BIF_GL_H + + /* XXX, fixme zr... what is the deal here, + * is there a reason unices don't use the + * <> include? (they should) + */ +#if !defined(__APPLE__) && !defined(WIN32) +#include "GL/gl.h" +#include "GL/glu.h" +#else +#include <GL/gl.h> +#include <GL/glu.h> +#endif + + /* + * these should be phased out. cpack should be replaced in + * code with calls to glColor3ub, lrectwrite probably should + * change to a function. - zr + */ + +/* Mij afspraak is cpack een getal dat als 0xFFaa66 of zo kan worden + * uitgedrukt. Is dus gevoelig voor endian. Met deze define wordt het + * altijd goed afgebeeld + * + * This define converts a numerical value to the equivalent 24-bit + * colour, while not being endian-sensitive. On little-endians, this + * is the same as doing a 'naive'indexing, on big-endian, it is not! + * */ +#define cpack(x) glColor3ub( ((x)&0xFF), (((x)>>8)&0xFF), (((x)>>16)&0xFF) ) + +#define glMultMatrixf(x) glMultMatrixf( (float *)(x)) +#define glLoadMatrixf(x) glLoadMatrixf( (float *)(x)) + +#define lrectwrite(a, b, c, d, rect) {glRasterPos2i(a, b);glDrawPixels((c)-(a)+1, (d)-(b)+1, GL_RGBA, GL_UNSIGNED_BYTE, rect);} + +#endif /* #ifdef BIF_GL_H */ diff --git a/source/blender/include/BIF_glutil.h b/source/blender/include/BIF_glutil.h new file mode 100644 index 00000000000..ab8bad67760 --- /dev/null +++ b/source/blender/include/BIF_glutil.h @@ -0,0 +1,189 @@ +/** + * @file BIF_glutil.h + * + * OpenGL drawing utility functions. + * + * $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 ***** + */ + +#ifndef BIF_GLUTIL_H +#define BIF_GLUTIL_H + +struct rcti; +struct rctf; + +void sdrawXORline(int x0, int y0, int x1, int y1); +void sdrawXORline4(int nr, int x0, int y0, int x1, int y1); +void sdrawXORcirc(short xofs, short yofs, float rad); + + /** + * Draw an XOR'd line in the front buffer between + * the given points. + * + * @attention This function also handles flushing the GL + * pipeline, which means it is inappropriate for drawing + * a large number of lines at once. + */ +void glutil_draw_front_xor_line(int x0, int y0, int x1, int y1); + + /** + * Draw a lined (non-looping) arc with the given + * @a radius, starting at angle @a start and arcing + * through @a angle. The arc is centered at the origin + * and drawn in the XY plane. + * + * @param start The initial angle (in radians). + * @param angle The length of the arc (in radians). + * @param radius The arc radius. + * @param nsegments The number of segments to use in drawing the arc. + */ +void glutil_draw_lined_arc (float start, float angle, float radius, int nsegments); + + /** + * Draw a filled arc with the given @a radius, + * starting at angle @a start and arcing through + * @a angle. The arc is centered at the origin + * and drawn in the XY plane. + * + * @param start The initial angle (in radians). + * @param angle The length of the arc (in radians). + * @param radius The arc radius. + * @param nsegments The number of segments to use in drawing the arc. + */ +void glutil_draw_filled_arc (float start, float angle, float radius, int nsegments); + + /** + * Routines an integer value as obtained by glGetIntegerv. + * The param must cause only one value to be gotten from GL. + */ +int glaGetOneInteger (int param); + + /** + * Routines a float value as obtained by glGetIntegerv. + * The param must cause only one value to be gotten from GL. + */ +float glaGetOneFloat (int param); + + /** + * Functions like glRasterPos2i, except ensures that the resulting + * raster position is valid. @a known_good_x and @a known_good_y + * should be coordinates of a point known to be within the current + * view frustum. + * @attention This routine should be used when the distance of @a x + * and @y away from the known good point is small (ie. for small icons + * and for bitmap characters), when drawing large+zoomed images it is + * possible for overflow to occur, the glaDrawPixelsSafe routine should + * be used instead. + */ +void glaRasterPosSafe2f (float x, float y, float known_good_x, float known_good_y); + + /** + * Functions like a limited glDrawPixels, except ensures that + * the image is displayed onscreen even if the @a x and @a y + * coordinates for would be clipped. The routine respects the + * glPixelZoom values, pixel unpacking parameters are _not_ + * respected. + + * @attention This routine makes many assumptions: the rect data + * is expected to be in RGBA unsigned byte format, the coordinate + * (0.375, 0.375) is assumed to be within the view frustum, and the + * modelview and projection matrices are assumed to define a + * 1-to-1 mapping to screen space. + * @attention Furthmore, in the case of zoomed or unpixel aligned + * images extending outside the view frustum, but still within the + * window, some portion of the image may be visible left and/or + * below of the given @a x and @a y coordinates. It is recommended + * to use the glScissor functionality if images are to be drawn + * with an inset view matrix. + */ +void glaDrawPixelsSafe (float x, float y, int img_w, int img_h, void *rect); + + /** + * Functions like a limited glDrawPixels, but actually draws the + * image using textures, which can be tremendously faster on low-end + * cards, and also avoids problems with the raster position being + * clipped when offscreen. The routine respects the glPixelZoom values, + * pixel unpacking parameters are _not_ respected. + + * @attention This routine makes many assumptions: the rect data + * is expected to be in RGBA unsigned byte format, and the + * modelview and projection matrices are assumed to define a + * 1-to-1 mapping to screen space. + */ +void glaDrawPixelsTex (float x, float y, int img_w, int img_h, void *rect); + + /* 2D Drawing Assistance */ + + /** Define a 2D area (viewport, scissor, matrices) for OpenGL rendering. + * This routine sets up an OpenGL state appropriate for drawing using + * both vertice (glVertex, etc) and raster (glRasterPos, glRect) commands. + * All coordinates should be at integer positions. There is little to + * no reason to use glVertex2f etc. functions during 2D rendering, and + * thus no reason to +-0.5 the coordinates or perform other silly + * tricks. + * + * @param screen_rect The screen rectangle to be defined for 2D drawing. + */ +void glaDefine2DArea (struct rcti *screen_rect); + +typedef struct gla2DDrawInfo gla2DDrawInfo; + + /** Save the current OpenGL state and initialize OpenGL for 2D + * rendering. glaEnd2DDraw should be called on the returned structure + * to free it and to return OpenGL to its previous state. The + * scissor rectangle is set to match the viewport. + * + * This routine sets up an OpenGL state appropriate for drawing using + * both vertice (glVertex, etc) and raster (glRasterPos, glRect) commands. + * All coordinates should be at integer positions. There is little to + * no reason to use glVertex2f etc. functions during 2D rendering, and + * thus no reason to +-0.5 the coordinates or perform other silly + * tricks. + * + * @param screen_rect The screen rectangle to be used for 2D drawing. + * @param world_rect The world rectangle that the 2D area represented + * by @a screen_rect is supposed to represent. If NULL it is assumed the + * world has a 1 to 1 mapping to the screen. + */ +gla2DDrawInfo* glaBegin2DDraw (struct rcti *screen_rect, struct rctf *world_rect); + + /** Translate the (@a wo_x, @a wo_y) point from world coordinates into screen space. */ +void gla2DDrawTranslatePt (gla2DDrawInfo *di, float wo_x, float wo_y, int *sc_x_r, int *sc_y_r); + + /** Translate the @a world point from world coordiantes into screen space. */ +void gla2DDrawTranslatePtv (gla2DDrawInfo *di, float world[2], int screen_r[2]); + + /* Restores the previous OpenGL state and free's the auxilary + * gla data. + */ +void glaEnd2DDraw (gla2DDrawInfo *di); + +#endif /* BIF_GLUTIL_H */ diff --git a/source/blender/include/BIF_graphics.h b/source/blender/include/BIF_graphics.h new file mode 100644 index 00000000000..2d97ed9d819 --- /dev/null +++ b/source/blender/include/BIF_graphics.h @@ -0,0 +1,56 @@ +/** + * $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 ***** + */ + +#ifndef BIF_GRAPHICS_H +#define BIF_GRAPHICS_H + + /* XXX, should move somewhere else, with collected windowing + * stuff, to be done once the proper windowing stuff has + * been formed. + */ + +enum { + CURSOR_VPAINT, + CURSOR_FACESEL, + CURSOR_WAIT, + CURSOR_EDIT, + CURSOR_X_MOVE, + CURSOR_Y_MOVE, + CURSOR_HELP, + CURSOR_STD, + CURSOR_NONE +}; + +void set_cursor(int curs); +int get_cursor(void); + +#endif /* BIF_GRAPHICS_H */ diff --git a/source/blender/include/BIF_imasel.h b/source/blender/include/BIF_imasel.h new file mode 100644 index 00000000000..ef37ed5858d --- /dev/null +++ b/source/blender/include/BIF_imasel.h @@ -0,0 +1,58 @@ +/** + * $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 ***** + */ +#ifndef BIF_IMASEL_H +#define BIF_IMASEL_H + +struct SpaceImaSel; +struct OneSelectableIma; +struct ScrArea; +struct ImaDir; + +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 init_imaselspace(struct ScrArea *sa); +void check_imasel_copy(struct SpaceImaSel *simasel); +void free_imasel(struct SpaceImaSel *simasel); + +#endif diff --git a/source/blender/include/BIF_interface.h b/source/blender/include/BIF_interface.h new file mode 100644 index 00000000000..21060330e81 --- /dev/null +++ b/source/blender/include/BIF_interface.h @@ -0,0 +1,128 @@ +/** + * $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 ***** + */ + +#ifndef BIF_INTERFACE_H +#define BIF_INTERFACE_H + +struct ID; +struct ListBase; +struct ScrArea; + +typedef struct uiBut uiBut; +typedef struct uiBlock uiBlock; + +extern int UIfrontbuf; + +void uiEmboss(float x1, float y1, float x2, float y2, int sel); +void uiDrawMenuBox(float minx, float miny, float maxx, float maxy); +void uiBoundsBlock(struct uiBlock *block, int addval); +void uiDrawBlock(struct uiBlock *block); +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); +void uiSetCurFont(uiBlock *block, int index); +void uiDefFont(unsigned int index, void *xl, void *large, void *medium, void *small); +void uiFreeBlock(uiBlock *block); +void uiFreeBlocks(struct ListBase *lb); +void uiFreeBlocksWin(struct ListBase *lb, int win); +uiBlock *uiNewBlock(struct ListBase *lb, char *name, short dt, short font, short win); +uiBlock *uiGetBlock(char *name, struct ScrArea *sa); +uiBut *uiDefBut(uiBlock *block, + int type, int retval, char *str, + short x1, short y1, + short x2, short y2, + void *poin, + float min, float max, + float a1, float a2, char *tip); +uiBut *uiDefButF(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip); +uiBut *uiDefButI(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip); +uiBut *uiDefButS(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip); +uiBut *uiDefButC(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip); + +uiBut *uiDefIconBut(uiBlock *block, + int type, int retval, int icon, + short x1, short y1, + short x2, short y2, + void *poin, + float min, float max, + float a1, float a2, char *tip); +uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip); +uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip); +uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip); +uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip); + +typedef void (*uiIDPoinFuncFP) (char *str, struct ID **idpp); +void uiDefIDPoinBut(struct uiBlock *block, + uiIDPoinFuncFP func, int retval, char *str, + short x1, short y1, + short x2, short y2, + void *idpp, char *tip); + +typedef uiBlock* (*uiBlockFuncFP) (void *arg1); +void uiDefBlockBut(uiBlock *block, uiBlockFuncFP func, void *func_arg1, char *str, short x1, short y1, short x2, short y2, char *tip); + +void uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip); + +void uiAutoBlock(struct uiBlock *block, + float minx, float miny, + float sizex, float sizey, int flag); +void uiSetButLink(struct uiBut *but, + void **poin, + void ***ppoin, + short *tot, + int from, int to); + +int uiBlocksGetYMin (ListBase *lb); +int uiBlockGetCol (uiBlock *block); +void* uiBlockGetCurFont (uiBlock *block); + +void uiBlockSetCol (uiBlock *block, int col); +void uiBlockSetEmboss (uiBlock *block, int emboss); +void uiBlockSetDirection (uiBlock *block, int direction); +void uiBlockSetFlag (uiBlock *block, int flag); +void uiBlockSetXOfs (uiBlock *block, int xofs); + +int uiButGetRetVal (uiBut *but); + +void uiButSetFlag (uiBut *but, int flag); + +void uiBlockSetButmFunc (uiBlock *block, void (*butmfunc)(void *arg, int but_a2), void *arg); + +void uiBlockSetFunc (uiBlock *block, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2); +void uiButSetFunc (uiBut *but, void (*func)(void *arg1, void *arg2), void *arg1, void *arg2); + +short pupmenu(char *instr); +short pupmenu_col(char *instr, int maxrow); + +#endif /* BIF_INTERFACE_H */ diff --git a/source/blender/include/BIF_keyval.h b/source/blender/include/BIF_keyval.h new file mode 100644 index 00000000000..94fa8f09bc5 --- /dev/null +++ b/source/blender/include/BIF_keyval.h @@ -0,0 +1,38 @@ +/** + * $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 ***** + */ + +#ifndef BIF_KEYVAL_H +#define BIF_KEYVAL_H + +char *key_event_to_string(unsigned short event); + +#endif diff --git a/source/blender/include/BIF_mainqueue.h b/source/blender/include/BIF_mainqueue.h new file mode 100644 index 00000000000..e649748cedf --- /dev/null +++ b/source/blender/include/BIF_mainqueue.h @@ -0,0 +1,46 @@ +/* + * Central queue handling functions. + * + * $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 ***** + */ + +#ifndef BIF_MAINQUEUE_H +#define BIF_MAINQUEUE_H + +#define MAXQUEUE 256 + +unsigned short mainqtest (void); +unsigned short mainqread (short *val, char *ascii); +void mainqenter (unsigned short event, short val); +void mainqenter_ext (unsigned short event, short val, char ascii); +void mainqpushback (unsigned short event, short val, char ascii); + +#endif /* BIF_MAINQUEUE_H */ diff --git a/source/blender/include/BIF_mywindow.h b/source/blender/include/BIF_mywindow.h new file mode 100644 index 00000000000..1e581b3dc4b --- /dev/null +++ b/source/blender/include/BIF_mywindow.h @@ -0,0 +1,107 @@ + +/** + * $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 ***** + * These are the protos for mywindow.c -- an emulation of the + * (obsolete) IrisGL command set + */ + +#ifndef BIF_MYWINDOW_H +#define BIF_MYWINDOW_H + +struct rcti; + +/*---*/ + +int mywinget(void); +void mywinclose(int winid); +void mywinposition(int winid, + int xmin, int xmax, + int ymin, int ymax); +/*---*/ + +int bwin_qtest(int winid); +unsigned short bwin_qread(int winid, short *val_r, char *ascii_r); +void bwin_qadd(int winid, unsigned short event, short val, char ascii); + +/*---*/ + +void bwin_load_viewmatrix(int winid, float mat[][4]); +void bwin_load_winmatrix(int winid, float mat[][4]); + +void bwin_get_viewmatrix(int winid, float mat[][4]); +void bwin_get_winmatrix(int winid, float mat[][4]); + +void bwin_ortho(int winid, float x1, float x2, float y1, float y2, float n, float f); +void bwin_ortho2(int win, float x1, float x2, float y1, float y2); +void bwin_frustum(int winid, float x1, float x2, float y1, float y2, float n, float f); + +void bwin_getsize(int winid, int *x, int *y); +void bwin_getsuborigin(int winid, int *x, int *y); +void bwin_get_rect(int winid, struct rcti *rect_r); +void bwin_getsinglematrix(int winid, float mat[][4]); +void bwin_clear_viewmat(int winid); + +int myswinopen(int parentid, int xmin, int xmax, int ymin, int ymax); +void myswapbuffers(void); + +void mygetmatrix(float mat[][4]); +void mymultmatrix(float [][4]); +void myloadmatrix(float mat[][4]); +void mywinset(int wid); +void myortho(float x1, float x2, float y1, float y2, float n, float f); +void myortho2(float x1, float x2, float y1, float y2); +void mywindow(float x1, float x2, float y1, float y2, float n, float f); +void mygetsingmatrix(float (*)[4]); + +void setlinestyle(int nr); + +void BIF_wait_for_statechange(void); + +#define L_MOUSE 1 +#define M_MOUSE 2 +#define R_MOUSE 4 +short get_mbut(void); +short get_qual(void); +void getmouse(short *mval); + +void warp_pointer(int x, int y); + +int framebuffer_to_index(unsigned int col); +unsigned int index_to_framebuffer(int index); + +int mywin_inmenu(void); +void mywin_getmenu_rect(int *x, int *y, int *sx, int *sy); + +void my_put_frontbuffer_image(void); +void my_get_frontbuffer_image(int x, int y, int sx, int sy); + +#endif + diff --git a/source/blender/include/BIF_oops.h b/source/blender/include/BIF_oops.h new file mode 100644 index 00000000000..9d7aeffbfe8 --- /dev/null +++ b/source/blender/include/BIF_oops.h @@ -0,0 +1,68 @@ +/** + * $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 ***** + */ + +#ifndef BIF_OOPS_H +#define BIF_OOPS_H + +struct Curve; +struct Oops; +struct OopsLink; +struct SpaceOops; +struct Material; +struct Mesh; +struct MetaBall; +struct Object; +void add_curve_oopslinks(struct Curve *cu, struct Oops *oops, short flag); +void add_from_link(struct Oops *from, struct Oops *oops); +void add_material_oopslinks(struct Material *ma, struct Oops *oops, short flag); +void add_mball_oopslinks(struct MetaBall *mb, struct Oops *oops, short flag); +void add_mesh_oopslinks(struct Mesh *me, struct Oops *oops, short flag); +void add_object_oopslinks(struct Object *ob, struct Oops *oops, short flag); +struct Oops *add_oops(void *id); +struct OopsLink *add_oopslink(char *name, struct Oops *oops, short type, void *from, float xof, float yof); +struct Oops *add_test_oops(void *id); /* incl links */ +void add_texture_oops(struct Material *ma); +void build_oops(void); +struct Oops *find_oops(ID *id); +void free_oops(struct Oops *oops); /* ook oops zelf */ +void free_oopspace(struct SpaceOops *so); +void new_oops_location(struct Oops *); +int oops_test_overlap(struct Oops *test); +int oops_test_overlaphide(struct Oops *test); +float oopslink_totlen(struct Oops *oops); +void shrink_oops(void); +void shuffle_oops(void); +int test_oops(struct Oops *oops); +void test_oopslink(struct OopsLink *ol); +void test_oopslinko(struct OopsLink *ol); + +#endif diff --git a/source/blender/include/BIF_poseobject.h b/source/blender/include/BIF_poseobject.h new file mode 100644 index 00000000000..872584edfe9 --- /dev/null +++ b/source/blender/include/BIF_poseobject.h @@ -0,0 +1,65 @@ +/** + * $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 ***** + */ + +#ifndef BIF_POSEOBJECT +#define BIF_POSEOBJECT + +/** + * Activates posemode + */ +void enter_posemode(void); + +/** + * Provides the current object the opportunity to specify + * which channels to key in the current pose (if any). + * If an object provides its own filter, it must clear + * then POSE_KEY flags of unwanted channels, as well as + * setting the flags for desired channels. + * + * Default behaviour is to key all channels. + */ +void filter_pose_keys(void); + +/** + * Deactivates posemode + * @param freedata 0 or 1 value indicating that posedata should be deleted + */ +void exit_posemode(int freedata); + +/** + * Removes unreferenced pose channels from an object + * @param ob Object to check + */ +void collect_pose_garbage(struct Object *ob); + +#endif + diff --git a/source/blender/include/BIF_previewrender.h b/source/blender/include/BIF_previewrender.h new file mode 100644 index 00000000000..0e4e1c9d71c --- /dev/null +++ b/source/blender/include/BIF_previewrender.h @@ -0,0 +1,38 @@ +/** + * $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 ***** + */ +struct SpaceButs; + +void BIF_preview_changed (struct SpaceButs *area); +void BIF_previewrender (struct SpaceButs *area); +void BIF_previewdraw (struct SpaceButs *area); + + diff --git a/source/blender/include/BIF_renderwin.h b/source/blender/include/BIF_renderwin.h new file mode 100644 index 00000000000..a6ac7c707ea --- /dev/null +++ b/source/blender/include/BIF_renderwin.h @@ -0,0 +1,49 @@ +/** + * $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 ***** + */ +struct ScrArea; + +void calc_renderwin_rectangle(int posmask, int renderpos_r[2], int rendersize_r[2]); + +void BIF_close_render_display(void); + +void BIF_do_render(int anim); + +/** + * @param v3d The View3D space to render. + */ +void BIF_do_ogl_render(struct View3D *v3d, int anim); + +void BIF_renderwin_set_for_ogl_render(void); +void BIF_renderwin_set_custom_cursor(unsigned char mask[16][2], unsigned char bitmap[16][2]); + +void BIF_swap_render_rects(void); +void BIF_toggle_render_display(void); diff --git a/source/blender/include/BIF_resources.h b/source/blender/include/BIF_resources.h new file mode 100644 index 00000000000..c379c74c311 --- /dev/null +++ b/source/blender/include/BIF_resources.h @@ -0,0 +1,321 @@ +/** + * $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 ***** + */ + +#ifndef BIF_RESOURCES_H +#define BIF_RESOURCES_H + +typedef enum { +#define BIFICONID_FIRST (ICON_VIEW3D) + ICON_VIEW3D, + ICON_IPO, + ICON_OOPS, + ICON_BUTS, + ICON_FILESEL, + ICON_IMAGE_COL, + ICON_INFO, + ICON_SEQUENCE, + ICON_TEXT, + ICON_IMASEL, + ICON_SOUND, + ICON_ACTION, + ICON_NLA, + ICON_VIEWZOOM, + ICON_VIEWMOVE, + ICON_HOME, + ICON_CLIPUV_DEHLT, + ICON_CLIPUV_HLT, + ICON_SOME_WACKY_VERTS_AND_LINES, + ICON_A_WACKY_VERT_AND_SOME_LINES, + ICON_VPAINT_COL, + + ICON_ORTHO, + ICON_PERSP, + ICON_CAMERA, + ICON_BLANK1, + ICON_BBOX, + ICON_WIRE, + ICON_SOLID, + ICON_SMOOTH, + ICON_POTATO, + ICON_BLANK2, + ICON_NORMALVIEW, + ICON_LOCALVIEW, + ICON_UNUSEDVIEW, + ICON_BLANK3, + ICON_SORTALPHA, + ICON_SORTTIME, + ICON_SORTSIZE, + ICON_LONGDISPLAY, + ICON_SHORTDISPLAY, + ICON_BLANK4, + ICON_BLANK5, + + ICON_VIEW_AXIS_ALL, + ICON_VIEW_AXIS_NONE, + ICON_VIEW_AXIS_NONE2, + ICON_VIEW_AXIS_TOP, + ICON_VIEW_AXIS_FRONT, + ICON_VIEW_AXIS_SIDE, + ICON_POSE_DEHLT, + ICON_POSE_HLT, + ICON_BORDERMOVE, + ICON_MAYBE_ITS_A_LASSO, + ICON_BLANK6, + ICON_ROTATE, + ICON_CURSOR, + ICON_ROTATECOLLECTION, + ICON_ROTATECENTER, + ICON_BLANK7, + ICON_BLANK8, + ICON_BLANK9, + ICON_BLANK10, + ICON_BLANK11, + ICON_BLANK12, + + ICON_DOTSUP, + ICON_DOTSDOWN, + ICON_BLANK13, + ICON_AXIS_SIDE, + ICON_AXIS_FRONT, + ICON_AXIS_TOP, + ICON_BLANK14, + ICON_BLANK15, + ICON_BLANK16, + ICON_BLANK17, + ICON_BLANK18, + ICON_ENVMAP, + ICON_TRANSP_HLT, + ICON_TRANSP_DEHLT, + ICON_RADIO_DEHLT, + ICON_RADIO_HLT, + ICON_TPAINT_DEHLT, + ICON_TPAINT_HLT, + ICON_WPAINT_DEHLT, + ICON_WPAINT_HLT, + ICON_BLANK21, + + ICON_X, + ICON_GO_LEFT, + ICON_NO_GO_LEFT, + ICON_UNLOCKED, + ICON_LOCKED, + ICON_PARLIB, + ICON_DATALIB, + ICON_AUTO, + ICON_MATERIAL_DEHLT2, + ICON_RING, + ICON_GRID, + ICON_PROPEDIT, + ICON_KEEPRECT, + ICON_DESEL_CUBE_VERTS, + ICON_EDITMODE_DEHLT, + ICON_EDITMODE_HLT, + ICON_VPAINT_DEHLT, + ICON_VPAINT_HLT, + ICON_FACESEL_DEHLT, + ICON_FACESEL_HLT, + ICON_BLANK22, + + ICON_HELP, + ICON_ERROR, + ICON_FOLDER_DEHLT, + ICON_FOLDER_HLT, + ICON_BLUEIMAGE_DEHLT, + ICON_BLUEIMAGE_HLT, + ICON_BPIBFOLDER_DEHLT, + ICON_BPIBFOLDER_HLT, + ICON_BPIBFOLDER_ERR, + ICON_UGLY_GREEN_RING, + ICON_GHOST, + ICON_SHARPCURVE, + ICON_SMOOTHCURVE, + ICON_BLANK23, + ICON_BLANK24, + ICON_BLANK25, + ICON_BLANK26, + ICON_BPIBFOLDER_X, + ICON_BPIBFOLDERGREY, + ICON_MAGNIFY, + ICON_INFO2, + + ICON_RIGHTARROW, + ICON_DOWNARROW_HLT, + ICON_ROUNDBEVELTHING, + ICON_FULLTEXTURE, + ICON_REDPUBLISHERHALFTHINGY, + ICON_PUBLISHER, + ICON_CKEY, + ICON_CHECKBOX_DEHLT, + ICON_CHECKBOX_HLT, + ICON_LINK, + ICON_INLINK, + ICON_BEVELBUT_HLT, + ICON_BEVELBUT_DEHLT, + ICON_PASTEDOWN, + ICON_COPYDOWN, + ICON_CONSTANT, + ICON_LINEAR, + ICON_CYCLIC, + ICON_KEY_DEHLT, + ICON_KEY_HLT, + ICON_GRID2, + + ICON_EYE, + ICON_LAMP, + ICON_MATERIAL, + ICON_TEXTURE, + ICON_ANIM, + ICON_WORLD, + ICON_SCENE, + ICON_EDIT, + ICON_GAME, + ICON_PAINT, + ICON_RADIO, + ICON_SCRIPT, + ICON_SPEAKER, + ICON_PASTEUP, + ICON_COPYUP, + ICON_PASTEFLIPUP, + ICON_PASTEFLIPDOWN, + ICON_CYCLICLINEAR, + ICON_PIN_DEHLT, + ICON_PIN_HLT, + ICON_LITTLEGRID, + + ICON_FULLSCREEN, + ICON_SPLITSCREEN, + ICON_RIGHTARROW_THIN, + ICON_BLANK27, + ICON_BLANK28, + ICON_SCENE_SEPIA, + ICON_SCENE_DEHLT, + ICON_OBJECT, + ICON_MESH, + ICON_CURVE, + ICON_MBALL, + ICON_LATTICE, + ICON_LAMP_DEHLT, + ICON_MATERIAL_DEHLT, + ICON_TEXTURE_DEHLT, + ICON_IPO_DEHLT, + ICON_LIBRARY_DEHLT, + ICON_IMAGE_DEHLT, + ICON_BLANK29, + ICON_BLANK30, + ICON_BLANK31, + + ICON_BLENDER, + ICON_PACKAGE, + ICON_UGLYPACKAGE, + ICON_MATPLANE, + ICON_MATSPHERE, + ICON_MATCUBE, + ICON_SCENE_HLT, + ICON_OBJECT_HLT, + ICON_MESH_HLT, + ICON_CURVE_HLT, + ICON_MBALL_HLT, + ICON_LATTICE_HLT, + ICON_LAMP_HLT, + ICON_MATERIAL_HLT, + ICON_TEXTURE_HLT, + ICON_IPO_HLT, + ICON_LIBRARY_HLT, + ICON_IMAGE_HLT, + ICON_CONSTRAINT, + ICON_BLANK32, + ICON_BLANK33, +#define BIFICONID_LAST (ICON_BLANK33) +#define BIFNICONIDS (BIFICONID_LAST-BIFICONID_FIRST + 1) +} BIFIconID; + +typedef enum { +#define BIFCOLORSHADE_FIRST (COLORSHADE_DARK) + COLORSHADE_DARK, + COLORSHADE_GREY, + COLORSHADE_MEDIUM, + COLORSHADE_HILITE, + COLORSHADE_LIGHT, + COLORSHADE_WHITE, +#define BIFCOLORSHADE_LAST (COLORSHADE_WHITE) +#define BIFNCOLORSHADES (BIFCOLORSHADE_LAST-BIFCOLORSHADE_FIRST + 1) +} BIFColorShade; + +typedef enum { +#define BIFCOLORID_FIRST (BUTGREY) + BUTGREY, + BUTGREEN, + BUTBLUE, + BUTSALMON, + MIDGREY, + BUTPURPLE, + BUTYELLOW, + REDALERT, + BUTRUST, + BUTWHITE, + BUTDBLUE, + BUTPINK, + BUTDPINK, + BUTMACTIVE, + + BUTIPO, + BUTAUDIO, + BUTCAMERA, + BUTRANDOM, + BUTEDITOBJECT, + BUTPROPERTY, + BUTSCENE, + BUTMOTION, + BUTMESSAGE, + BUTACTION, + BUTCD, + BUTGAME, + BUTVISIBILITY, + BUTYUCK, + BUTSEASICK, + BUTCHOKE, + BUTIMPERIAL, +#define BIFCOLORID_LAST (BUTIMPERIAL) +#define BIFNCOLORIDS (BIFCOLORID_LAST-BIFCOLORID_FIRST + 1) +} BIFColorID; + +void BIF_resources_init (void); +void BIF_resources_free (void); + +int BIF_get_icon_width (BIFIconID icon); +int BIF_get_icon_height (BIFIconID icon); +void BIF_draw_icon (BIFIconID icon); +void BIF_draw_icon_blended (BIFIconID icon, BIFColorID color, BIFColorShade shade); + +void BIF_set_color (BIFColorID color, BIFColorShade shade); + +#endif /* BIF_ICONS_H */ diff --git a/source/blender/include/BIF_scrarea.h b/source/blender/include/BIF_scrarea.h new file mode 100644 index 00000000000..2bd10278ddd --- /dev/null +++ b/source/blender/include/BIF_scrarea.h @@ -0,0 +1,51 @@ +/** + * $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 ***** + */ +#ifdef __cplusplus +extern "C" { +#endif + +struct ScrArea; + + /** + * Finds the first spacedata of @a type within + * the scrarea. + */ +void *scrarea_find_space_of_type(ScrArea *sa, int type); + +int scrarea_get_win_x (struct ScrArea *sa); +int scrarea_get_win_y (struct ScrArea *sa); +int scrarea_get_win_width (struct ScrArea *sa); +int scrarea_get_win_height (struct ScrArea *sa); + +#ifdef __cplusplus +} +#endif diff --git a/source/blender/include/BIF_screen.h b/source/blender/include/BIF_screen.h new file mode 100644 index 00000000000..81b2874b217 --- /dev/null +++ b/source/blender/include/BIF_screen.h @@ -0,0 +1,124 @@ +/* replacement for screen.h */ +/* + * + * Leftovers here are actually editscreen.c thingies + * + * $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 ***** + */ + +#ifndef BIF_SCREEN_H +#define BIF_SCREEN_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* externs in editscreen.c */ +extern int displaysizex, displaysizey; +extern struct ScrArea *curarea; + +struct View3D; +struct bScreen; +struct ScrArea; +struct ScrVert; +struct ScrEdge; +struct ListBase; + +struct View3D *find_biggest_view3d(void); +struct ScrArea *find_biggest_area_of_type(int spacecode); +struct ScrArea *find_biggest_area(void); + +void scrarea_queue_redraw(struct ScrArea *area); +void scrarea_queue_winredraw(struct ScrArea *area); +void scrarea_queue_headredraw(struct ScrArea *area); + +void duplicate_screen(void); +void init_screen_cursors(void); +void set_timecursor(int nr); +void waitcursor(int val); +void wich_cursor(struct ScrArea *sa); +void setcursor_space(int spacetype, short cur); +void getmouseco_sc(short *mval); +void getmouseco_areawin(short *mval); +void getmouseco_headwin(short *mval); +unsigned short qtest(void); +int anyqtest(void); +void areawinset(short win); +void headerbox(int selcol, int width); +void defheaddraw(void); +void defheadchange(void); +unsigned short winqtest(struct ScrArea *sa); +unsigned short headqtest(struct ScrArea *sa); +void winqdelete(struct ScrArea *sa); +void winqclear(struct ScrArea *sa); +void addqueue(short win, unsigned short event, short val); +void addafterqueue(short win, unsigned short event, short val); +void add_readfile_event(char *filename); +short ext_qtest(void); +unsigned short extern_qread(short *val); +unsigned short extern_qread_ext(short *val, char *ascii); +void markdirty_all(void); +void screen_swapbuffers(void); +void set_debug_swapbuffers_ovveride(struct bScreen *sc, int mode); +int is_allowed_to_change_screen(struct bScreen *newp); +void splash(void * data, int datasizei, char * string); +void screenmain(void); +void getdisplaysize(void); +void setprefsize(int stax, int stay, int sizx, int sizy); +void calc_arearcts(struct ScrArea *sa); +void resize_screen(int x, int y, int w, int h); +struct ScrArea *closest_bigger_area(void); +int mywinopen(int mode, short posx, short posy, short sizex, short sizey); +void setscreen(struct bScreen *sc); +void area_fullscreen(void); +int select_area(int spacetype); +void drawedge(short x1, short y1, short x2, short y2); +void drawscreen(void); +struct bScreen *default_twosplit(void); +void initscreen(void); +void unlink_screen(struct bScreen *sc); +void reset_autosave(void); +int area_is_active_area(struct ScrArea *area); + + /***/ + +/** + * Draw @a text in the header of each info window + * of the given screen. + */ +void screen_draw_info_text(struct bScreen *sc, char *text); + +#ifdef __cplusplus +} +#endif + +#endif /* BIF_SCREEN_H */ diff --git a/source/blender/include/BIF_space.h b/source/blender/include/BIF_space.h new file mode 100644 index 00000000000..68295db2ddb --- /dev/null +++ b/source/blender/include/BIF_space.h @@ -0,0 +1,94 @@ +/** + * $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 ***** + */ + +#ifndef BIF_SPACE_H +#define BIF_SPACE_H + +struct ListBase; +struct ScrArea; +struct SpaceButs; +struct View2D; + +#define REMAKEIPO 1 +#define OOPS_TEST 2 +#define REMAKEALLIPO 3 /* Reevan's ipo fixing test */ + +void scrarea_do_windraw (struct ScrArea *sa); +void scrarea_do_winchange (struct ScrArea *sa); +void scrarea_do_winhandle (struct ScrArea *sa, unsigned short event, short val, char ascii); +void scrarea_do_headdraw (struct ScrArea *sa); +void scrarea_do_headchange (struct ScrArea *sa); + +/* space.c */ +extern void space_set_commmandline_options(void); +extern void allqueue(unsigned short event, short val); +extern void allspace(unsigned short event, short val); +extern void changebutspace(void); +extern void changeview2d(void); +extern void changeview3d(void); +extern void copy_view3d_lock(short val); +extern void drawemptyspace(void); +extern void drawinfospace(void); +extern void duplicatespacelist(struct ScrArea *area, struct ListBase *lb1, struct ListBase *lb2); +extern void extern_set_butspace(int fkey); +extern void force_draw(void); +extern void force_draw_all(void); +extern void force_draw_plus(int type); +extern void freespacelist(struct ListBase *lb); +extern void handle_view3d_lock(void); +extern void init_butspace(struct ScrArea *sa); +extern void init_filespace(struct ScrArea *sa); +extern void init_imagespace(struct ScrArea *sa); +extern void init_oopsspace(struct ScrArea *sa); +extern void init_nlaspace(struct ScrArea *sa); +extern void init_seqspace(struct ScrArea *sa); +extern void init_v2d_oops(struct View2D *v2d); +extern void initipo(struct ScrArea *sa); +extern void initview3d(struct ScrArea *sa); +extern void newspace(struct ScrArea *sa, int type); +extern void set_rects_butspace(struct SpaceButs *buts); +extern void winqread3d(unsigned short event, short val, char ascii); +extern void winqreadbutspace(unsigned short event, short val, char ascii); +extern void winqreadimagespace(unsigned short event, short val, char ascii); +extern void winqreadinfospace(unsigned short event, short val, char ascii); +extern void winqreadipo(unsigned short event, short val, char ascii); +extern void winqreadoopsspace(unsigned short event, short val, char ascii); +extern void winqreadnlaspace(unsigned short event, short val, char ascii); +extern void winqreadsequence(unsigned short event, short val, char ascii); +extern void test_butspace(void); +extern void start_game(void); + +extern void mainwindow_raise(void); +extern void mainwindow_make_active(void); +extern void mainwindow_close(void); + +#endif diff --git a/source/blender/include/BIF_spacetypes.h b/source/blender/include/BIF_spacetypes.h new file mode 100644 index 00000000000..03dd6de22b1 --- /dev/null +++ b/source/blender/include/BIF_spacetypes.h @@ -0,0 +1,60 @@ +/** + * $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 ***** + */ +struct ScrArea; + +typedef struct _SpaceType SpaceType; + +typedef void (*SpaceDrawFP) (void); +typedef void (*SpaceChangeFP) (void); +typedef void (*SpaceHandleFP) (unsigned short evt, short val, char ascii); + + /***/ + +SpaceType* spacetype_new (char *name); + +void spacetype_set_winfuncs (SpaceType *st, SpaceDrawFP draw, SpaceChangeFP change, SpaceHandleFP handle); + + /***/ + +SpaceType *spaceaction_get_type (void); +SpaceType *spacebuts_get_type (void); +SpaceType *spacefile_get_type (void); +SpaceType *spaceimage_get_type (void); +SpaceType *spaceimasel_get_type (void); +SpaceType *spaceinfo_get_type (void); +SpaceType *spaceipo_get_type (void); +SpaceType *spacenla_get_type (void); +SpaceType *spaceoops_get_type (void); +SpaceType *spaceseq_get_type (void); +SpaceType *spacesound_get_type (void); +SpaceType *spacetext_get_type (void); +SpaceType *spaceview3d_get_type (void); diff --git a/source/blender/include/BIF_tbcallback.h b/source/blender/include/BIF_tbcallback.h new file mode 100644 index 00000000000..34f39736759 --- /dev/null +++ b/source/blender/include/BIF_tbcallback.h @@ -0,0 +1,41 @@ +/* $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 ***** +/* defines callback structure for toolbox menu */ + +typedef struct _TBcallback { + char *desc; + char *key; + void (*cb)(int v); /* callback function takes value */ + int val; +} TBcallback; + +typedef TBcallback * (*Tbox_callbackfunc)(int l, int x); +void tboxSetCallback(Tbox_callbackfunc f); diff --git a/source/blender/include/BIF_toets.h b/source/blender/include/BIF_toets.h new file mode 100644 index 00000000000..50c04a1ae0d --- /dev/null +++ b/source/blender/include/BIF_toets.h @@ -0,0 +1,43 @@ +/** + * $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 ***** + */ + +#ifndef BIF_TOETS_H +#define BIF_TOETS_H + +void BIF_save_rendered_image(void); + +int save_image_filesel_str(char *str); +int blenderqread(unsigned short event, short val); +void persptoetsen(unsigned short event); /* dutch rules man */ +int untitled(char *name); + +#endif diff --git a/source/blender/include/BIF_toolbox.h b/source/blender/include/BIF_toolbox.h new file mode 100644 index 00000000000..c8ad8f57684 --- /dev/null +++ b/source/blender/include/BIF_toolbox.h @@ -0,0 +1,122 @@ +/* toolbox (SPACEKEY) related + * $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 ***** + */ + + /* TBOXX: breedte in pixels */ +#define TBOXXL 80 +#define TBOXXR 170 +#define TBOXX (TBOXXL+TBOXXR) + /* TBOXEL: aantal elementen onder elkaar */ +#define TBOXEL 14 + /* TBOXH: hoogte van 1 element */ +#define TBOXH 20 +#define TBOXY TBOXH*TBOXEL + +#define TBOXBLACK 1 +#define TBOXDGREY 2 +#define TBOXWHITE 3 +#define TBOXGREY 4 +#define TBOXLGREY 5 + +/* toolbox menu code defines + -> SPACE->(MAIN_ENTRY) */ +#ifdef MAART +enum { + TBOX_MAIN_FILE, + TBOX_MAIN_ADD, + TBOX_MAIN_EDIT, + TBOX_MAIN_OBJECT1, + TBOX_MAIN_OBJECT2, + TBOX_MAIN_MESH, + TBOX_MAIN_CURVE, + TBOX_MAIN_KEY, + TBOX_MAIN_RENDER, + TBOX_MAIN_VIEW, + TBOX_MAIN_PYTOOL = 13 +}; + +#else +enum { + TBOX_MAIN_ADD, + TBOX_MAIN_FILE, + TBOX_MAIN_EDIT, + TBOX_MAIN_OBJECT1, + TBOX_MAIN_OBJECT2, + TBOX_MAIN_MESH, + TBOX_MAIN_CURVE, + TBOX_MAIN_KEY, + TBOX_MAIN_RENDER, + TBOX_MAIN_VIEW, + TBOX_MAIN_PYTOOL = 13 +}; +#endif + +/* protos */ + +/* toolbox.c */ +void ColorFunc (int i); +void mygetcursor (short int *index); +void tbox_setinfo (int x, int y); +void dummy (void); +void bgnpupdraw (int startx, int starty, int endx, int endy); +void endpupdraw (void); +void asciitoraw (int ch, short unsigned int *event, short unsigned int *qual); +void tbox_execute (void); +void tbox_getmouse (short int *mval); +void tbox_setmain (int val); +void bgntoolbox (void); +void endtoolbox (void); +void tbox_embossbox (short int x1, short int y1, short int x2, short int y2, short int type); +void tbox_drawelem_body (int x, int y, int type); +void tbox_drawelem_text (int x, int y, int type); +void tbox_drawelem (int x, int y, int type); +void tbox_getactive (int *x, int *y); +void drawtoolbox (void); +void toolbox (void); + +void notice (char *str, ...); +void error (char *fmt, ...); + +int saveover (char *filename); +int okee (char *fmt, ...); + +short button (short *var, short min, short max, char *str); +short fbutton (float *var, float min, float max, char *str); +short sbutton (char *var, float min, float max, char *str); /* __NLA */ +int movetolayer_buts (unsigned int *lay); +void draw_numbuts_tip (char *str, int x1, int y1, int x2, int y2); +int do_clever_numbuts (char *name, int tot, int winevent); +void add_numbut (int nr, int type, char *str, float min, float max, void *poin, char *tip); +void clever_numbuts (void); +void replace_names_but (void); + +void BIF_screendump(void); +void write_screendump(char *name); diff --git a/source/blender/include/BIF_usiblender.h b/source/blender/include/BIF_usiblender.h new file mode 100644 index 00000000000..6cf5c1e8d9d --- /dev/null +++ b/source/blender/include/BIF_usiblender.h @@ -0,0 +1,48 @@ +/** + * $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 ***** + */ + +#ifndef BIF_USIBLENDER_H +#define BIF_USIBLENDER_H + +void exit_usiblender(void); + +void BIF_init(void); + +void BIF_read_file (char *name); +int BIF_read_homefile (void); +void BIF_read_autosavefile (void); + +void BIF_write_file (char *target); +void BIF_write_homefile (void); +void BIF_write_autosave (void); + +#endif diff --git a/source/blender/include/BIF_writeavicodec.h b/source/blender/include/BIF_writeavicodec.h new file mode 100644 index 00000000000..e096cbd27f3 --- /dev/null +++ b/source/blender/include/BIF_writeavicodec.h @@ -0,0 +1,44 @@ +/** + * Functions for writing windows avi-format files. + * + * $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 ***** + * + */ + +#ifdef _WIN32 + +void start_avi_codec(void); +void append_avi_codec(int frame); +void end_avi_codec(void); +int get_codec_settings(void); + +#endif + diff --git a/source/blender/include/BIF_writeimage.h b/source/blender/include/BIF_writeimage.h new file mode 100644 index 00000000000..92fcbb4dc84 --- /dev/null +++ b/source/blender/include/BIF_writeimage.h @@ -0,0 +1,42 @@ +/** + * $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 ***** + */ + +#ifndef BIF_WRITEIMAGE_H +#define BIF_WRITEIMAGE_H + +struct ImBuf; +struct EnvMap; + +int BIF_write_ibuf(struct ImBuf *ibuf, char *name); +void BIF_save_envmap(struct EnvMap *env, char *str); + +#endif diff --git a/source/blender/include/BIF_writemovie.h b/source/blender/include/BIF_writemovie.h new file mode 100644 index 00000000000..e8985c68e39 --- /dev/null +++ b/source/blender/include/BIF_writemovie.h @@ -0,0 +1,40 @@ +/** + * $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 ***** + */ + +#ifndef BIF_WRITEMOVIE_H +#define BIF_WRITEMOVIE_H + +void start_movie(void); +void append_movie(int fnum); +void end_movie(void); + +#endif diff --git a/source/blender/include/BSE_buttons.h b/source/blender/include/BSE_buttons.h new file mode 100644 index 00000000000..4c72e4309df --- /dev/null +++ b/source/blender/include/BSE_buttons.h @@ -0,0 +1,46 @@ +/** + * $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 ***** + */ + +#ifndef BSE_BUTTONS_H +#define BSE_BUTTONS_H + +struct ID; + +void test_meshpoin_but(char *name, struct ID **idpp); +void test_obpoin_but(char *name, struct ID **idpp); +void test_scenepoin_but(char *name, struct ID **idpp); +void test_matpoin_but(char *name, struct ID **idpp); +void test_scriptpoin_but(char *name, struct ID **idpp); +void test_actionpoin_but(char *name, ID **idpp); /* __ NLA */ +void clever_numbuts_buts(); + +#endif /* BSE_BUTTONS_H */ diff --git a/source/blender/include/BSE_drawimasel.h b/source/blender/include/BSE_drawimasel.h new file mode 100644 index 00000000000..73abe1e9ece --- /dev/null +++ b/source/blender/include/BSE_drawimasel.h @@ -0,0 +1,57 @@ +/** + * $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 ***** + */ + +#ifndef BSE_DRAWIMASEL_H +#define BSE_DRAWIMASEL_H + +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 drawimasel(void); + +/* 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); */ + +#endif /* BSE_DRAWIMASEL_H */ diff --git a/source/blender/include/BSE_drawipo.h b/source/blender/include/BSE_drawipo.h new file mode 100644 index 00000000000..2b2d6abf1d8 --- /dev/null +++ b/source/blender/include/BSE_drawipo.h @@ -0,0 +1,63 @@ +/** + * $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 ***** + */ + +#ifndef BSE_DRAWIPO_H +#define BSE_DRAWIPO_H + +struct EditIpo; +struct View2D; +struct rctf; + + +void calc_ipogrid(void); +void draw_ipogrid(void); + +void areamouseco_to_ipoco (struct View2D *v2d, short *mval, float *x, float *y); +void ipoco_to_areaco (struct View2D *v2d, float *vec, short *mval); +void ipoco_to_areaco_noclip (struct View2D *v2d, float *vec, short *mval); + +void test_view2d (struct View2D *v2d, int winx, int winy); +void calc_scrollrcts (struct View2D *v2d, int winx, int winy); + +int in_ipo_buttons(void); +void drawscroll(int disptype); +void drawipo(void); + +void scroll_ipobuts(void); +void view2dzoom(void); +int view2dmove(void); +void view2dborder(void); + +struct EditIpo *select_proj_ipo(struct rctf *rectf, int event); + + +#endif /* BSE_DRAWIPO_H */ diff --git a/source/blender/include/BSE_drawnla.h b/source/blender/include/BSE_drawnla.h new file mode 100644 index 00000000000..b71c604acfe --- /dev/null +++ b/source/blender/include/BSE_drawnla.h @@ -0,0 +1,39 @@ +/** + * $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 ***** + */ + +#ifndef BSE_DRAWNLA_H +#define BSE_DRAWNLA_H + +void drawnlaspace(void); + +#endif /* BSE_DRAWNLA */ + diff --git a/source/blender/include/BSE_drawoops.h b/source/blender/include/BSE_drawoops.h new file mode 100644 index 00000000000..fc354164115 --- /dev/null +++ b/source/blender/include/BSE_drawoops.h @@ -0,0 +1,49 @@ +/** + * $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 ***** + */ + +#ifndef BSE_DRAWOOPS_H +#define BSE_DRAWOOPS_H + +struct Oops; +struct uiBlock; + +void boundbox_oops(void); +void give_oopslink_line(struct Oops *oops, struct OopsLink *ol, float *v1, float *v2); +void draw_oopslink(struct Oops *oops); +void draw_icon_oops(float *co, short type); +void mysbox(float x1, float y1, float x2, float y2); +unsigned int give_oops_color(short type, short sel, unsigned int *border); +void calc_oopstext(char *str, float *v1); +void draw_oops(struct Oops *oops, struct uiBlock *block); +void drawoopsspace(void); + +#endif /* BSE_DRAWOOPS */ diff --git a/source/blender/include/BSE_drawview.h b/source/blender/include/BSE_drawview.h new file mode 100644 index 00000000000..3cd9bb07f03 --- /dev/null +++ b/source/blender/include/BSE_drawview.h @@ -0,0 +1,64 @@ +/** + * $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 ***** + */ + +#ifndef BSE_DRAWVIEW_H +#define BSE_DRAWVIEW_H + +struct Object; +struct BGpic; +struct rcti; + +void setalpha_bgpic(struct BGpic *bgpic); +void default_gl_light(void); +void init_gl_stuff(void); +void two_sided(int val); +void circf(float x, float y, float rad); +void circ(float x, float y, float rad); +void backdrawview3d(int test); +void drawview3d(void); +void drawview3d_render(struct View3D *v3d); +int update_time(void); +void calc_viewborder(struct View3D *v3d, struct rcti *viewborder_r); +void view3d_set_1_to_1_viewborder(struct View3D *v3d); +void timestr(double time, char *str); +double speed_to_swaptime(int speed); +double key_to_swaptime(int key); + +void sumo_callback(void *obp); +void init_anim_sumo(void); +void update_anim_sumo(void); +void end_anim_sumo(void); + +void inner_play_anim_loop(int init, int mode); +int play_anim(int mode); + +#endif /* BSE_DRAWVIEW_H */ diff --git a/source/blender/include/BSE_edit.h b/source/blender/include/BSE_edit.h new file mode 100644 index 00000000000..5a631c4232a --- /dev/null +++ b/source/blender/include/BSE_edit.h @@ -0,0 +1,44 @@ +/** + * $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 ***** + */ + +#ifndef BSE_EDIT_H +#define BSE_EDIT_H + +struct Object; +struct rcti; + +int get_border(struct rcti *rect, short col); +void count_object(struct Object *ob, int sel); +void countall(void); +void snapmenu(void); + +#endif /* BSE_EDIT_H */ diff --git a/source/blender/include/BSE_editaction.h b/source/blender/include/BSE_editaction.h new file mode 100644 index 00000000000..007c6208b04 --- /dev/null +++ b/source/blender/include/BSE_editaction.h @@ -0,0 +1,56 @@ +/** + * $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 ***** + */ + +#ifndef BSE_EDITACTION_H +#define BSE_EDITACTION_H + +struct bAction; +struct bActionChannel; +struct bPoseChannel; +struct Object; +struct Ipo; + +struct bActionChannel* get_hilighted_action_channel(struct bAction* action); +void set_exprap_action(int mode); +void free_posebuf(void); +void copy_posebuf (void); +void paste_posebuf (int flip); +void set_action_key (struct bAction *act, struct bPoseChannel *chan, int adrcode, short makecurve); +struct bAction *add_empty_action(void); +void deselect_actionchannel_keys (struct bAction *act, int test); +void deselect_actionchannels (struct bAction *act, int test); +void winqreadactionspace(unsigned short event, short val, char ascii); +void remake_action_ipos(struct bAction *act); +void select_actionchannel_by_name (struct bAction *act, char *name, int select); +struct bAction *bake_action_with_client (struct bAction *act, struct Object *arm, float tolerance); + +#endif /* BSE_EDITACTION_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..5b2be4054a1 --- /dev/null +++ b/source/blender/include/BSE_editaction_types.h @@ -0,0 +1,50 @@ +/** + * $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 ***** + */ + +#ifndef BSE_EDITACTION_TYPES_H +#define BSE_EDITACTION_TYPES_H + +#define CHANNELHEIGHT 16 +#define CHANNELSKIP 2 +#define ACTWIDTH 128 + +#define CHANNEL_FILTER_LOC 0x00000001 /* Show location keys */ +#define CHANNEL_FILTER_ROT 0x00000002 /* Show rotation keys */ +#define CHANNEL_FILTER_SIZE 0x00000004 /* Show size keys */ +#define CHANNEL_FILTER_CON 0x00000008 /* Show constraint keys */ +#define CHANNEL_FILTER_RGB 0x00000010 /* Show object color keys */ + +#define CHANNEL_FILTER_CU 0x00010000 /* Show curve keys */ +#define CHANNEL_FILTER_ME 0x00020000 /* Show mesh keys */ +#define CHANNEL_FILTER_LA 0x00040000 /* Show lamp keys */ + +#endif /* BSE_EDITACTION_TYPES_H */ diff --git a/source/blender/include/BSE_editipo.h b/source/blender/include/BSE_editipo.h new file mode 100644 index 00000000000..f05f96d8dc0 --- /dev/null +++ b/source/blender/include/BSE_editipo.h @@ -0,0 +1,142 @@ +/** + * $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 ***** + */ + +#ifndef BSE_EDITIPO_H +#define BSE_EDITIPO_H + +struct TransVert; +struct IpoCurve; +struct BezTriple; +struct Ipo; +struct EditIpo; +struct ID; +struct ListBase; +struct Object; +struct IpoKey; +struct TransOb; + +void remake_object_ipos(struct Object *ob); +void getname_ac_ei(int nr, char *str); +void getname_co_ei(int nr, char *str); +void getname_ob_ei(int nr, char *str, int colipo); +void getname_tex_ei(int nr, char *str); +void getname_mat_ei(int nr, char *str); +void getname_world_ei(int nr, char *str); +void getname_seq_ei(int nr, char *str); +void getname_cu_ei(int nr, char *str); +void getname_key_ei(int nr, char *str); +void getname_la_ei(int nr, char *str); +void getname_cam_ei(int nr, char *str); +void getname_snd_ei(int nr, char *str); +struct IpoCurve *find_ipocurve(struct Ipo *ipo, int adrcode); +void boundbox_ipocurve(struct IpoCurve *icu); +void boundbox_ipo(struct Ipo *ipo, struct rctf *bb); +void editipo_changed(struct SpaceIpo *si, int doredraw); +void scale_editipo(void); +struct Ipo *get_ipo_to_edit(struct ID **from); +unsigned int ipo_rainbow(int cur, int tot); +void make_ob_editipo(struct Object *ob, struct SpaceIpo *si); +void make_seq_editipo(struct SpaceIpo *si); +void make_cu_editipo(struct SpaceIpo *si); +void make_key_editipo(struct SpaceIpo *si); +int texchannel_to_adrcode(int channel); +void make_mat_editipo(struct SpaceIpo *si); +void make_world_editipo(struct SpaceIpo *si); +void make_lamp_editipo(struct SpaceIpo *si); +void make_camera_editipo(struct SpaceIpo *si); +int make_action_editipo(struct Ipo *ipo, struct EditIpo **si); +int make_constraint_editipo(struct Ipo *ipo, struct EditIpo **si); +void make_sound_editipo(struct SpaceIpo *si); +void make_editipo(void); +void test_editipo(void); +void get_status_editipo(void); +void update_editipo_flags(void); +void set_editflag_editipo(void); +void swap_selectall_editipo(void); +void swap_visible_editipo(void); +void deselectall_editipo(void); +short findnearest_ipovert(struct IpoCurve **icu, struct BezTriple **bezt); +void move_to_frame(void); +void do_ipowin_buts(short event); +void do_ipo_selectbuttons(void); +struct EditIpo *get_editipo(void); +struct IpoCurve *get_ipocurve(struct ID *from, short type, int adrcode, struct Ipo* useipo); +void insert_vert_ipo(struct IpoCurve *icu, float x, float y); +void add_vert_ipo(void); +void add_duplicate_editipo(void); +void remove_doubles_ipo(void); +void join_ipo(void); +void ipo_snapmenu(void); +void mouse_select_ipo(void); +void sethandles_ipo(int code); +void set_ipotype(void); +void borderselect_ipo(void); +void del_ipo(void); +void free_ipocopybuf(void); +void copy_editipo(void); +void paste_editipo(void); +void set_exprap_ipo(int mode); +int find_other_handles(struct EditIpo *eicur, + float ctime, struct BezTriple **beztar); +void set_speed_editipo(float speed); +void insertkey(struct ID *id, int adrcode); +void insertkey_editipo(void); +void common_insertkey(void); +void free_ipokey(struct ListBase *lb); +void add_to_ipokey(struct ListBase *lb, struct BezTriple *bezt, int nr, int len); +void make_ipokey(void); +void make_ipokey_transform(struct Object *ob, struct ListBase *lb, int sel); +void update_ipokey_val(void); +void set_tob_old(float *old, float *poin); +void set_ipo_pointers_transob(struct IpoKey *ik, struct TransOb *tob); +void nextkey(struct ListBase *elems, int dir); +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 clever_numbuts_ipo(void); +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 set_ipo_key_selection(struct Ipo *ipo, int sel); +int is_ipo_key_selected(struct Ipo *ipo); +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); +void duplicate_ipo_keys(struct Ipo *ipo); +void borderselect_ipo_key(struct Ipo *ipo, float xmin, float xmax, int val); +void select_ipo_key(struct Ipo *ipo, float selx, int sel); + +#endif /* BSE_EDITIPO_H */ diff --git a/source/blender/include/BSE_editipo_types.h b/source/blender/include/BSE_editipo_types.h new file mode 100644 index 00000000000..b14e87bf1ef --- /dev/null +++ b/source/blender/include/BSE_editipo_types.h @@ -0,0 +1,262 @@ +/** + * $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 ***** + */ + +#ifndef BSE_EDITIPO_TYPES_H +#define BSE_EDITIPO_TYPES_H + +struct BezTriple; + +typedef struct IpoKey { + struct IpoKey *next, *prev; + short flag, rt; + float val; + struct BezTriple **data; +} IpoKey; + +typedef struct EditIpo { + char name[12]; + IpoCurve *icu; + short adrcode, flag; + short disptype, rt; + unsigned int col; +} EditIpo; + + +#define IPOBUTY 17 + +#define TOB_IPO 1 +#define TOB_IPODROT 2 +#define TOB_IKA 4 + +/* disptype */ +#define IPO_DISPDEGR 1 +#define IPO_DISPBITS 2 +#define IPO_DISPTIME 3 + +/* ******************** */ + +#define OB_TOTIPO 24 + +#define OB_LOC_X 1 +#define OB_LOC_Y 2 +#define OB_LOC_Z 3 +#define OB_DLOC_X 4 +#define OB_DLOC_Y 5 +#define OB_DLOC_Z 6 + +#define OB_ROT_X 7 +#define OB_ROT_Y 8 +#define OB_ROT_Z 9 +#define OB_DROT_X 10 +#define OB_DROT_Y 11 +#define OB_DROT_Z 12 + +#define OB_SIZE_X 13 +#define OB_SIZE_Y 14 +#define OB_SIZE_Z 15 +#define OB_DSIZE_X 16 +#define OB_DSIZE_Y 17 +#define OB_DSIZE_Z 18 + +#define OB_LAY 19 + +#define OB_TIME 20 + +#define OB_EFF_X 21 +#define OB_EFF_Y 22 +#define OB_EFF_Z 23 + +#define OB_COL_R 21 +#define OB_COL_G 22 +#define OB_COL_B 23 +#define OB_COL_A 24 + + + +/* ******************** */ + +#define MA_TOTIPO 32 + +#define MA_COL_R 1 +#define MA_COL_G 2 +#define MA_COL_B 3 +#define MA_SPEC_R 4 +#define MA_SPEC_G 5 +#define MA_SPEC_B 6 +#define MA_MIR_R 7 +#define MA_MIR_G 8 +#define MA_MIR_B 9 +#define MA_REF 10 +#define MA_ALPHA 11 +#define MA_EMIT 12 +#define MA_AMB 13 +#define MA_SPEC 14 +#define MA_HARD 15 +#define MA_SPTR 16 +#define MA_ANG 17 +#define MA_MODE 18 +#define MA_HASIZE 19 + +#define MA_MAP1 0x20 +#define MA_MAP2 0x40 +#define MA_MAP3 0x80 +#define MA_MAP4 0x100 +#define MA_MAP5 0x200 +#define MA_MAP6 0x400 +#define MA_MAP7 0x800 +#define MA_MAP8 0x1000 + +#define MAP_OFS_X 1 +#define MAP_OFS_Y 2 +#define MAP_OFS_Z 3 +#define MAP_SIZE_X 4 +#define MAP_SIZE_Y 5 +#define MAP_SIZE_Z 6 +#define MAP_R 7 +#define MAP_G 8 +#define MAP_B 9 + +#define MAP_DVAR 10 +#define MAP_COLF 11 +#define MAP_NORF 12 +#define MAP_VARF 13 + +/* ******************** */ + +#define SEQ_TOTIPO 1 + +#define SEQ_FAC1 1 + +/* ******************** */ + +#define CU_TOTIPO 1 + +#define CU_SPEED 1 + +/* ******************** */ + +#define KEY_TOTIPO 32 + +#define KEY_SPEED 0 +#define KEY_NR 1 + +/* ******************** */ + +#define WO_TOTIPO 29 + +#define WO_HOR_R 1 +#define WO_HOR_G 2 +#define WO_HOR_B 3 +#define WO_ZEN_R 4 +#define WO_ZEN_G 5 +#define WO_ZEN_B 6 + +#define WO_EXPOS 7 + +#define WO_MISI 8 +#define WO_MISTDI 9 +#define WO_MISTSTA 10 +#define WO_MISTHI 11 + +#define WO_STAR_R 12 +#define WO_STAR_G 13 +#define WO_STAR_B 14 +#define WO_STARDIST 15 +#define WO_STARSIZE 16 + +/* ******************** */ + +#define LA_TOTIPO 23 + +#define LA_ENERGY 1 +#define LA_COL_R 2 +#define LA_COL_G 3 +#define LA_COL_B 4 +#define LA_DIST 5 +#define LA_SPOTSI 6 +#define LA_SPOTBL 7 +#define LA_QUAD1 8 +#define LA_QUAD2 9 +#define LA_HALOINT 10 + +/* ******************** */ + +#define CAM_TOTIPO 3 + +#define CAM_LENS 1 +#define CAM_STA 2 +#define CAM_END 3 + + +/* ******************** */ + +#define SND_TOTIPO 4 + +#define SND_VOLUME 1 +#define SND_PITCH 2 +#define SND_PANNING 3 +#define SND_ATTEN 4 + +/* ******************** */ + +#define AC_TOTIPO 10 /* Action Ipos */ + +#define AC_LOC_X 1 +#define AC_LOC_Y 2 +#define AC_LOC_Z 3 + +#define AC_SIZE_X 13 +#define AC_SIZE_Y 14 +#define AC_SIZE_Z 15 + +#define AC_QUAT_W 25 +#define AC_QUAT_X 26 +#define AC_QUAT_Y 27 +#define AC_QUAT_Z 28 + +/* ******************** */ + +#define CO_TOTIPO 1 /* Constraint Ipos */ + +#define CO_ENFORCE 1 +/* +#define CO_TIME 2 +#define CO_OFFSET_X 3 +#define CO_OFFSET_Y 4 +#define CO_OFFSET_Z 5 +#define CO_ORIENT_X 6 +#define CO_ORIENT_Y 7 +#define CO_ORIENT_Z 8 +#define CO_ROLL 9 +*/ + +#endif /* BSE_EDITIPO_TYPES_H */ diff --git a/source/blender/include/BSE_editnla_types.h b/source/blender/include/BSE_editnla_types.h new file mode 100644 index 00000000000..a6ef781514c --- /dev/null +++ b/source/blender/include/BSE_editnla_types.h @@ -0,0 +1,42 @@ +/** + * $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 ***** + */ + +#ifndef BSE_EDITNLA_TYPES_H +#define BSE_EDITNLA_TYPES_H + +#define NLAWIDTH 196 +#define NLACHANNELHEIGHT 16 +#define NLACHANNELSKIP 1 + +#define ACTIVE_ARMATURE(base) ((base)->object->type==OB_ARMATURE && (base)->object->action) + +#endif /* BSE_EDITNLA_TYPES_H */ diff --git a/source/blender/include/BSE_filesel.h b/source/blender/include/BSE_filesel.h new file mode 100644 index 00000000000..dcc49ecc30e --- /dev/null +++ b/source/blender/include/BSE_filesel.h @@ -0,0 +1,59 @@ +/** + * $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 ***** + * + */ + +#ifndef BSE_FILESEL_H +#define BSE_FILESEL_H + +struct SpaceFile; +struct direntry; +struct ID; + +void clear_global_filesel_vars(void); +void filesel_statistics(struct SpaceFile *sfile, int *totfile, int *selfile, float *totlen, float *sellen); +void checkdir(char *dir); +void test_flags_file(struct SpaceFile *sfile); +void sort_filelist(struct SpaceFile *sfile); +void read_dir(struct SpaceFile *sfile); +void freefilelist(struct SpaceFile *sfile); +void parent(struct SpaceFile *sfile); +void swapselect_file(struct SpaceFile *sfile); +void drawfilespace(void); +void activate_fileselect(int type, char *title, char *file, void (*func)(char *)); +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 filesel_prevspace(void); +void free_filesel_spec(char *dir); +void winqreadfilespace(unsigned short event, short val, char ascii); +void main_to_filelist(struct SpaceFile *sfile); + +#endif diff --git a/source/blender/include/BSE_headerbuttons.h b/source/blender/include/BSE_headerbuttons.h new file mode 100644 index 00000000000..06693d70262 --- /dev/null +++ b/source/blender/include/BSE_headerbuttons.h @@ -0,0 +1,84 @@ +/** + * $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 ***** + */ + +#ifndef BSE_HEADERBUTTONS_H +#define BSE_HEADERBUTTONS_H + +struct uiBlock; +struct ID; + +void free_matcopybuf(void); +void clear_matcopybuf(void); +void write_videoscape_fs(void); +void write_vrml_fs(void); +void write_dxf_fs(void); +void do_global_buttons(unsigned short event); +void do_global_buttons2(short event); +int buttons_do_unpack(void); +struct Scene *copy_scene(struct Scene *sce, int level); +void do_info_buttons(unsigned short event); + +int start_progress_bar(); +void end_progress_bar(); +int progress_bar(float done, char *busy_info); + +void update_for_newframe(void); + +void info_buttons(void); +void do_seq_buttons(short event); +void seq_buttons(void); +void do_view3d_buttons(short event); +void sound_buttons(void); +void do_action_buttons(unsigned short event); +void do_ipo_buttons(short event); +void do_buts_buttons(short event); +void do_oops_buttons(short event); +void do_sound_buttons(unsigned short event); +void do_layer_buttons(short event); +void do_nla_buttons(unsigned short event); + +void nla_buttons(void); +void action_buttons(void); +void buts_buttons(void); +void file_buttons(void); +void image_buttons(void); +void imasel_buttons(void); +void ipo_buttons(void); +void oops_buttons(void); +void text_buttons(void); +void view3d_buttons(void); + +void buttons_active_id(struct ID **id, struct ID **idfrom); + +void do_headerbuttons(short event); + +#endif /* BSE_HEADERBUTTONS_H */ diff --git a/source/blender/include/BSE_sequence.h b/source/blender/include/BSE_sequence.h new file mode 100644 index 00000000000..67bc244e929 --- /dev/null +++ b/source/blender/include/BSE_sequence.h @@ -0,0 +1,113 @@ +/** + * $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 ***** + * + */ + +#ifndef BSE_SEQUENCE_H +#define BSE_SEQUENCE_H + +struct PluginSeq; +struct StripElem; +struct Strip; +struct Sequence; +struct ListBase; +struct Editing; +struct ImBuf; +struct Scene; + +void open_plugin_seq(struct PluginSeq *pis, char *seqname); +struct PluginSeq *add_plugin_seq(char *str, char *seqname); +void free_plugin_seq(struct PluginSeq *pis); +void free_stripdata(int len, struct StripElem *se); +void free_strip(struct Strip *strip); +void new_stripdata(struct Sequence *seq); +void free_sequence(struct Sequence *seq); +void do_seq_count(struct ListBase *seqbase, int *totseq); +void do_build_seqar(struct ListBase *seqbase, struct Sequence ***seqar, int depth); +void build_seqar(struct ListBase *seqbase, struct Sequence ***seqar, int *totseq); +void free_editing(struct Editing *ed); +void calc_sequence(struct Sequence *seq); +void sort_seq(void); +void clear_scene_in_allseqs(struct Scene *sce); +void do_alphaover_effect(float facf0, + float facf1, + int x, int y, + unsigned int *rect1, + unsigned int *rect2, + unsigned int *out); +void do_alphaunder_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect1, unsigned int *rect2, + unsigned int *out); +void do_cross_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect1, unsigned int *rect2, + unsigned int *out); +void do_gammacross_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect1, unsigned int *rect2, + unsigned int *out); +void do_add_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect1, unsigned int *rect2, + unsigned int *out); +void do_sub_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect1, unsigned int *rect2, + unsigned int *out); +void do_drop_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect2i, unsigned int *rect1i, + unsigned int *outi); +void do_drop_effect2(float facf0, float facf1, + int x, int y, + unsigned int *rect2, unsigned int *rect1, + unsigned int *out); +void do_mul_effect(float facf0, float facf1, + int x, int y, + unsigned int *rect1, unsigned int *rect2, + unsigned int *out); +void make_black_ibuf(struct ImBuf *ibuf); +void multibuf(struct ImBuf *ibuf, float fmul); +void do_effect(int cfra, struct Sequence *seq, struct StripElem *se); +int evaluate_seq_frame(int cfra); +struct StripElem *give_stripelem(struct Sequence *seq, int cfra); +void set_meta_stripdata(struct Sequence *seqm); +void do_seq_count_cfra(struct ListBase *seqbase, int *totseq, int cfra); +void do_build_seqar_cfra(struct ListBase *seqbase, struct Sequence ***seqar, int cfra); +struct ImBuf *give_ibuf_seq(int cfra); +void free_imbuf_effect_spec(int cfra); +void free_imbuf_seq_except(int cfra); +void free_imbuf_seq(void); +void do_render_seq(void); + + +#endif diff --git a/source/blender/include/BSE_trans_types.h b/source/blender/include/BSE_trans_types.h new file mode 100644 index 00000000000..44d7c44b339 --- /dev/null +++ b/source/blender/include/BSE_trans_types.h @@ -0,0 +1,88 @@ +/** + * $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 ***** + */ + +#ifndef BSE_TRANS_TYPES_H +#define BSE_TRANS_TYPES_H + +struct Object; +/* struct EditVlak; */ +/* struct EditEdge; */ +/* struct EditVert; */ +/* struct ListBase; */ + +typedef struct TransOb { + float *loc; + float oldloc[9]; + float *eff; + float oldeff[3]; + float *rot; + float oldrot[12]; + float olddrot[3]; + float *quat; + float oldquat[16]; + float olddquat[4]; + float *size; + float oldsize[12]; + float olddsize[3]; + float obmat[3][3]; + float obinv[3][3]; + float parmat[3][3]; + float parinv[3][3]; + float obvec[3]; + int flag; /* keys */ + float *locx, *locy, *locz; + float *rotx, *roty, *rotz; + float *quatx, *quaty, *quatz, *quatw; + float *sizex, *sizey, *sizez; + /* __NLA */ + float axismat[3][3]; /* Restmat of object (for localspace transforms) */ + void *data; /* Arbitrary data */ + /* end __NLA */ + struct Object *ob; +} TransOb; + +typedef struct TransVert { + float *loc; + float oldloc[3], fac; + float *val, oldval; + int flag; + float *nor; +} TransVert; + +typedef struct VPaint { + float r, g, b, a; + float size; /* van brush */ + float gamma, mul; + short mode, flag; +} VPaint; + +#endif /* BSE_TRANS_TYPES_H */ diff --git a/source/blender/include/BSE_types.h b/source/blender/include/BSE_types.h new file mode 100644 index 00000000000..552e44a7c70 --- /dev/null +++ b/source/blender/include/BSE_types.h @@ -0,0 +1,71 @@ +/** + * $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 ***** + */ +/* forward declarations for some prototype header */ +/* these may wildly occur in other header files, too */ + +struct BGpic; +struct SpaceText; +struct Oops; +struct OopsLink; +struct uiBlock; +struct BoundBox; +struct Image; +struct ImBuf; +struct SpaceImaSel; +struct Sequence; +struct Scene; +struct IpoCurve; +struct Ipo; +struct IpoKey; +struct Mesh; +struct TFace; +struct Object; +struct TransOb; +struct TransVert; +struct BPoint; +struct BezTriple; + +struct Nurb; + +struct EditVlak; +struct EditVert; +struct EditEdge; +struct EditIpo; + +struct bArmature; +struct Bone; + +/* interface crap */ +struct uiBut; + + + diff --git a/source/blender/include/BSE_view.h b/source/blender/include/BSE_view.h new file mode 100644 index 00000000000..a02000a6f39 --- /dev/null +++ b/source/blender/include/BSE_view.h @@ -0,0 +1,70 @@ +/** + * $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 ***** + * protos for view.c -- not complete + */ + +#ifndef BSE_VIEW_H +#define BSE_VIEW_H + +struct Object; +struct BoundBox; +struct View3D; +struct ScrArea; + +void persp3d(struct View3D *v3d, int a); +void persp_general(int a); +void persp(int a); +void initgrabz(float x, float y, float z); +void window_to_3d(float *vec, short mx, short my); +void project_short(float *vec, short *adr); +void project_short_noclip(float *vec, short *adr); +int boundbox_clip(float obmat[][4], struct BoundBox *bb); +void fdrawline(float x1, float y1, float x2, float y2); +void fdrawbox(float x1, float y1, float x2, float y2); +void sdrawline(short x1, short y1, short x2, short y2); +void sdrawbox(short x1, short y1, short x2, short y2); +void calctrackballvecfirst(struct rcti *area, short *mval, float *vec); +void calctrackballvec(struct rcti *area, short *mval, float *vec); +void viewmove(int mode); +void setwinmatrixview3d(struct rctf *rect); +void obmat_to_viewmat(struct Object *ob); +void setviewmatrixview3d(void); +float *give_cursor(void); +unsigned int free_localbit(void); +void initlocalview(void); +void centreview(void); +void restore_localviewdata(struct View3D *vd); +void endlocalview(struct ScrArea *sa); +void view3d_home(int centre); +short selectprojektie(unsigned int *buffer, short x1, short y1, short x2, short y2); +void view3d_align_axis_to_vector(struct View3D *v3d, int axisidx, float vec[3]); + +#endif diff --git a/source/blender/include/LOD_DependKludge.h b/source/blender/include/LOD_DependKludge.h new file mode 100644 index 00000000000..d8930a4fdba --- /dev/null +++ b/source/blender/include/LOD_DependKludge.h @@ -0,0 +1,40 @@ +/* + * $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 ***** + * Decimation file dependency fix (and kludge) + * Use together with a NAN_DECIMATIONTEST env.var. for Makefile-based linking + */ +#ifndef LOD_DEPENDKLUDGE_H +#define LOD_DEPENDKLUDGE_H + + +#define NAN_DECIMATION + +#endif //LOD_DEPENDKLUDGE_H diff --git a/source/blender/include/TPT_DependKludge.h b/source/blender/include/TPT_DependKludge.h new file mode 100644 index 00000000000..32ad32ad29c --- /dev/null +++ b/source/blender/include/TPT_DependKludge.h @@ -0,0 +1,42 @@ +/* + * $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 ***** + * Texture paint tool file dependency fix (and kludge) + */ + +#ifndef TPT_DEPENDKLUDGE_H +#define TPT_DEPENDKLUDGE_H + + +#define NAN_TPT +//#undef NAN_TPT + +#endif /* TPT_DEPENDKLUDGE_H */ + diff --git a/source/blender/include/blendef.h b/source/blender/include/blendef.h new file mode 100644 index 00000000000..6d6b3904645 --- /dev/null +++ b/source/blender/include/blendef.h @@ -0,0 +1,403 @@ +/* $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 ***** + */ +#ifndef BLENDEF_H +#define BLENDEF_H + +#ifdef WIN32 +#else +#ifndef __BeOS +#define O_BINARY 0 +#endif +#endif + +#ifndef MAXFLOAT +#define MAXFLOAT ((float)3.40282347e+38) +#endif + +#include <float.h> /* deze moet een keer naar de blender.h */ + + + + +/* **************** ALGEMEEN ********************* */ + +#define VECCOPY(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1); *(v1+2)= *(v2+2);} +#define QUATCOPY(v1,v2) {*(v1)= *(v2); *(v1+1)= *(v2+1); *(v1+2)= *(v2+2); *(v1+3)= *(v2+3);} + +#define INPR(v1, v2) ( (v1)[0]*(v2)[0] + (v1)[1]*(v2)[1] + (v1)[2]*(v2)[2] ) +#define CLAMP(a, b, c) if((a)<(b)) (a)=(b); else if((a)>(c)) (a)=(c) +#define CLAMPIS(a, b, c) ((a)<(b) ? (b) : (a)>(c) ? (c) : (a)) +#define CLAMPTEST(a, b, c) if((b)<(c)) {CLAMP(a, b, c);} else {CLAMP(a, c, b);} + +#define IS_EQ(a,b) ((fabs((double)(a)-(b)) >= (double) FLT_EPSILON) ? 0 : 1) + +#define INIT_MINMAX(min, max) (min)[0]= (min)[1]= (min)[2]= 1.0e30; (max)[0]= (max)[1]= (max)[2]= -1.0e30; +#define DO_MINMAX(vec, min, max) if( (min)[0]>(vec)[0] ) (min)[0]= (vec)[0]; \ + if( (min)[1]>(vec)[1] ) (min)[1]= (vec)[1]; \ + if( (min)[2]>(vec)[2] ) (min)[2]= (vec)[2]; \ + if( (max)[0]<(vec)[0] ) (max)[0]= (vec)[0]; \ + if( (max)[1]<(vec)[1] ) (max)[1]= (vec)[1]; \ + if( (max)[2]<(vec)[2] ) (max)[2]= (vec)[2]; \ + +#define DO_MINMAX2(vec, min, max) if( (min)[0]>(vec)[0] ) (min)[0]= (vec)[0]; \ + if( (min)[1]>(vec)[1] ) (min)[1]= (vec)[1]; \ + if( (max)[0]<(vec)[0] ) (max)[0]= (vec)[0]; \ + if( (max)[1]<(vec)[1] ) (max)[1]= (vec)[1]; + +#define MINSIZE(val, size) ( ((val)>=0.0) ? (((val)<(size)) ? (size): (val)) : ( ((val)>(-size)) ? (-size) : (val))) + +#define BTST(a,b) ( ( (a) & 1<<(b) )!=0 ) +#define BCLR(a,b) ( (a) & ~(1<<(b)) ) +#define BSET(a,b) ( (a) | 1<<(b) ) +/* bit-row */ +#define BROW(min, max) (((max)>=31? 0xFFFFFFFF: (1<<(max+1))-1) - ((min)? ((1<<(min))-1):0) ) + +// return values + +#define RET_OK 0 +#define RET_ERROR 1 +#define RET_CANCEL 2 +#define RET_YES (1 == 1) +#define RET_NO (1 == 0) + +#define LONGCOPY(a, b, c) {int lcpc=c, *lcpa=(int *)a, *lcpb=(int *)b; while(lcpc-->0) *(lcpa++)= *(lcpb++);} + +#if defined(__sgi) || defined(__sparc) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__) +/* big endian */ +#define MAKE_ID2(c, d) ( (c)<<8 | (d) ) +#define MOST_SIG_BYTE 0 +#define BBIG_ENDIAN +#else +/* little endian */ +#define MAKE_ID2(c, d) ( (d)<<8 | (c) ) +#define MOST_SIG_BYTE 1 +#define BLITTLE_ENDIAN +#endif + +#define SELECT 1 +#define ACTIVE 2 +#define NOT_YET 0 + + +#define TESTBASE(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) ) +#define TESTBASELIB(base) ( ((base)->flag & SELECT) && ((base)->lay & G.vd->lay) && ((base)->object->id.lib==0)) +#define FIRSTBASE G.scene->base.first +#define LASTBASE G.scene->base.last +#define BASACT (G.scene->basact) +#define OBACT (BASACT? BASACT->object: 0) +#define ID_NEW(a) if( (a) && (a)->id.newid ) (a)= (void *)(a)->id.newid +#define ID_NEW_US(a) if( (a)->id.newid) {(a)= (void *)(a)->id.newid; (a)->id.us++;} +#define ID_NEW_US2(a) if( ((ID *)a)->newid) {(a)= ((ID *)a)->newid; ((ID *)a)->us++;} +#define CFRA (G.scene->r.cfra) +#define F_CFRA ((float)(G.scene->r.cfra)) +#define SFRA (G.scene->r.sfra) +#define EFRA (G.scene->r.efra) + +#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 KNOTSU(nu) ( (nu)->orderu+ (nu)->pntsu+ (nu->orderu-1)*((nu)->flagu & 1) ) +#define KNOTSV(nu) ( (nu)->orderv+ (nu)->pntsv+ (nu->orderv-1)*((nu)->flagv & 1) ) + +/* psfont */ +#define FNT_PDRAW 1 +#define FNT_HAEBERLI 2 + + +/* isect en scanfill */ +#define COMPLIMIT 0.0003 + + +/* **************** MAX ********************* */ + + +#define MAXLAMP 256 +/* max lengte material array, 16 vanwege bitjes in matfrom */ +#define MAXPICKBUF 2000 +#define MAXSEQ 32 +/* in Image struct */ +#define MAXMIPMAP 10 +/* in buttons.c */ +#define MAX_EFFECT 20 + +/* getbutton */ + +/* do_global_buttons(event) */ + +#define B_ACTLOCAL 24 /* __NLA */ +#define B_ACTALONE 25 /* __NLA */ +#define B_ARMLOCAL 26 /* __NLA */ +#define B_ARMALONE 27 /* __NLA */ + +#define B_WORLDLOCAL 28 +#define B_WORLDALONE 29 +#define B_LATTLOCAL 30 +#define B_MBALLLOCAL 31 +#define B_CAMERALOCAL 32 +#define B_OBLOCAL 33 +#define B_IPOLOCAL 34 +#define B_LAMPLOCAL 35 +#define B_MATLOCAL 36 +#define B_TEXLOCAL 37 +#define B_MESHLOCAL 38 +#define B_CURVELOCAL 39 + +#define B_LATTALONE 40 +#define B_MBALLALONE 41 +#define B_CAMERAALONE 42 +#define B_OBALONE 43 +#define B_IPOALONE 44 +#define B_LAMPALONE 45 +#define B_MATALONE 46 +#define B_TEXALONE 47 +#define B_MESHALONE 48 +#define B_CURVEALONE 49 +/* EVENT < 50: alone's en locals */ + +#define B_SHOWSPLASH 70 +#define B_RESETAUTOSAVE 71 +#define B_SOUNDTOGGLE 72 +#define B_MIPMAPCHANGED 73 +#define B_CONSTRAINTBROWSE 74 /* __NLA */ +#define B_ACTIONDELETE 75 /* __NLA */ +#define B_ACTIONBROWSE 76 /* __NLA */ +#define B_IMAGEDELETE 77 +#define B_LTEXBROWSE 78 +#define B_MESHBROWSE 79 +#define B_EXTEXBROWSE 80 +#define B_LOADTEMP 81 +#define B_MATDELETE 82 +#define B_TEXDELETE 83 +#define B_IPODELETE 84 +#define B_WORLDDELETE 85 +#define B_WTEXBROWSE 86 +#define B_WORLDBROWSE 87 +#define B_IPOBROWSE 88 +#define B_NEWFRAME 89 +#define B_LAMPBROWSE 90 +#define B_MATBROWSE 91 +#define B_TEXBROWSE 92 +#define B_EDITBROWSE 93 +#define B_AUTOTEXNAME 94 +#define B_AUTOMATNAME 95 +#define B_MATLOCK 96 +#define B_IDNAME 97 +#define B_NEWSPACE 98 +#define B_FULL 99 +#define B_REDR 100 + + +/* VIEW3D: 100 */ +#define B_HOME 101 +#define B_LAY 102 +/* pasop: codes 102-132 in gebuik voor layers */ +#define B_AUTOKEY 139 +#define B_SCENELOCK 140 +#define B_LOCALVIEW 141 +#define B_U_CAPSLOCK 142 +#define B_EDITMODE 143 +#define B_VPAINT 144 +#define B_FACESEL 145 +#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_POSEMODE 153 +#define B_TEXTUREPAINT 154 +#define B_WPAINT 155 + +/* IPO: 200 */ +#define B_IPOHOME 201 +#define B_IPOBORDER 202 +#define B_IPOCOPY 203 +#define B_IPOPASTE 204 +#define B_IPOCONT 205 +#define B_IPOEXTRAP 206 +#define B_IPOCYCLIC 207 +#define B_IPOMAIN 208 +#define B_IPOSHOWKEY 209 +#define B_IPOCYCLICX 210 + /* warn: also used for oops and seq */ +#define B_VIEW2DZOOM 211 +#define B_IPOPIN 212 + +/* OOPS: 250 */ +#define B_OOPSHOME 251 +#define B_OOPSBORDER 252 +#define B_NEWOOPS 253 + +/* INFO: 300 */ +/* pas op: ook in filesel.c en editobject.c */ +#define B_INFOSCR 301 +#define B_INFODELSCR 302 +#define B_INFOSCE 304 +#define B_INFODELSCE 305 +#define B_FILEMENU 306 +#define B_PACKFILE 307 + +/* 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_SIMAGEREPLACE 358 +#define B_CLIP_UV 359 +#define B_SIMAGELOAD1 360 +#define B_SIMAGEREPLACE1 361 +#define B_SIMAGEPAINTTOOL 362 +#define B_SIMAPACKIMA 363 +#define B_SIMAGESAVE 364 + +/* BUTS: 400 */ +#define B_BUTSHOME 401 +#define B_BUTSPREVIEW 402 +#define B_MATCOPY 403 +#define B_MATPASTE 404 +#define B_MESHTYPE 405 + +/* IMASEL: 450 */ +/* in de imasel.h */ + +/* TEXT: 500 */ +#define B_TEXTBROWSE 501 +#define B_TEXTALONE 502 +#define B_TEXTLOCAL 503 +#define B_TEXTDELETE 504 +#define B_TEXTFONT 505 +#define B_TEXTSTORE 506 + +/* FILE: 550 */ +#define B_SORTFILELIST 551 +#define B_RELOADDIR 552 + +/* SEQUENCE: 600 */ +#define B_SEQHOME 601 +#define B_SEQCLEAR 602 + +/* SOUND: 650 */ +#define B_SOUNDBROWSE 651 +#define B_SOUNDBROWSE2 652 +#define B_SOUNDHOME 653 +#define B_PACKSOUND 654 + +/* ACTION: 701 - 800 */ +#define B_ACTHOME 701 +#define B_ACTCOPY 702 +#define B_ACTPASTE 703 +#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_NOTHING -1 +#define B_NOP -1 + +/* NLA: 801-900 */ +#define B_NLAHOME 801 + +/* editbutflag */ +#define B_CLOCKWISE 1 +#define B_KEEPORIG 2 +#define B_BEAUTY 4 +#define B_SMOOTH 8 + + +/* ***************** DISPLIST ***************** */ + +#define DL_POLY 0 +#define DL_SEGM 1 +#define DL_SURF 2 +#define DL_TRIA 3 +#define DL_INDEX3 4 +#define DL_INDEX4 5 +#define DL_VERTCOL 6 +#define DL_VERTS 7 +#define DL_NORS 8 + +#define DL_SURFINDEX(cyclu, cyclv, sizeu, sizev) \ + \ + if( (cyclv)==0 && a==(sizev)-1) break; \ + if(cyclu) { \ + p1= sizeu*a; \ + p2= p1+ sizeu-1; \ + p3= p1+ sizeu; \ + p4= p2+ sizeu; \ + b= 0; \ + } \ + else { \ + p2= sizeu*a; \ + p1= p2+1; \ + p4= p2+ sizeu; \ + p3= p1+ sizeu; \ + b= 1; \ + } \ + if( (cyclv) && a==sizev-1) { \ + p3-= sizeu*sizev; \ + p4-= sizeu*sizev; \ + } + +/* DISPLAYMODE */ +#define R_DISPLAYVIEW 0 +#define R_DISPLAYWIN 1 +#define R_DISPLAYAUTO 2 + + + +#if defined(__sgi) || defined(__sparc) || defined (__PPC__) || defined (__ppc__) || defined (__BIG_ENDIAN__) +#define RCOMP 3 +#define GCOMP 2 +#define BCOMP 1 +#define ACOMP 0 + +#else + +#define RCOMP 0 +#define GCOMP 1 +#define BCOMP 2 +#define ACOMP 3 +#endif + +#ifdef GS +#undef GS +#endif +#define GS(a) (*((short *)(a))) + +#endif diff --git a/source/blender/include/datatoc.h b/source/blender/include/datatoc.h new file mode 100644 index 00000000000..0d74ae891c5 --- /dev/null +++ b/source/blender/include/datatoc.h @@ -0,0 +1,56 @@ +/* + * datatoc.h + * + * $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 ***** + */ + +#ifndef DATATOC_H +#define DATATOC_H + +extern int datatoc_B_blend_size; +extern char datatoc_B_blend[]; + +extern int datatoc_Bfs_size; +extern char datatoc_Bfs[]; + +extern int datatoc_blenderbuttons_size; +extern char datatoc_blenderbuttons[]; + +extern int datatoc_Bfont_size; +extern char datatoc_Bfont[]; + +extern int datatoc_cmap_tga_size; +extern char datatoc_cmap_tga[]; + +extern int datatoc_cmovie_tga_size; +extern char datatoc_cmovie_tga[]; + +#endif /* DATATOC_H */ diff --git a/source/blender/include/editlattice_ext.h b/source/blender/include/editlattice_ext.h new file mode 100644 index 00000000000..bbea1e6eb93 --- /dev/null +++ b/source/blender/include/editlattice_ext.h @@ -0,0 +1,41 @@ +/* + * editlattice_ext.h + * + * $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 ***** + */ + +#ifndef EDITLATTICE_EXT_H +#define EDITLATTICE_EXT_H "$Id$" +#define EDITLATTICE_EXT_H "Copyright (C) 2001 NaN Technologies B.V. + +void end_latt_deform(void); + +#endif /* EDITLATTICE_EXT_H */ diff --git a/source/blender/include/interface.h b/source/blender/include/interface.h new file mode 100644 index 00000000000..d4155a81de4 --- /dev/null +++ b/source/blender/include/interface.h @@ -0,0 +1,130 @@ +/** + * $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 ***** + */ + +#ifndef INTERFACE_H +#define INTERFACE_H + +/* general defines */ + +#define UI_MAX_DRAW_STR 180 +#define UI_MAX_NAME_STR 64 +#define UI_ARRAY 29 + +/* block->font, for now: bold = medium+1 */ +#define UI_HELV 0 +#define UI_HELVB 1 + + +/* MAART: moved from Button.h */ +/* Button types */ +#define CHA 32 +#define SHO 64 +#define INT 96 +#define FLO 128 +#define FUN 192 +#define BIT 256 + +#define BUTPOIN (128+64+32) + +#define BUT (1<<9) +#define ROW (2<<9) +#define TOG (3<<9) +#define SLI (4<<9) +#define NUM (5<<9) +#define TEX (6<<9) +#define TOG3 (7<<9) +#define TOGR (8<<9) +#define TOGN (9<<9) +#define LABEL (10<<9) +#define MENU (11<<9) +#define ICONROW (12<<9) +#define ICONTOG (13<<9) +#define NUMSLI (14<<9) +#define COL (15<<9) +#define IDPOIN (16<<9) +#define HSVSLI (17<<9) +#define SCROLL (18<<9) +#define BLOCK (19<<9) +#define BUTM (20<<9) +#define SEPR (21<<9) +#define LINK (22<<9) +#define INLINK (23<<9) +#define KEYEVT (24<<9) + +#define BUTTYPE (31<<9) + +#define MAXBUTSTR 20 + + +/* return from uiDoBlock */ +#define UI_CONT 0 +#define UI_NOTHING 1 +#define UI_RETURN_CANCEL 2 +#define UI_RETURN_OK 4 +#define UI_RETURN_OUT 8 +#define UI_RETURN 14 + +/* uiBut->flag */ +#define UI_SELECT 1 +#define UI_MOUSE_OVER 2 +#define UI_ACTIVE 4 +#define UI_HAS_ICON 8 +#define UI_TEXT_LEFT 16 + +/* uiBlock->flag */ +#define UI_BLOCK_LOOP 1 +#define UI_BLOCK_REDRAW 2 +#define UI_BLOCK_RET_1 4 +#define UI_BLOCK_BUSY 8 +#define UI_BLOCK_NUMSELECT 16 +#define UI_BLOCK_ENTER_OK 32 +#define UI_BLOCK_MENUMODE 128 + +/* uiBlock->dt */ +#define UI_EMBOSSX 0 /* Rounded embossed button */ +#define UI_EMBOSSW 1 /* Flat bordered button */ +#define UI_EMBOSSN 2 /* No border */ +#define UI_EMBOSSF 3 /* Square embossed button */ +#define UI_EMBOSSM 4 /* Colored Border */ +#define UI_EMBOSSP 5 /* Borderless coloured button */ + +/* uiBlock->direction */ +#define UI_TOP 0 +#define UI_DOWN 1 +#define UI_LEFT 2 +#define UI_RIGHT 3 + +/* uiBlock->autofill */ +#define UI_BLOCK_COLLUMNS 1 +#define UI_BLOCK_ROWS 2 + +#endif diff --git a/source/blender/include/ipo.h b/source/blender/include/ipo.h new file mode 100644 index 00000000000..a93c043d939 --- /dev/null +++ b/source/blender/include/ipo.h @@ -0,0 +1,262 @@ + +/* ipo.h + * + * april 95 + * + * $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 ***** + */ + +#ifndef IPO_H +#define IPO_H + +struct BezTriple; + +typedef struct IpoKey { + struct IpoKey *next, *prev; + short flag, rt; + float val; + struct BezTriple **data; +} IpoKey; + +typedef struct EditIpo { + char name[12]; + IpoCurve *icu; + short adrcode, flag; + short disptype, rt; + unsigned int col; +} EditIpo; + + +#define IPOBUTY 17 + + +/* disptype */ +#define IPO_DISPDEGR 1 +#define IPO_DISPBITS 2 +#define IPO_DISPTIME 3 + +/* ******************** */ + +#define OB_TOTIPO 24 + +#define OB_LOC_X 1 +#define OB_LOC_Y 2 +#define OB_LOC_Z 3 +#define OB_DLOC_X 4 +#define OB_DLOC_Y 5 +#define OB_DLOC_Z 6 + +#define OB_ROT_X 7 +#define OB_ROT_Y 8 +#define OB_ROT_Z 9 +#define OB_DROT_X 10 +#define OB_DROT_Y 11 +#define OB_DROT_Z 12 + +#define OB_SIZE_X 13 +#define OB_SIZE_Y 14 +#define OB_SIZE_Z 15 +#define OB_DSIZE_X 16 +#define OB_DSIZE_Y 17 +#define OB_DSIZE_Z 18 + +#define OB_LAY 19 + +#define OB_TIME 20 + +#define OB_EFF_X 21 +#define OB_EFF_Y 22 +#define OB_EFF_Z 23 + +#define OB_COL_R 21 +#define OB_COL_G 22 +#define OB_COL_B 23 +#define OB_COL_A 24 + + + +/* ******************** */ + +#define MA_TOTIPO 32 + +#define MA_COL_R 1 +#define MA_COL_G 2 +#define MA_COL_B 3 +#define MA_SPEC_R 4 +#define MA_SPEC_G 5 +#define MA_SPEC_B 6 +#define MA_MIR_R 7 +#define MA_MIR_G 8 +#define MA_MIR_B 9 +#define MA_REF 10 +#define MA_ALPHA 11 +#define MA_EMIT 12 +#define MA_AMB 13 +#define MA_SPEC 14 +#define MA_HARD 15 +#define MA_SPTR 16 +#define MA_ANG 17 +#define MA_MODE 18 +#define MA_HASIZE 19 + +#define MA_MAP1 0x20 +#define MA_MAP2 0x40 +#define MA_MAP3 0x80 +#define MA_MAP4 0x100 +#define MA_MAP5 0x200 +#define MA_MAP6 0x400 +#define MA_MAP7 0x800 +#define MA_MAP8 0x1000 + +#define MAP_OFS_X 1 +#define MAP_OFS_Y 2 +#define MAP_OFS_Z 3 +#define MAP_SIZE_X 4 +#define MAP_SIZE_Y 5 +#define MAP_SIZE_Z 6 +#define MAP_R 7 +#define MAP_G 8 +#define MAP_B 9 + +#define MAP_DVAR 10 +#define MAP_COLF 11 +#define MAP_NORF 12 +#define MAP_VARF 13 + +/* ******************** */ + +#define SEQ_TOTIPO 1 + +#define SEQ_FAC1 1 + +/* ******************** */ + +#define CU_TOTIPO 1 + +#define CU_SPEED 1 + +/* ******************** */ + +#define KEY_TOTIPO 32 + +#define KEY_SPEED 0 +#define KEY_NR 1 + +/* ******************** */ + +#define WO_TOTIPO 29 + +#define WO_HOR_R 1 +#define WO_HOR_G 2 +#define WO_HOR_B 3 +#define WO_ZEN_R 4 +#define WO_ZEN_G 5 +#define WO_ZEN_B 6 + +#define WO_EXPOS 7 + +#define WO_MISI 8 +#define WO_MISTDI 9 +#define WO_MISTSTA 10 +#define WO_MISTHI 11 + +#define WO_STAR_R 12 +#define WO_STAR_G 13 +#define WO_STAR_B 14 +#define WO_STARDIST 15 +#define WO_STARSIZE 16 + +/* ******************** */ + +#define LA_TOTIPO 23 + +#define LA_ENERGY 1 +#define LA_COL_R 2 +#define LA_COL_G 3 +#define LA_COL_B 4 +#define LA_DIST 5 +#define LA_SPOTSI 6 +#define LA_SPOTBL 7 +#define LA_QUAD1 8 +#define LA_QUAD2 9 +#define LA_HALOINT 10 + +/* ******************** */ + +#define CAM_TOTIPO 3 + +#define CAM_LENS 1 +#define CAM_STA 2 +#define CAM_END 3 + + +/* ******************** */ + +#define SND_TOTIPO 4 + +#define SND_VOLUME 1 +#define SND_PITCH 2 +#define SND_PANNING 3 +#define SND_ATTEN 4 + +/* ******************** */ + +#define AC_TOTIPO 10 /* Action Ipos */ + +#define AC_LOC_X 1 +#define AC_LOC_Y 2 +#define AC_LOC_Z 3 + +#define AC_SIZE_X 13 +#define AC_SIZE_Y 14 +#define AC_SIZE_Z 15 + +#define AC_QUAT_W 25 +#define AC_QUAT_X 26 +#define AC_QUAT_Y 27 +#define AC_QUAT_Z 28 + +/* ******************** */ + +#define CO_TOTIPO 1 /* Constraint Ipos */ + +#define CO_ENFORCE 1 +/* +#define CO_TIME 2 +#define CO_OFFSET_X 3 +#define CO_OFFSET_Y 4 +#define CO_OFFSET_Z 5 +#define CO_ORIENT_X 6 +#define CO_ORIENT_Y 7 +#define CO_ORIENT_Z 8 +#define CO_ROLL 9 +*/ +#endif /* IPO_H */ diff --git a/source/blender/include/keyed_functions.h b/source/blender/include/keyed_functions.h new file mode 100644 index 00000000000..d3bfd8e7710 --- /dev/null +++ b/source/blender/include/keyed_functions.h @@ -0,0 +1,68 @@ +/* $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 ***** + */ + + +#define KEY_GETPTR(x) (g_ptrtab ? g_ptrtab[x] : 0) + +/* these are the defines for the keyed functions: + + #define key_func<n> <function name to be behind key> + + This function must be of type "int func(void*)" + + To prevent symbol table dumpers from retrieving certain key + functions too easily, some of those functions have nonsense names. +*/ + +#define key_func1 make_beautiful_animation +#define key_func2 key_return_true +#define key_func3 calc_memleak +/* add the corresponding function pointer defines here. + Example: + + #define key_func4 my_protected_function_name + #define MY_PROTECTED_FUNCTION_PTR KEY_GETPTR(KEY_FUNC3) + + KEY_GETPTR(KEY_FUNC3) corresponds to the function pointer to function + key_func3 after the python key code unscrambled the function pointer tables. + Also add pointer initializations to these functions in + license_key.c:init_ftable() if necessary. +*/ + +#define KEY_WRITE_RUNTIME KEY_GETPTR(KEY_FUNC1) +#define KEY_RETURN_TRUE KEY_GETPTR(KEY_FUNC2) +#define KEY_NLA_EVENT KEY_GETPTR(KEY_FUNC3) + +/* PROTOS */ +int make_beautiful_animation(void *vp); +int calc_memleak (void* ptr); + + diff --git a/source/blender/include/license_key.h b/source/blender/include/license_key.h new file mode 100644 index 00000000000..b2abf2c0f6f --- /dev/null +++ b/source/blender/include/license_key.h @@ -0,0 +1,94 @@ +/** + * $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 ***** + */ +#ifndef LICENCEKEY_H +#define LICENCEKEY_H + +#define I_AM_PUBLISHER temp_val2 +#define LICENSE_KEY_VALID temp_val +#define SHOW_LICENSE_KEY rotop + +extern int LICENSE_KEY_VALID; +extern int I_AM_PUBLISHER; + +extern char * license_key_name; +extern void loadKeyboard(char * name); +extern void checkhome(void); +extern void SHOW_LICENSE_KEY(void); + +#define LICENSE_CHECK_0 (0==0) + +// Stuff from the Python files from Strubi + +typedef int (*Fptr)(void *); + +extern Fptr g_functab[]; +extern Fptr g_ptrtab[]; + +// TODO: From here on, this should be a generated header file... + +// change all KEY_FUNC values +// if you change PYKEY_TABLEN or PYKEY_SEED +// see below + +#define PYKEY_TABLEN 21 // don't change this unless needed. Other values + // may yield bad random orders + +#define PYKEY_SEED {26,8,1972} + +// these values are generated by $HOME/develop/intern/keymaker/makeseed.py +// from the above seed value. + +// DO NOT EDIT THESE VALUES BY HAND! + +#define KEY_FUNC1 12 +#define KEY_FUNC2 8 +#define KEY_FUNC3 1 +#define KEY_FUNC4 16 +#define KEY_FUNC5 20 +#define KEY_FUNC6 18 +#define KEY_FUNC7 13 +#define KEY_FUNC8 6 +#define KEY_FUNC9 9 +#define KEY_FUNC10 7 +#define KEY_FUNC11 14 +#define KEY_FUNC12 0 +#define KEY_FUNC13 5 +#define KEY_FUNC14 10 +#define KEY_FUNC15 19 +#define KEY_FUNC16 2 +#define KEY_FUNC17 11 +#define KEY_FUNC18 3 +#define KEY_FUNC19 17 +#define KEY_FUNC20 15 +#define KEY_FUNC21 4 + +#endif diff --git a/source/blender/include/mydevice.h b/source/blender/include/mydevice.h new file mode 100644 index 00000000000..d87463cd7d9 --- /dev/null +++ b/source/blender/include/mydevice.h @@ -0,0 +1,242 @@ + +#ifndef __MYDEVICE_H__ +#define __MYDEVICE_H__ + +/* + * + * mouse / timer / window: tot 0x020 + * eigen codes: 0x4... + * + * $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 ***** + */ + + + +/* MOUSE : 0x00x */ + +#define LEFTMOUSE 0x001 +#define MIDDLEMOUSE 0x002 +#define RIGHTMOUSE 0x003 +#define MOUSEX 0x004 +#define MOUSEY 0x005 + +/* timers */ + +#define TIMER0 0x006 +#define TIMER1 0x007 +#define TIMER2 0x008 +#define TIMER3 0x009 + +/* SYSTEM : 0x01x */ + +#define KEYBD 0x010 /* keyboard */ +#define RAWKEYBD 0x011 /* raw keyboard for keyboard manager */ +#define REDRAW 0x012 /* used by port manager to signal redraws */ +#define INPUTCHANGE 0x013 /* input connected or disconnected */ +#define QFULL 0x014 /* queue was filled */ +#define WINFREEZE 0x015 /* user wants process in this win to shut up */ +#define WINTHAW 0x016 /* user wants process in this win to go again */ +#define WINCLOSE 0x017 /* window close */ +#define WINQUIT 0x018 /* signal from user that app is to go away */ +#define Q_FIRSTTIME 0x019 /* on startup */ + +/* standard keyboard */ + +#define AKEY 'a' +#define BKEY 'b' +#define CKEY 'c' +#define DKEY 'd' +#define EKEY 'e' +#define FKEY 'f' +#define GKEY 'g' +#define HKEY 'h' +#define IKEY 'i' +#define JKEY 'j' +#define KKEY 'k' +#define LKEY 'l' +#define MKEY 'm' +#define NKEY 'n' +#define OKEY 'o' +#define PKEY 'p' +#define QKEY 'q' +#define RKEY 'r' +#define SKEY 's' +#define TKEY 't' +#define UKEY 'u' +#define VKEY 'v' +#define WKEY 'w' +#define XKEY 'x' +#define YKEY 'y' +#define ZKEY 'z' + +#define ZEROKEY '0' +#define ONEKEY '1' +#define TWOKEY '2' +#define THREEKEY '3' +#define FOURKEY '4' +#define FIVEKEY '5' +#define SIXKEY '6' +#define SEVENKEY '7' +#define EIGHTKEY '8' +#define NINEKEY '9' + +#define CAPSLOCKKEY 211 + +#define LEFTCTRLKEY 212 +#define LEFTALTKEY 213 +#define RIGHTALTKEY 214 +#define RIGHTCTRLKEY 215 +#define RIGHTSHIFTKEY 216 +#define LEFTSHIFTKEY 217 + +#define ESCKEY 218 +#define TABKEY 219 +#define RETKEY 220 +#define SPACEKEY 221 +#define LINEFEEDKEY 222 +#define BACKSPACEKEY 223 +#define DELKEY 224 +#define SEMICOLONKEY 225 +#define PERIODKEY 226 +#define COMMAKEY 227 +#define QUOTEKEY 228 +#define ACCENTGRAVEKEY 229 +#define MINUSKEY 230 +#define SLASHKEY 232 +#define BACKSLASHKEY 233 +#define EQUALKEY 234 +#define LEFTBRACKETKEY 235 +#define RIGHTBRACKETKEY 236 + +#define LEFTARROWKEY 137 +#define DOWNARROWKEY 138 +#define RIGHTARROWKEY 139 +#define UPARROWKEY 140 + +#define PAD0 150 +#define PAD1 151 +#define PAD2 152 +#define PAD3 153 +#define PAD4 154 +#define PAD5 155 +#define PAD6 156 +#define PAD7 157 +#define PAD8 158 +#define PAD9 159 + + +#define PADPERIOD 199 +#define PADSLASHKEY 161 +#define PADASTERKEY 160 + + +#define PADMINUS 162 +#define PADENTER 163 +#define PADPLUSKEY 164 + + +#define F1KEY 300 +#define F2KEY 301 +#define F3KEY 302 +#define F4KEY 303 +#define F5KEY 304 +#define F6KEY 305 +#define F7KEY 306 +#define F8KEY 307 +#define F9KEY 308 +#define F10KEY 309 +#define F11KEY 310 +#define F12KEY 311 + +#define PAUSEKEY 165 +#define INSERTKEY 166 +#define HOMEKEY 167 +#define PAGEUPKEY 168 +#define PAGEDOWNKEY 169 +#define ENDKEY 170 + +#define UNKNOWNKEY 171 + +/* **************** BLENDER QUEUE EVENTS ********************* */ + +#define CHANGED 0x4000 +#define DRAWEDGES 0x4001 +#define AFTERQUEUE 0x4002 +#define BACKBUFDRAW 0x4003 +#define EXECUTE 0x4004 +#define IGNORE_REDRAW 0x4005 +#define LOAD_FILE 0x4006 +#define RESHAPE 0x4007 +#define UI_BUT_EVENT 0x4008 +#define AUTOSAVE_FILE 0x4009 + +/* REDRAWVIEW3D moet de eerste zijn (laagste nummer) voor buttons! */ +#define REDRAWVIEW3D 0x4010 + +#define REDRAWBUTSHEAD 0x4011 +#define REDRAWBUTSALL 0x4012 +#define REDRAWBUTSVIEW 0x4013 +#define REDRAWBUTSLAMP 0x4014 +#define REDRAWBUTSMAT 0x4015 +#define REDRAWBUTSTEX 0x4016 +#define REDRAWBUTSANIM 0x4017 +#define REDRAWBUTSWORLD 0x4018 +#define REDRAWBUTSRENDER 0x4019 +#define REDRAWBUTSEDIT 0x401A +#define REDRAWVIEWCAM 0x401B +#define REDRAWHEADERS 0x401C +#define REDRAWBUTSGAME 0x401D +#define REDRAWBUTSRADIO 0x401E +#define REDRAWVIEW3D_Z 0x401F + +#define REDRAWALL 0x4020 +#define REDRAWINFO 0x4021 +#define RENDERPREVIEW 0x4022 +#define REDRAWIPO 0x4023 +#define REDRAWDATASELECT 0x4024 +#define REDRAWSEQ 0x4025 +#define REDRAWIMAGE 0x4026 +#define REDRAWOOPS 0x4027 +#define REDRAWIMASEL 0x4028 +#define AFTERIMASELIMA 0x4029 +#define AFTERIMASELGET 0x402A +#define AFTERIMAWRITE 0x402B +#define IMALEFTMOUSE 0x402C +#define AFTERPIBREAD 0x402D +#define REDRAWTEXT 0x402F +#define REDRAWBUTSSCRIPT 0x4030 +#define REDRAWSOUND 0x4031 +#define REDRAWBUTSSOUND 0x4032 +#define REDRAWACTION 0x4033 +#define REDRAWBUTSCONSTRAINT 0x4034 +#define REDRAWNLA 0x4035 + +#endif /* !__MYDEVICE_H__ */ diff --git a/source/blender/include/nla.h b/source/blender/include/nla.h new file mode 100644 index 00000000000..d5685f9550e --- /dev/null +++ b/source/blender/include/nla.h @@ -0,0 +1,63 @@ +/* nla.h May 2001 + * $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 ***** + * + * Use this to turn experimental options on + * or off with the #define flags. Please do not + * put other includes, typdefs etc in this file. + * =========================================== + * + * __NLA + * This encompasses the new armature object, the + * action datablock and the action window-type. + * + * __CON_IPO + * Support for constraint ipo keys + * + * __NLA_BAKE + * Allow users to bake constraints into keyframes + * + * __NLA_ACTION_BY_MOTION_ACTUATOR + * New action actuator playback type + * + * $Id$ + */ + +#ifndef NLA_H +#define NLA_H + +#define __NLA + +#define __NLA_BAKE // Not for release: Not yet fully implemented +#define __CON_IPO // Not for Release: Not yet fully implemented +//#define __NLA_ACTION_BY_MOTION_ACTUATOR // Not for release: Not yet fully implemented + +#endif + diff --git a/source/blender/include/objfnt.h b/source/blender/include/objfnt.h new file mode 100644 index 00000000000..b442a59e87d --- /dev/null +++ b/source/blender/include/objfnt.h @@ -0,0 +1,104 @@ +/* $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 ***** +#ifndef OBJFNTDEF +#define OBJFNTDEF + +typedef struct chardesc { + short movex, movey; /* advance */ + short llx, lly; /* bounding box */ + short urx, ury; + short *data; /* char data */ + long datalen; +} chardesc; + +typedef struct objfnt { + struct objfnt *freeaddr; /* if freeaddr != 0, objfnt is one chunck */ + short type; + short charmin, charmax; + short my_nchars; + short scale; + chardesc *my_chars; +} objfnt; + +#define OFMAGIC 0x93339333 + +#define TM_TYPE 1 +#define PO_TYPE 2 +#define SP_TYPE 3 + +/* ops for tmesh characters */ + +#define TM_BGNTMESH (1) +#define TM_SWAPTMESH (2) +#define TM_ENDBGNTMESH (3) +#define TM_RETENDTMESH (4) +#define TM_RET (5) + +/* ops for poly characters */ + +#define PO_BGNLOOP (1) +#define PO_ENDBGNLOOP (2) +#define PO_RETENDLOOP (3) +#define PO_RET (4) + +/* ops for spline characters */ + +#define SP_MOVETO (1) +#define SP_LINETO (2) +#define SP_CURVETO (3) +#define SP_CLOSEPATH (4) +#define SP_RETCLOSEPATH (5) +#define SP_RET (6) + + +#define MIN_ASCII ' ' +#define MAX_ASCII '~' +#define NASCII (256 - 32) + +#define NOBBOX (30000) + +typedef struct pschar { + char *name; + int code; + int prog; +} pschar; + +extern pschar charlist[NASCII]; + +/* objfnt *fontname(void); */ +/* objfnt *readobjfnt(void); */ +/* objfnt *newobjfnt(void); */ +/* float fontstringwidth(void); */ +/* short *getcharprog(void); */ +/* chardesc *BLI_getchardesc(void); */ +/* char *asciiname(void); */ + +#endif diff --git a/source/blender/include/particle_effect.h b/source/blender/include/particle_effect.h new file mode 100644 index 00000000000..588da7ee3d4 --- /dev/null +++ b/source/blender/include/particle_effect.h @@ -0,0 +1,48 @@ +/* dec 95 + * jan feb 96 + * $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 ***** + */ + +#ifndef PARTICLE_EFFECT_H +#define PARTICLE_EFFECT_H + +/* effect.c */ +extern Effect *add_effect(int type); +extern PartEff *give_parteff(Object *ob); +extern void where_is_particle(PartEff *paf, Particle *pa, float ctime, float *vec); +extern void free_effect(Effect *eff); +extern void free_effects(ListBase *lb); +extern void copy_effects(ListBase *lbn, ListBase *lb); +extern void build_particle_system(Object *ob); +/* used externally */ +void set_buildvars(Object *ob, int *start, int *end); + +#endif diff --git a/source/blender/include/playanim_ext.h b/source/blender/include/playanim_ext.h new file mode 100644 index 00000000000..ffc8c6bce5d --- /dev/null +++ b/source/blender/include/playanim_ext.h @@ -0,0 +1,40 @@ +/* + * external interface + * $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 ***** + */ + +#ifndef PLAYANIM_EXT_H +#define PLAYANIM_EXT_H + +/* used in apps */ +extern void playanim(int argc, char **argv); + +#endif |