Revision: 29135 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29135 Author: jwilkins Date: 2010-06-01 19:43:46 +0200 (Tue, 01 Jun 2010)
Log Message: ----------- Unlimited Clay Modified Paths: -------------- branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c branches/soc-2010-jwilkins/source/blender/editors/include/ED_mesh.h branches/soc-2010-jwilkins/source/blender/editors/mesh/mesh_intern.h branches/soc-2010-jwilkins/source/blender/editors/sculpt_paint/sculpt.c branches/soc-2010-jwilkins/source/blender/editors/space_view3d/drawvolume.c branches/soc-2010-jwilkins/source/blender/makesdna/DNA_brush_types.h branches/soc-2010-jwilkins/source/blender/makesdna/DNA_scene_types.h branches/soc-2010-jwilkins/source/blender/makesrna/intern/rna_brush.c Modified: branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py =================================================================== --- branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py 2010-06-01 17:29:56 UTC (rev 29134) +++ branches/soc-2010-jwilkins/release/scripts/ui/space_view3d_toolbar.py 2010-06-01 17:43:46 UTC (rev 29135) @@ -547,7 +547,7 @@ col.separator() row = col.row(align=True) - row.prop(brush, "size", slider=True) + row.prop(brush, "size", slider=True) if brush.sculpt_tool != 'GRAB': row.prop(brush, "use_size_pressure", toggle=True, text="") @@ -559,8 +559,7 @@ # XXX - TODO #row = col.row(align=True) #row.prop(brush, "jitter", slider=True) - #row.prop(brush, "use_jitter_pressure", toggle=True, text="") - + #row.prop(brush, "use_jitter_pressure", toggle=True, text="") col = layout.column() if brush.sculpt_tool in ('CLAY', 'FLATTEN', 'FILL', 'SCRAPE', 'CONTRAST'): @@ -572,8 +571,8 @@ col.row().prop(brush, "direction", expand=True) if brush.sculpt_tool in ('DRAW', 'INFLATE', 'LAYER', 'CLAY'): - col.prop(brush, "use_accumulate") - + col.prop(brush, "use_accumulate") + if brush.sculpt_tool == 'LAYER': ob = context.sculpt_object do_persistent = True @@ -586,6 +585,10 @@ if do_persistent: col.prop(brush, "use_persistent") col.operator("sculpt.set_persistent_base") + + col.prop(brush,"use_dynamic_subdiv") + if brush.use_dynamic_subdiv ==True: + col.prop(brush,"detail",slider=True) # Texture Paint Mode # Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h =================================================================== --- branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h 2010-06-01 17:29:56 UTC (rev 29134) +++ branches/soc-2010-jwilkins/source/blender/blenkernel/BKE_paint.h 2010-06-01 17:43:46 UTC (rev 29135) @@ -72,6 +72,9 @@ struct Object *ob; struct KeyBlock *kb, *refkb; + struct Scene *scene; //Mio + struct EditMesh *em; //Mio + /* Mesh connectivity */ struct ListBase *fmap; Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c =================================================================== --- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c 2010-06-01 17:29:56 UTC (rev 29134) +++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/brush.c 2010-06-01 17:43:46 UTC (rev 29135) @@ -85,6 +85,7 @@ brush->sculpt_tool = SCULPT_TOOL_DRAW; //brush->stroke_tool = STROKE_TOOL_FREEHAND; brush->flag |= BRUSH_SPACE; + brush->detail = 0.25f; brush_curve_preset(brush, CURVE_PRESET_SMOOTH); Modified: branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c =================================================================== --- branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c 2010-06-01 17:29:56 UTC (rev 29134) +++ branches/soc-2010-jwilkins/source/blender/blenkernel/intern/object.c 2010-06-01 17:43:46 UTC (rev 29135) @@ -243,8 +243,8 @@ MEM_freeN(ss->texcache); if(ss->layer_co) - MEM_freeN(ss->layer_co); - + MEM_freeN(ss->layer_co); + MEM_freeN(ss); ob->sculpt = NULL; Modified: branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c =================================================================== --- branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c 2010-06-01 17:29:56 UTC (rev 29134) +++ branches/soc-2010-jwilkins/source/blender/blenloader/intern/readfile.c 2010-06-01 17:43:46 UTC (rev 29135) @@ -10908,7 +10908,10 @@ } } } - + Brush *brush; + for (brush= main->brush.first; brush; brush= brush->id.next) + if(brush->detail == 0.0f) + brush->detail = 0.25f; /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */ Modified: branches/soc-2010-jwilkins/source/blender/editors/include/ED_mesh.h =================================================================== --- branches/soc-2010-jwilkins/source/blender/editors/include/ED_mesh.h 2010-06-01 17:29:56 UTC (rev 29134) +++ branches/soc-2010-jwilkins/source/blender/editors/include/ED_mesh.h 2010-06-01 17:43:46 UTC (rev 29135) @@ -221,5 +221,134 @@ int ED_mesh_color_add(struct bContext *C, struct Scene *scene, struct Object *ob, struct Mesh *me); int ED_mesh_color_remove(struct bContext *C, struct Object *ob, struct Mesh *me); +//---ibli + +/* Internal for editmesh_xxxx.c functions */ +struct bContext; +struct wmOperatorType; +struct wmOperator; + + +#define UVCOPY(t, s) memcpy(t, s, 2 * sizeof(float)); + +/* ******************** editface.c */ + +int edgetag_context_check(struct Scene *scene,struct EditEdge *eed); +void edgetag_context_set(struct Scene *scene, struct EditEdge *eed, int val); +int edgetag_shortest_path(struct Scene *scene,struct EditMesh *em,struct EditEdge *source,struct EditEdge *target); + +/* ******************* editmesh.c */ + +extern void free_editvert(struct EditMesh *em, struct EditVert *eve); +extern void free_editedge(struct EditMesh *em, struct EditEdge *eed); +extern void free_editface(struct EditMesh *em, struct EditFace *efa); +void free_editMesh(struct EditMesh *em); + +extern void free_vertlist(struct EditMesh *em, struct ListBase *edve); +extern void free_edgelist(struct EditMesh *em,struct ListBase *lb); +extern void free_facelist(struct EditMesh *em,struct ListBase *lb); + +extern void remedge(struct EditMesh *em,struct EditEdge *eed); + +extern struct EditVert *addvertlist(struct EditMesh *em, float *vec, struct EditVert *example); +extern struct EditEdge *addedgelist(struct EditMesh *em, struct EditVert *v1, struct EditVert *v2, struct EditEdge *example); +extern struct EditFace *addfacelist(struct EditMesh *em, struct EditVert *v1, struct EditVert *v2, struct EditVert *v3, struct EditVert *v4, struct EditFace *example, struct EditFace *exampleEdges); +extern struct EditEdge *findedgelist(struct EditMesh *em, struct EditVert *v1, struct EditVert *v2); + +void em_setup_viewcontext(struct bContext *C, struct ViewContext *vc); + +/* ******************* editmesh_lib.c */ +void EM_stats_update(struct EditMesh *em); + +extern void EM_fgon_flags(struct EditMesh *em); +extern void EM_hide_reset(struct EditMesh *em); + +extern int faceselectedOR(struct EditFace *efa, int flag); +extern int faceselectedAND(struct EditFace *efa, int flag); + +void EM_remove_selection(struct EditMesh *em, void *data, int type); +void EM_clear_flag_all(struct EditMesh *em, int flag); +void EM_set_flag_all(struct EditMesh *em, int flag); +void EM_set_flag_all_selectmode(struct EditMesh *em, int flag); + +void EM_data_interp_from_verts(struct EditMesh *em,struct EditVert *v1, struct EditVert *v2, struct EditVert *eve, float fac); +void EM_data_interp_from_faces(struct EditMesh *em,struct EditFace *efa1,struct EditFace *efa2,struct EditFace *efan, int i1, int i2, int i3, int i4); + +int EM_nvertices_selected(struct EditMesh *em); +int EM_nedges_selected(struct EditMesh *em); +int EM_nfaces_selected(struct EditMesh *em); + +float EM_face_perimeter(struct EditFace *efa); + +void EM_store_selection(struct EditMesh *em, void *data, int type); + +extern struct EditFace *exist_face(struct EditMesh *em, struct EditVert *v1,struct EditVert *v2,struct EditVert *v3, struct EditVert *v4); +extern void flipface(struct EditMesh *em, struct EditFace *efa); // flips for normal direction +extern int compareface(struct EditFace *vl1,struct EditFace *vl2); + +/* flag for selection bits, *nor will be filled with normal for extrusion constraint */ +/* return value defines if such normal was set */ +extern short extrudeflag_face_indiv(struct EditMesh *em, short flag, float *nor); +extern short extrudeflag_verts_indiv(struct EditMesh *em, short flag, float *nor); +extern short extrudeflag_edges_indiv(struct EditMesh *em, short flag, float *nor); +extern short extrudeflag_vert(struct Object *obedit,struct EditMesh *em, short flag, float *nor, int all); +extern short extrudeflag(struct Object *obedit,struct EditMesh *em, short flag, float *nor, int all); + +extern void adduplicateflag(struct EditMesh *em, int flag); +extern void delfaceflag(struct EditMesh *em, int flag); + +extern void rotateflag(struct EditMesh *em, short flag, float *cent, float rotmat[][3]); +extern void translateflag(struct EditMesh *em, short flag, float *vec); + +extern int convex(float *v1, float *v2, float *v3, float *v4); + +extern struct EditFace *EM_face_from_faces(struct EditMesh *em, struct EditFace *efa1,struct EditFace *efa2, int i1, int i2, int i3, int i4); + +extern int EM_view3d_poll(struct bContext *C); + +/* ******************* editmesh_loop.c */ + +#define LOOP_SELECT 1 +#define LOOP_CUT 2 + + +extern struct EditEdge *findnearestedge(struct ViewContext *vc, int *dist); +extern void EM_automerge(struct Scene *scene,struct Object *obedit, int update); +void editmesh_select_by_material(struct EditMesh *em, int index); +void EM_recalc_normal_direction(struct EditMesh *em, int inside, int select); /* makes faces righthand turning */ +void EM_select_more(struct EditMesh *em); +void selectconnected_mesh_all(struct EditMesh *em); +void faceloop_select(struct EditMesh *em, struct EditEdge *startedge, int select); + +/** + * findnearestvert + * + * dist (in/out): minimal distance to the nearest and at the end, actual distance + * sel: selection bias + * if SELECT, selected vertice are given a 5 pixel bias to make them farter than unselect verts + * if 0, unselected vertice are given the bias + * strict: if 1, the vertice corresponding to the sel parameter are ignored and not just biased + */ +extern struct EditVert *findnearestvert(struct ViewContext *vc, int *dist, short sel, short strict); + + +/* ******************* editmesh_tools.c */ + +#define SUBDIV_SELECT_ORIG 0 +#define SUBDIV_SELECT_INNER 1 +#define SUBDIV_SELECT_INNER_SEL 2 @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs