[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15054] branches/soc-2008-nicholasbishop/ source/blender: == Multires ==

Nicholas Bishop nicholasbishop at gmail.com
Fri May 30 03:02:54 CEST 2008


Revision: 15054
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15054
Author:   nicholasbishop
Date:     2008-05-30 03:02:40 +0200 (Fri, 30 May 2008)

Log Message:
-----------
== Multires ==

* Added an MDisps customdata layer to store multires displacements in

Modified Paths:
--------------
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/customdata.c
    branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_customdata_types.h
    branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_meshdata_types.h

Modified: branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/customdata.c
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/customdata.c	2008-05-29 22:14:12 UTC (rev 15053)
+++ branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/customdata.c	2008-05-30 01:02:40 UTC (rev 15054)
@@ -357,6 +357,29 @@
 	for(i = 0; i < count; i++)
 		osf[i] = default_osf;
 }
+
+void layerCopy_mdisps(const void *source, void *dest, int count)
+{
+	int i;
+	MDisps *s = source, *d = dest;
+
+	for(i = 0; i < count; ++i) {
+		if(s[i].disps)
+			d[i].disps = MEM_dupallocN(s[i].disps);
+	}
+}
+
+void layerFree_mdisps(void *data, int count, int size)
+{
+	int i;
+	MDisps *d = data;
+
+	for(i = 0; i < count; ++i) {
+		if(d->disps)
+			MEM_freeN(d->disps);
+	}
+}
+
 /* --------- */
 
 
@@ -454,13 +477,15 @@
 	{sizeof(MStringProperty), "MStringProperty",1,"String",NULL,NULL,NULL,NULL},
 	{sizeof(OrigSpaceFace), "OrigSpaceFace", 1, "UVTex", layerCopy_origspace_face, NULL,
 	 layerInterp_origspace_face, layerSwap_origspace_face, layerDefault_origspace_face},
-	{sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}
+	{sizeof(float)*3, "", 0, NULL, NULL, NULL, NULL, NULL, NULL},
+	{sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps,
+	 layerFree_mdisps, NULL, NULL, NULL}
 };
 
 const char *LAYERTYPENAMES[CD_NUMTYPES] = {
 	"CDMVert", "CDMSticky", "CDMDeformVert", "CDMEdge", "CDMFace", "CDMTFace",
 	"CDMCol", "CDOrigIndex", "CDNormal", "CDFlags","CDMFloatProperty",
-	"CDMIntProperty","CDMStringProperty", "CDOrigSpace", "CDOrco"};
+	"CDMIntProperty","CDMStringProperty", "CDOrigSpace", "CDOrco", "CDMDisps"};
 
 const CustomDataMask CD_MASK_BAREMESH =
 	CD_MASK_MVERT | CD_MASK_MEDGE | CD_MASK_MFACE;

Modified: branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_customdata_types.h
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_customdata_types.h	2008-05-29 22:14:12 UTC (rev 15053)
+++ branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_customdata_types.h	2008-05-30 01:02:40 UTC (rev 15054)
@@ -66,7 +66,8 @@
 #define CD_PROP_STR		12
 #define CD_ORIGSPACE	13 /* for modifier stack face location mapping */
 #define CD_ORCO			14
-#define CD_NUMTYPES		15
+#define CD_MDISPS		15
+#define CD_NUMTYPES		16
 
 /* Bits for CustomDataMask */
 #define CD_MASK_MVERT		(1 << CD_MVERT)
@@ -84,6 +85,7 @@
 #define CD_MASK_PROP_STR	(1 << CD_PROP_STR)
 #define CD_MASK_ORIGSPACE	(1 << CD_ORIGSPACE)
 #define CD_MASK_ORCO		(1 << CD_ORCO)
+#define CD_MASK_MDISPS		(1 << CD_MDISPS)
 
 
 /* CustomData.flag */

Modified: branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_meshdata_types.h
===================================================================
--- branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_meshdata_types.h	2008-05-29 22:14:12 UTC (rev 15053)
+++ branches/soc-2008-nicholasbishop/source/blender/makesdna/DNA_meshdata_types.h	2008-05-30 01:02:40 UTC (rev 15054)
@@ -100,6 +100,10 @@
 	float uv[4][2];
 } OrigSpaceFace;
 
+typedef struct MDisps {
+	float (*disps)[3];
+} MDisps;
+
 /* Multiresolution modeling */
 typedef struct MultiresCol {
 	float a, r, g, b;





More information about the Bf-blender-cvs mailing list