Smoke:
[blender.git] / source / blender / editors / space_view3d / view3d_intern.h
index 8d99a13374d4eb8978f17d7a3d089d9a377f5775..e5e85cf9d16ed19d719f2978b4d438452d021ad7 100644 (file)
 #ifndef ED_VIEW3D_INTERN_H
 #define ED_VIEW3D_INTERN_H
 
+#include "ED_view3d.h"
+
 /* internal exports only */
 
+struct bScreen;
+struct ARegion;
 struct BoundBox;
 struct Object;
 struct DerivedMesh;
 struct wmOperatorType;
-struct EditVert;
-struct EditEdge;
-struct EditFace;
-struct Nurb;
-struct BezTriple;
-struct BPoint;
-
-typedef struct ViewDepths {
-       unsigned short w, h;
-       float *depths;
-       double depth_range[2];
-       
-       char damaged;
-} ViewDepths;
+struct bContext;
+struct wmWindowManager;
+struct EditMesh;
+struct ViewContext;
+struct ARegionType;
+
+#define BL_NEAR_CLIP 0.001
 
 /* drawing flags: */
 #define DRAW_PICKING   1
@@ -57,103 +54,111 @@ typedef struct ViewDepths {
 #define V3D_XRAY       1
 #define V3D_TRANSP     2
 
-/* project short */
-#define IS_CLIPPED        12000
+#define V3D_SELECT_MOUSE       1
 
 /* view3d_header.c */
-void view3d_header_buttons(const struct bContext *C, ARegion *ar);
+void view3d_header_buttons(const struct bContext *C, struct ARegion *ar);
+void VIEW3D_OT_layers(struct wmOperatorType *ot);
 
 /* view3d_ops.c */
 void view3d_operatortypes(void);
 void view3d_keymap(struct wmWindowManager *wm);
 
 /* view3d_edit.c */
-void ED_VIEW3D_OT_viewzoom(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_viewmove(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_viewrotate(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_viewhome(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_viewnumpad(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_viewcenter(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_clipping(struct wmOperatorType *ot);
+void VIEW3D_OT_zoom(struct wmOperatorType *ot);
+void VIEW3D_OT_viewmove(struct wmOperatorType *ot);
+void VIEW3D_OT_viewrotate(struct wmOperatorType *ot);
+void VIEW3D_OT_view_all(struct wmOperatorType *ot);
+void VIEW3D_OT_viewnumpad(struct wmOperatorType *ot);
+void VIEW3D_OT_view_center(struct wmOperatorType *ot);
+void VIEW3D_OT_view_pan(struct wmOperatorType *ot);
+void VIEW3D_OT_view_persportho(struct wmOperatorType *ot);
+void VIEW3D_OT_view_orbit(struct wmOperatorType *ot);
+void VIEW3D_OT_clip_border(struct wmOperatorType *ot);
+void VIEW3D_OT_cursor3d(struct wmOperatorType *ot);
+void VIEW3D_OT_manipulator(struct wmOperatorType *ot);
+void VIEW3D_OT_render_border(struct wmOperatorType *ot);
+void VIEW3D_OT_zoom_border(struct wmOperatorType *ot);
+void VIEW3D_OT_drawtype(struct wmOperatorType *ot);
+
+void view3d_boxview_copy(ScrArea *sa, ARegion *ar);
 
 /* drawobject.c */
-void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag);
+void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int flag);
 int draw_glsl_material(Scene *scene, Object *ob, View3D *v3d, int dt);
-void drawcircball(int mode, float *cent, float rad, float tmat[][4]);
-void draw_object_instance(Scene *scene, View3D *v3d, Object *ob, int dt, int outline);
+void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, int dt, int outline);
+void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob);
 void drawaxes(float size, int flag, char drawtype);
-void mesh_foreachScreenVert(ARegion *ar, View3D *v3d, void (*func)(void *userData, struct EditVert *eve, int x, int y, int index), void *userData, int clipVerts);
-void mesh_foreachScreenEdge(ARegion *ar, View3D *v3d, void (*func)(void *userData, struct EditEdge *eed, int x0, int y0, int x1, int y1, int index), void *userData, int clipVerts);
-void mesh_foreachScreenFace(ARegion *ar, View3D *v3d, void (*func)(void *userData, struct EditFace *efa, int x, int y, int index), void *userData);
-void nurbs_foreachScreenVert(ARegion *ar, View3D *v3d, void (*func)(void *userData, struct Nurb *nu, struct BPoint *bp, struct BezTriple *bezt, int beztindex, int x, int y), void *userData);
-void lattice_foreachScreenVert(void (*func)(void *userData, struct BPoint *bp, int x, int y), void *userData);
+void view3d_object_text_draw_add(float x, float y, float z, char *str, short xoffs);
 
 /* drawarmature.c */
-int draw_armature(Scene *scene, View3D *v3d, Base *base, int dt, int flag);
+int draw_armature(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag);
 
 /* drawmesh.c */
-void draw_mesh_textured(Scene *scene, View3D *v3d, Object *ob, struct DerivedMesh *dm, int faceselect);
+void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, struct DerivedMesh *dm, int faceselect);
 
 /* view3d_draw.c */
-void drawview3dspace(Scene *scene, ARegion *ar, View3D *v3d);
-void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *));
-int view3d_test_clipping(View3D *v3d, float *vec);
+void view3d_main_area_draw(const struct bContext *C, struct ARegion *ar);
+void draw_depth(Scene *scene, struct ARegion *ar, View3D *v3d, int (* func)(void *));
 void view3d_clr_clipping(void);
-void view3d_set_clipping(View3D *v3d);
+void view3d_set_clipping(RegionView3D *rv3d);
 void add_view3d_after(View3D *v3d, Base *base, int type, int flag);
-void make_axis_color(char *col, char *col2, char axis);
-void calc_viewborder(Scene *scene, ARegion *ar, View3D *v3d, rctf *viewborder_r);
+void calc_viewborder(Scene *scene, struct ARegion *ar, View3D *v3d, rctf *viewborder_r);
 
 void circf(float x, float y, float rad);
 void circ(float x, float y, float rad);
-void view3d_update_depths(ARegion *ar, View3D *v3d);
+void view3d_update_depths(struct ARegion *ar, View3D *v3d);
 
 /* view3d_select.c */
-void ED_VIEW3D_OT_select(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_borderselect(struct wmOperatorType *ot);
-void ED_VIEW3D_OT_circle_select(struct wmOperatorType *ot);
+void VIEW3D_OT_select(struct wmOperatorType *ot);
+void VIEW3D_OT_select_extend(struct wmOperatorType *ot);
+void VIEW3D_OT_select_circle(struct wmOperatorType *ot);
+void VIEW3D_OT_select_border(struct wmOperatorType *ot);
+void VIEW3D_OT_select_lasso(struct wmOperatorType *ot);
 
 /* view3d_view.c */
-void view3d_operator_needs_opengl(const struct bContext *C);
-float *give_cursor(Scene *scene, View3D *v3d);
-void viewline(ARegion *ar, View3D *v3d, short mval[2], float ray_start[3], float ray_end[3]);
-void viewray(ARegion *ar, View3D *v3d, short mval[2], float ray_start[3], float ray_normal[3]);
-
-void initgrabz(View3D *v3d, float x, float y, float z);
-void window_to_3d(ARegion *ar, View3D *v3d, float *vec, short mx, short my);
-int boundbox_clip(View3D *v3d, float obmat[][4], struct BoundBox *bb);
-
-void view3d_project_short_clip(ARegion *ar, View3D *v3d, float *vec, short *adr, float projmat[4][4], float wmat[4][4]);
-void view3d_project_short_noclip(ARegion *ar, float *vec, short *adr, float mat[4][4]);
-void view3d_project_float(ARegion *a, float *vec, float *adr, float mat[4][4]);
-void view3d_get_object_project_mat(View3D *v3d, struct Object *ob, float pmat[4][4], float vmat[4][4]);
-void view3d_project_float(ARegion *ar, float *vec, float *adr, float mat[4][4]);
-
-void project_short(ARegion *ar, View3D *v3d, float *vec, short *adr);
-void project_int(ARegion *ar, View3D *v3d, float *vec, int *adr);
-void project_int_noclip(ARegion *ar, View3D *v3d, float *vec, int *adr);
-void project_short_noclip(ARegion *ar, View3D *v3d, float *vec, short *adr);
-void project_float(ARegion *ar, View3D *v3d, float *vec, float *adr);
-void project_float_noclip(ARegion *ar, View3D *v3d, float *vec, float *adr);
-
-int get_view3d_viewplane(View3D *v3d, int winxi, int winyi, rctf *viewplane, float *clipsta, float *clipend, float *pixsize);
-void view_settings_from_ob(Object *ob, float *ofs, float *quat, float *dist, float *lens);
-void obmat_to_viewmat(View3D *v3d, Object *ob, short smooth);
-
-short view3d_opengl_select(Scene *scene, ARegion *ar, View3D *v3d, unsigned int *buffer, unsigned int bufsize, rcti *input);
-void initlocalview(Scene *scene, ARegion *ar, View3D *v3d);
-void restore_localviewdata(View3D *vd);
-void endlocalview(Scene *scene, ScrArea *sa);
-
-void centerview(ARegion *ar, View3D *v3d);
-
-void view3d_align_axis_to_vector(View3D *v3d, int axisidx, float vec[3]);
-
-void smooth_view(View3D *v3d, float *ofs, float *quat, float *dist, float *lens);
-void smooth_view_to_camera(View3D *v3d);
-
-void setwinmatrixview3d(View3D *v3d, int winx, int winy, rctf *rect);  /* rect: for picking */
-void setviewmatrixview3d(View3D *v3d);
+void VIEW3D_OT_smoothview(struct wmOperatorType *ot);
+void VIEW3D_OT_setcameratoview(struct wmOperatorType *ot);
+void VIEW3D_OT_localview(struct wmOperatorType *ot);
+void VIEW3D_OT_game_start(struct wmOperatorType *ot);
+
+
+int boundbox_clip(RegionView3D *rv3d, float obmat[][4], struct BoundBox *bb);
+
+void centerview(struct ARegion *ar, View3D *v3d);
+
+void smooth_view(struct bContext *C, Object *, Object *, float *ofs, float *quat, float *dist, float *lens);
+
+void setwinmatrixview3d(ARegion *ar, View3D *v3d, rctf *rect); /* rect: for picking */
+void setviewmatrixview3d(Scene *scene, View3D *v3d, RegionView3D *rv3d);
+
+/* view3d_buttons.c */
+void VIEW3D_OT_properties(struct wmOperatorType *ot);
+void view3d_buttons_register(struct ARegionType *art);
+
+/* view3d_toolbar.c */
+void VIEW3D_OT_toolbar(struct wmOperatorType *ot);
+void view3d_toolbar_register(struct ARegionType *art);
+void view3d_tool_props_register(struct ARegionType *art);
+
+/* view3d_snap.c */
+int minmax_verts(Object *obedit, float *min, float *max);
+
+void VIEW3D_OT_snap_selected_to_grid(struct wmOperatorType *ot);
+void VIEW3D_OT_snap_selected_to_cursor(struct wmOperatorType *ot);
+void VIEW3D_OT_snap_selected_to_center(struct wmOperatorType *ot);
+void VIEW3D_OT_snap_cursor_to_grid(struct wmOperatorType *ot);
+void VIEW3D_OT_snap_cursor_to_selected(struct wmOperatorType *ot);
+void VIEW3D_OT_snap_cursor_to_active(struct wmOperatorType *ot);
+void VIEW3D_OT_snap_menu(struct wmOperatorType *ot);
+
+/* space_view3d.c */
+ARegion *view3d_has_buttons_region(ScrArea *sa);
+ARegion *view3d_has_tools_region(ScrArea *sa);
+
+/* draw_volume.c */
+void draw_volume(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, struct Base *base, struct GPUTexture *tex, int res[3]);
+
 
 #endif /* ED_VIEW3D_INTERN_H */