[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15613] branches/harmonic-skeleton/source/ blender: More levels for multi resolution ( smoother progression between filtering values).

Martin Poirier theeth at yahoo.com
Thu Jul 17 19:33:45 CEST 2008


Revision: 15613
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15613
Author:   theeth
Date:     2008-07-17 19:33:45 +0200 (Thu, 17 Jul 2008)

Log Message:
-----------
More levels for multi resolution (smoother progression between filtering values). Also different progression for internal edges filtering than external edges (small internal and less important than small external).

Modified Paths:
--------------
    branches/harmonic-skeleton/source/blender/include/reeb.h
    branches/harmonic-skeleton/source/blender/src/buttons_editing.c
    branches/harmonic-skeleton/source/blender/src/reeb.c

Modified: branches/harmonic-skeleton/source/blender/include/reeb.h
===================================================================
--- branches/harmonic-skeleton/source/blender/include/reeb.h	2008-07-17 17:30:32 UTC (rev 15612)
+++ branches/harmonic-skeleton/source/blender/include/reeb.h	2008-07-17 17:33:45 UTC (rev 15613)
@@ -161,6 +161,9 @@
 void verifyFaces(ReebGraph *rg);
 
 /*********************** PUBLIC *********************************/
+
+#define REEB_MAX_MULTI_LEVEL	10
+
 ReebGraph *BIF_ReebGraphFromEditMesh(void);
 ReebGraph *BIF_ReebGraphMultiFromEditMesh(void);
 void BIF_flagMultiArcs(ReebGraph *rg, int flag);

Modified: branches/harmonic-skeleton/source/blender/src/buttons_editing.c
===================================================================
--- branches/harmonic-skeleton/source/blender/src/buttons_editing.c	2008-07-17 17:30:32 UTC (rev 15612)
+++ branches/harmonic-skeleton/source/blender/src/buttons_editing.c	2008-07-17 17:33:45 UTC (rev 15613)
@@ -5050,7 +5050,7 @@
 	uiDefButBitS(block, TOG, SKGEN_DISP_WEIGHT, REDRAWVIEW3D,	"Weight",			1108, 40, 83,19, &G.scene->toolsettings->skgen_options, 0, 0, 0, 0,		"Show Weight");
 	uiDefButBitS(block, TOG, SKGEN_DISP_ORIG, REDRAWVIEW3D,		"Original",			1191, 40, 84,19, &G.scene->toolsettings->skgen_options, 0, 0, 0, 0,		"Show Original Graph");
 
-	uiDefButC(block, NUM, REDRAWVIEW3D, 						"Level:",			1025, 20, 125,19, &G.scene->toolsettings->skgen_multi_level, 0, 5, 1, 0,"Specify the level to draw");
+	uiDefButC(block, NUM, REDRAWVIEW3D, 						"Level:",			1025, 20, 125,19, &G.scene->toolsettings->skgen_multi_level, 0, REEB_MAX_MULTI_LEVEL, 1, 0,"Specify the level to draw");
 }
 
 static void editing_panel_mesh_skgen_retarget(Object *ob, Mesh *me)

Modified: branches/harmonic-skeleton/source/blender/src/reeb.c
===================================================================
--- branches/harmonic-skeleton/source/blender/src/reeb.c	2008-07-17 17:30:32 UTC (rev 15612)
+++ branches/harmonic-skeleton/source/blender/src/reeb.c	2008-07-17 17:33:45 UTC (rev 15613)
@@ -3153,7 +3153,7 @@
 	EditMesh *em = G.editMesh;
 	ReebGraph *rg = NULL;
 	ReebGraph *rgi, *previous;
-	int i, nb_levels = 5;
+	int i, nb_levels = REEB_MAX_MULTI_LEVEL;
 	
 	if (em == NULL)
 		return NULL;
@@ -3205,6 +3205,19 @@
 		{
 			float internal_threshold = rg->length * G.scene->toolsettings->skgen_threshold_internal * (i / (float)nb_levels);
 			float external_threshold = rg->length * G.scene->toolsettings->skgen_threshold_external * (i / (float)nb_levels);
+
+			/* filter internal progressively in second half only*/
+			if (i > nb_levels / 2)
+			{
+				internal_threshold = rg->length * G.scene->toolsettings->skgen_threshold_internal;
+			}
+			else
+			{
+				internal_threshold = rg->length * G.scene->toolsettings->skgen_threshold_internal * (2 * i / (float)nb_levels);
+			}
+			
+			external_threshold = rg->length * G.scene->toolsettings->skgen_threshold_external * (i / (float)nb_levels);
+
 			filterGraph(rgi, G.scene->toolsettings->skgen_options, internal_threshold, external_threshold);
 		}
 





More information about the Bf-blender-cvs mailing list