[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