[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18505] branches/blender2.5/blender: Fixed warnings in sculpt, also brought back brush curve.

Nicholas Bishop nicholasbishop at gmail.com
Wed Jan 14 18:22:32 CET 2009


Revision: 18505
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18505
Author:   nicholasbishop
Date:     2009-01-14 18:22:30 +0100 (Wed, 14 Jan 2009)

Log Message:
-----------
Fixed warnings in sculpt, also brought back brush curve.

Modified Paths:
--------------
    branches/blender2.5/blender/CMakeLists.txt
    branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
    branches/blender2.5/blender/source/blender/editors/include/ED_sculpt.h
    branches/blender2.5/blender/source/blender/editors/sculpt/sculpt.c
    branches/blender2.5/blender/source/blender/editors/sculpt/sculpt_intern.h
    branches/blender2.5/blender/source/blender/editors/sculpt/stroke.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_intern.h

Modified: branches/blender2.5/blender/CMakeLists.txt
===================================================================
--- branches/blender2.5/blender/CMakeLists.txt	2009-01-14 16:54:36 UTC (rev 18504)
+++ branches/blender2.5/blender/CMakeLists.txt	2009-01-14 17:22:30 UTC (rev 18505)
@@ -197,7 +197,7 @@
   SET(PLATFORM_LINKFLAGS "-pthread")
 
   # Better warnings
-  SET(C_WARNINGS "-Wall -Wno-char-subscripts -W -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wredundant-decls")
+  SET(C_WARNINGS "-Wall -Wno-char-subscripts -W -Wshadow -Wpointer-arith -Wbad-function-cast -Wcast-qual -Wcast-align -Waggregate-return -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wredundant-decls -Wdeclaration-after-statement")
 
   INCLUDE_DIRECTORIES(/usr/include /usr/local/include)
 ENDIF(UNIX)

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-01-14 16:54:36 UTC (rev 18504)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-01-14 17:22:30 UTC (rev 18505)
@@ -72,6 +72,8 @@
 	brush->clone.alpha= 0.5;
 	brush->sculpt_tool = SCULPT_TOOL_DRAW;
 
+	brush_curve_preset(brush, BRUSH_PRESET_SHARP);
+
 	/* enable fake user by default */
 	brush->id.flag |= LIB_FAKEUSER;
 	brush_toggled_fake_user(brush);
@@ -222,8 +224,7 @@
 	}
 }
 
-
-void sculpt_preset_curve(Brush *b, BrushCurvePreset preset)
+void brush_curve_preset(Brush *b, BrushCurvePreset preset)
 {
 	CurveMap *cm = NULL;
 

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_sculpt.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_sculpt.h	2009-01-14 16:54:36 UTC (rev 18504)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_sculpt.h	2009-01-14 17:22:30 UTC (rev 18505)
@@ -31,7 +31,7 @@
 struct bContext;
 struct wmWindowManager;
 
-void ED_operatortypes_sculpt();
+void ED_operatortypes_sculpt(void);
 void ED_keymap_sculpt(wmWindowManager *wm);
 
 #endif

Modified: branches/blender2.5/blender/source/blender/editors/sculpt/sculpt.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/sculpt/sculpt.c	2009-01-14 16:54:36 UTC (rev 18504)
+++ branches/blender2.5/blender/source/blender/editors/sculpt/sculpt.c	2009-01-14 17:22:30 UTC (rev 18505)
@@ -53,6 +53,7 @@
 #include "DNA_userdef_types.h"
 #include "DNA_color_types.h"
 
+#include "BKE_brush.h"
 #include "BKE_context.h"
 #include "BKE_customdata.h"
 #include "BKE_DerivedMesh.h"
@@ -184,19 +185,6 @@
 
 static void init_brushaction(SculptData *sd, BrushAction *a, short *, short *);
 
-
-/* ===== MEMORY =====
- * 
- * Allocate/initialize/free data
- */
-
-static void sculpt_init_session(SculptData *sd)
-{
-	if(sd->session)
-		;/*XXX: sculptsession_free(G.scene); */
-	sd->session= MEM_callocN(sizeof(SculptSession), "SculptSession");
-}
-
 /* vertex_users is an array of Lists that store all the faces that use a
    particular vertex. vertex_users is in the same order as mesh.mvert */
 static void calc_vertex_users(SculptSession *ss)
@@ -252,31 +240,11 @@
  * Simple functions to get data from the GL
  */
 
-/* Store the modelview and projection matrices and viewport. */
-void init_sculptmatrices()
-{
-	/* XXX: probably becomes context data?
-
-	SculptSession *ss= sculpt_session();
-
-	glMatrixMode(GL_MODELVIEW);
-	glPushMatrix();
-	glMultMatrixf(OBACT->obmat);
-
-	if(!ss->mats)
-		ss->mats = MEM_callocN(sizeof(bglMats), "sculpt bglmats");
-	bgl_get_mats(ss->mats);
-	
-	glPopMatrix();
-	*/
-}
-
 /* Uses window coordinates (x,y) to find the depth in the GL depth buffer. If
    available, G.vd->depths is used so that the brush doesn't sculpt on top of
    itself (G.vd->depths is only updated at the end of a brush stroke.) */
-float get_depth(bContext *C, short x, short y)
+static float get_depth(bContext *C, short x, short y)
 {
-	float depth;
 	ScrArea *sa= CTX_wm_area(C);
 
 	if(sa->spacetype==SPACE_VIEW3D) { // should check this in context instead?
@@ -294,7 +262,7 @@
 
 /* Uses window coordinates (x,y) and depth component z to find a point in
    modelspace */
-void unproject(SculptSession *ss, float out[3], const short x, const short y, const float z)
+static void unproject(SculptSession *ss, float out[3], const short x, const short y, const float z)
 {
 	double ux, uy, uz;
 
@@ -333,9 +301,10 @@
    shrink the brush. Skipped for grab brush because only the first mouse down
    size is used, which is small if the user has just touched the pen to the
    tablet */
-char brush_size(SculptData *sd, Brush *b)
+static char brush_size(SculptData *sd)
 {
-	float size= b->size;
+	float size= sd->brush->size;
+#if 0
 	float pressure= 0; /* XXX: get_pressure(); */
 	short activedevice= 0; /* XXX: get_activedevice(); */
 	
@@ -347,25 +316,25 @@
 			size*= sd->tablet_size==0?1:
 			(1-size_factor) + pressure*size_factor;*/
 	}
-	
+#endif
 	return size;
 }
 
 /* Return modified brush strength. Includes the direction of the brush, positive
    values pull vertices, negative values push. Uses tablet pressure and a
    special multiplier found experimentally to scale the strength factor. */
-float brush_strength(SculptData *sd, StrokeCache *cache, BrushAction *a)
+static float brush_strength(SculptData *sd, StrokeCache *cache)
 {
 	float dir= sd->brush->flag & BRUSH_DIR_IN ? -1 : 1;
 	float pressure= 1;
-	short activedevice= 0;/*XXX: get_activedevice(); */
+	/* short activedevice= 0;XXX: get_activedevice(); */
 	float flip= cache->flip ? -1:1;
 	float anchored = sd->brush->flag & BRUSH_ANCHORED ? 25 : 1;
 
-	const float strength_factor= sd->tablet_strength / 10.0f;
-
 	/* XXX: tablet stuff */
 #if 0
+	const float strength_factor= sd->tablet_strength / 10.0f;
+
 	if(ELEM(activedevice, DEV_STYLUS, DEV_ERASER))
 		pressure= sd->sculptdata.tablet_strength==0?1:
 			(1-strength_factor) + 1/*XXX: get_pressure()*/ *strength_factor;
@@ -395,7 +364,7 @@
 }
 
 /* For clipping against a mirror modifier */
-void sculpt_clip(StrokeCache *cache, float *co, const float val[3])
+static void sculpt_clip(StrokeCache *cache, float *co, const float val[3])
 {
 	char i;
 	for(i=0; i<3; ++i) {
@@ -406,7 +375,7 @@
 	}		
 }
 
-void sculpt_axislock(SculptData *sd, float *co)
+static void sculpt_axislock(SculptData *sd, float *co)
 {
 	if (sd->flags & (SCULPT_LOCK_X|SCULPT_LOCK_Y|SCULPT_LOCK_Z)) return;
 	/* XXX: if(G.vd->twmode == V3D_MANIP_LOCAL) { */
@@ -441,7 +410,7 @@
 
 /* Currently only for the draw brush; finds average normal for all active
    vertices */
-void calc_area_normal(SculptData *sd, float out[3], const BrushAction *a, const float *outdir, const ListBase* active_verts)
+static void calc_area_normal(SculptData *sd, float out[3], BrushAction *a, const float *outdir, const ListBase* active_verts)
 {
 	ActiveData *node = active_verts->first;
 	const int view = 0; /* XXX: should probably be a flag, not number: sd->brush_type==SCULPT_TOOL_DRAW ? sculptmode_brush()->view : 0; */
@@ -451,11 +420,11 @@
 
 	if(sd->brush->flag & BRUSH_ANCHORED) {
 		for(; node; node = node->next)
-			add_norm_if(((BrushAction*)a)->symm.out, out, out_flip, a->orig_norms[node->Index]);
+			add_norm_if(a->symm.out, out, out_flip, a->orig_norms[node->Index]);
 	}
 	else {
 		for(; node; node = node->next)
-			add_norm_if(((BrushAction*)a)->symm.out, out, out_flip, sd->session->mvert[node->Index].no);
+			add_norm_if(a->symm.out, out, out_flip, sd->session->mvert[node->Index].no);
 	}
 
 	if (out[0]==0.0 && out[1]==0.0 && out[2]==0.0) {
@@ -473,7 +442,7 @@
 	Normalize(out);
 }
 
-void do_draw_brush(SculptData *sd, SculptSession *ss, const BrushAction *a, const ListBase* active_verts)
+static void do_draw_brush(SculptData *sd, SculptSession *ss, BrushAction *a, const ListBase* active_verts)
 {
 	float area_normal[3];
 	ActiveData *node= active_verts->first;
@@ -498,18 +467,19 @@
 /* For the smooth brush, uses the neighboring vertices around vert to calculate
    a smoothed location for vert. Skips corner vertices (used by only one
    polygon.) */
-vec3f neighbor_average(SculptSession *ss, const int vert)
+static void neighbor_average(SculptSession *ss, float avg[3], const int vert)
 {
 	int i, skip= -1, total=0;
 	IndexNode *node= ss->vertex_users[vert].first;
-	vec3f avg= {0,0,0};
 	char ncount= BLI_countlist(&ss->vertex_users[vert]);
 	MFace *f;
+
+	avg[0] = avg[1] = avg[2] = 0;
 		
 	/* Don't modify corner vertices */
 	if(ncount==1) {
-		VecCopyf(&avg.x, ss->mvert[vert].co);
-		return avg;
+		VecCopyf(avg, ss->mvert[vert].co);
+		return;
 	}
 
 	while(node){
@@ -524,7 +494,7 @@
 
 		for(i=0; i<(f->v4?4:3); ++i) {
 			if(i != skip && (ncount!=2 || BLI_countlist(&ss->vertex_users[(&f->v1)[i]]) <= 2)) {
-				VecAddf(&avg.x, &avg.x, ss->mvert[(&f->v1)[i]].co);
+				VecAddf(avg, avg, ss->mvert[(&f->v1)[i]].co);
 				++total;
 			}
 		}
@@ -532,33 +502,31 @@
 		node= node->next;
 	}
 
-	if(total>0) {
-		avg.x/= total;
-		avg.y/= total;
-		avg.z/= total;
-	}
+	if(total>0)
+		VecMulf(avg, 1.0f / total);
 	else
-		VecCopyf(&avg.x, ss->mvert[vert].co);
-
-	return avg;
+		VecCopyf(avg, ss->mvert[vert].co);
 }
 
-void do_smooth_brush(SculptSession *ss, const BrushAction *a, const ListBase* active_verts)
+static void do_smooth_brush(SculptSession *ss, const ListBase* active_verts)
 {
 	ActiveData *node= active_verts->first;
 
 	while(node){
 		float *co= ss->mvert[node->Index].co;
-		const vec3f avg= neighbor_average(ss, node->Index);
-		const float val[3]= {co[0]+(avg.x-co[0])*node->Fade,
-		                     co[1]+(avg.y-co[1])*node->Fade,
-		                     co[2]+(avg.z-co[2])*node->Fade};
+		float avg[3], val[3];
+
+		neighbor_average(ss, avg, node->Index);
+		val[0] = co[0]+(avg[0]-co[0])*node->Fade;
+		val[1] = co[1]+(avg[1]-co[1])*node->Fade;
+		val[2] = co[2]+(avg[2]-co[2])*node->Fade;
+
 		sculpt_clip(ss->cache, co, val);
 		node= node->next;
 	}
 }
 
-void do_pinch_brush(SculptSession *ss, const BrushAction *a, const ListBase* active_verts)
+static void do_pinch_brush(SculptSession *ss, const BrushAction *a, const ListBase* active_verts)
 {
  	ActiveData *node= active_verts->first;
 
@@ -572,7 +540,7 @@
 	}
 }
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list