[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