2.5
[blender-staging.git] / source / blender / editors / include / ED_view3d.h
index e2fae03ac2989b3fb8a024acb0db21f7f28da962..4f4afd2abb4f1526f1ab88d1c3caea5994982aaa 100644 (file)
@@ -39,8 +39,22 @@ struct EditVert;
 struct EditEdge;
 struct EditFace;
 struct ImBuf;
+struct Scene;
+struct bContext;
 
-float *give_cursor(Scene *scene, View3D *v3d);
+/* for derivedmesh drawing callbacks, for view3d_select, .... */
+typedef struct ViewContext {
+       Scene *scene;
+       Object *obact;
+       Object *obedit;
+       struct ARegion *ar;
+       struct View3D *v3d;
+       struct EditMesh *em;
+       short mval[2];
+} ViewContext;
+
+
+float *give_cursor(struct Scene *scene, struct View3D *v3d);
 
 void initgrabz(struct View3D *v3d, float x, float y, float z);
 void window_to_3d(struct ARegion *ar, struct View3D *v3d, float *vec, short mx, short my);
@@ -67,12 +81,20 @@ void nurbs_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData
 void lattice_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct BPoint *bp, int x, int y), void *userData);
 
 int view3d_test_clipping(struct View3D *v3d, float *vec);
-void view3d_align_axis_to_vector(struct View3D *v3d, int axisidx, float vec[3]);
+void view3d_align_axis_to_vector(struct Scene *scene, struct View3D *v3d, int axisidx, float vec[3]);
 
 /* backbuffer select and draw support */
 struct ImBuf *view3d_read_backbuf(struct ViewContext *vc, short xmin, short ymin, short xmax, short ymax);
 unsigned int view3d_sample_backbuf_rect(struct ViewContext *vc, short mval[2], int size, unsigned int min, unsigned int max, int *dist, short strict, unsigned int (*indextest)(unsigned int index));
 unsigned int view3d_sample_backbuf(struct ViewContext *vc, int x, int y);
 
+/* select */
+#define MAXPICKBUF      10000
+short view3d_opengl_select(struct ViewContext *vc, unsigned int *buffer, unsigned int bufsize, rcti *input);
+
+/* modes */
+void ED_view3d_exit_paint_modes(struct bContext *C);
+
+
 #endif /* ED_VIEW3D_H */