[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44866] trunk/blender/source/blender/ blenkernel: Add new CCG accessor functions.

Nicholas Bishop nicholasbishop at gmail.com
Wed Mar 14 07:31:25 CET 2012


Revision: 44866
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44866
Author:   nicholasbishop
Date:     2012-03-14 06:31:24 +0000 (Wed, 14 Mar 2012)
Log Message:
-----------
Add new CCG accessor functions.

ccg_gridsize() converts a level into gridsize, ccg_factor() is for
converting coordinates between different multires levels.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_subsurf.h
    trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c

Modified: trunk/blender/source/blender/blenkernel/BKE_subsurf.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_subsurf.h	2012-03-14 06:31:14 UTC (rev 44865)
+++ trunk/blender/source/blender/blenkernel/BKE_subsurf.h	2012-03-14 06:31:24 UTC (rev 44866)
@@ -31,6 +31,9 @@
  *  \ingroup bke
  */
 
+/* struct DerivedMesh is used directly */
+#include "BKE_DerivedMesh.h"
+
 struct DMFlagMat;
 struct DMGridAdjacency;
 struct DMGridData;
@@ -61,6 +64,13 @@
 
 void subsurf_calculate_limit_positions(struct Mesh *me, float (*positions_r)[3]);
 
+/* get gridsize from 'level', level must be greater than zero */
+int ccg_gridsize(int level);
+
+/* x/y grid coordinates at 'low_level' can be multiplied by the result
+   of this function to convert to grid coordinates at 'high_level' */
+int ccg_factor(int low_level, int high_level);
+
 /**************************** Internal *****************************/
 
 typedef struct CCGDerivedMesh {

Modified: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2012-03-14 06:31:14 UTC (rev 44865)
+++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c	2012-03-14 06:31:24 UTC (rev 44866)
@@ -8,6 +8,7 @@
 #include <math.h>
 
 #include "CCGSubSurf.h"
+#include "BKE_subsurf.h"
 
 #include "MEM_guardedalloc.h"
 #include "BLO_sys_types.h" // for intptr_t support
@@ -227,7 +228,7 @@
 
 /***/
 
-static int ccg_gridsize(int level)
+int ccg_gridsize(int level)
 {
 	BLI_assert(level > 0);
 	BLI_assert(level <= 31);
@@ -235,6 +236,14 @@
 	return (1 << (level - 1)) + 1;
 }
 
+int ccg_factor(int low_level, int high_level)
+{
+	BLI_assert(low_level > 0 && high_level > 0);
+	BLI_assert(low_level <= high_level);
+
+	return 1 << (high_level - low_level);
+}
+
 static int ccg_edgesize(int level)
 {
 	BLI_assert(level > 0);

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2012-03-14 06:31:14 UTC (rev 44865)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c	2012-03-14 06:31:24 UTC (rev 44866)
@@ -3388,4 +3388,3 @@
 
 	dm->release(dm);
 }
-




More information about the Bf-blender-cvs mailing list