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);
 }
-

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to