[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12730] trunk/blender: anim.c, buttons_object.c, readfile.c, BKE_blender.h - dupliFace scale option, needed for leaves.

Campbell Barton ideasman42 at gmail.com
Fri Nov 30 11:39:00 CET 2007


Revision: 12730
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12730
Author:   campbellbarton
Date:     2007-11-30 11:38:59 +0100 (Fri, 30 Nov 2007)

Log Message:
-----------
anim.c, buttons_object.c, readfile.c, BKE_blender.h - dupliFace scale option, needed for leaves.
modifier.c, BKE_modifier.h - flag for modifiers to say they use pointcache, also new func modifiers_usesPointCache
renamed //pointcache to //blendcache_blendfilename so blendfiles in the same dir dont conflict, and other to show this dir isnt limited to pointcache only (nodes way want to use this)
wizard_curve2tree.py - better defaults for pretty tree's

Modified Paths:
--------------
    trunk/blender/release/scripts/wizard_curve2tree.py
    trunk/blender/source/blender/blenkernel/BKE_blender.h
    trunk/blender/source/blender/blenkernel/BKE_modifier.h
    trunk/blender/source/blender/blenkernel/BKE_pointcache.h
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenkernel/intern/modifier.c
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenlib/intern/util.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/makesdna/DNA_object_types.h
    trunk/blender/source/blender/src/buttons_object.c

Modified: trunk/blender/release/scripts/wizard_curve2tree.py
===================================================================
--- trunk/blender/release/scripts/wizard_curve2tree.py	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/release/scripts/wizard_curve2tree.py	2007-11-30 10:38:59 UTC (rev 12730)
@@ -325,7 +325,7 @@
 							do_twigs_fill = 0,\
 							twig_fill_levels=4,\
 							twig_fill_rand_scale=0.0,\
-							twig_fill_fork_angle_max=60.0,\
+							twig_fill_fork_angle_max=180.0,\
 							twig_fill_radius_min=0.1,\
 							twig_fill_radius_factor=0.75,\
 							twig_fill_shape_type=0,\
@@ -1795,7 +1795,7 @@
 			leaf_branch_limit_type_grow = False,\
 			leaf_branch_limit_type_fill = False,\
 			leaf_size = 0.5,\
-			leaf_size_rand = 0.0,\
+			leaf_size_rand = 0.5,\
 			leaf_branch_density = 0.2,\
 			leaf_branch_pitch_angle = 0.0,\
 			leaf_branch_pitch_rand = 0.2,\
@@ -3061,13 +3061,13 @@
 PREFS['do_twigs_fill'] = Draw.Create(0)
 PREFS['twig_fill_levels'] = Draw.Create(4)
 
-PREFS['twig_fill_rand_scale'] = Draw.Create(0.0)
-PREFS['twig_fill_fork_angle_max'] = Draw.Create(60.0)
+PREFS['twig_fill_rand_scale'] = Draw.Create(0.1)
+PREFS['twig_fill_fork_angle_max'] = Draw.Create(180.0)
 PREFS['twig_fill_radius_min'] = Draw.Create(0.001)
 PREFS['twig_fill_radius_factor'] = Draw.Create(0.75)
-PREFS['twig_fill_shape_type'] = Draw.Create(0)
-PREFS['twig_fill_shape_rand'] = Draw.Create(0.0)
-PREFS['twig_fill_shape_power'] = Draw.Create(0.3)
+PREFS['twig_fill_shape_type'] = Draw.Create(1)
+PREFS['twig_fill_shape_rand'] = Draw.Create(0.5)
+PREFS['twig_fill_shape_power'] = Draw.Create(0.5)
 
 PREFS['do_twigs'] = Draw.Create(0)
 PREFS['twig_ratio'] = Draw.Create(2.0)
@@ -3100,7 +3100,7 @@
 PREFS['leaf_branch_angle'] = Draw.Create(75.0)
 PREFS['leaf_rand_seed'] = Draw.Create(1.0)
 PREFS['leaf_size'] = Draw.Create(0.5)
-PREFS['leaf_size_rand'] = Draw.Create(0.0)
+PREFS['leaf_size_rand'] = Draw.Create(0.5)
 
 PREFS['leaf_object'] = Draw.Create('')
 

Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h	2007-11-30 10:38:59 UTC (rev 12730)
@@ -44,7 +44,7 @@
 struct MemFile;
 
 #define BLENDER_VERSION			245
-#define BLENDER_SUBVERSION		9
+#define BLENDER_SUBVERSION		10
 
 #define BLENDER_MINVERSION		240
 #define BLENDER_MINSUBVERSION	0

Modified: trunk/blender/source/blender/blenkernel/BKE_modifier.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_modifier.h	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenkernel/BKE_modifier.h	2007-11-30 10:38:59 UTC (rev 12730)
@@ -85,6 +85,10 @@
 	 * be placed after any non-deformative modifier.
 	 */
 	eModifierTypeFlag_RequiresOriginalData = (1<<5),
+
+	/* For modifiers that support pointcache, so we can check to see if it has files we need to deal with
+	*/
+	eModifierTypeFlag_UsesPointCache = (1<<6),
 } ModifierTypeFlag;
 
 typedef void (*ObjectWalkFunc)(void *userData, struct Object *ob, struct Object **obpoin);

Modified: trunk/blender/source/blender/blenkernel/BKE_pointcache.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_pointcache.h	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenkernel/BKE_pointcache.h	2007-11-30 10:38:59 UTC (rev 12730)
@@ -38,9 +38,15 @@
 #define PTCACHE_CLEAR_BEFORE	2
 #define PTCACHE_CLEAR_AFTER		3
 
+/* Add the blendfile name after blendcache_ */
 #define PTCACHE_EXT ".bphys"
-#define PTCACHE_PATH "//pointcache/"
+#define PTCACHE_PATH "//blendcache_"
 
+/* Global funcs */
+/* void BKE_ptcache_clean(void); - not implimented yet! */
+
+
+/* Object spesific funcs */
 int		BKE_ptcache_id_filename(struct ID *id, char *filename, int cfra, int stack_index, short do_path, short do_ext);
 FILE *	BKE_ptcache_id_fopen(struct ID *id, char mode, int cfra, int stack_index);
 void	BKE_ptcache_id_clear(struct ID *id, char mode, int cfra, int stack_index);

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2007-11-30 10:38:59 UTC (rev 12730)
@@ -538,7 +538,7 @@
 						/* scale */
 						if(par->transflag & OB_DUPLIFACES_SCALE) {
 							float size= v4?AreaQ3Dfl(v1, v2, v3, v4):AreaT3Dfl(v1, v2, v3);
-							size= sqrt(size);
+							size= sqrt(size) * par->dupfacesca;
 							Mat3MulFloat(mat[0], size);
 						}
 						

Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c	2007-11-30 10:38:59 UTC (rev 12730)
@@ -6739,7 +6739,9 @@
 
 		mti = INIT_TYPE(Boolean);
 		mti->type = eModifierTypeType_Nonconstructive;
-		mti->flags = eModifierTypeFlag_AcceptsMesh | eModifierTypeFlag_RequiresOriginalData;
+		mti->flags = eModifierTypeFlag_AcceptsMesh
+					 | eModifierTypeFlag_RequiresOriginalData
+					 | eModifierTypeFlag_UsesPointCache;
 		mti->copyData = booleanModifier_copyData;
 		mti->isDisabled = booleanModifier_isDisabled;
 		mti->applyModifier = booleanModifier_applyModifier;
@@ -6763,7 +6765,8 @@
 		mti = INIT_TYPE(ParticleSystem);
 		mti->type = eModifierTypeType_OnlyDeform;
 		mti->flags = eModifierTypeFlag_AcceptsMesh
-					| eModifierTypeFlag_SupportsMapping;
+					| eModifierTypeFlag_SupportsMapping
+					| eModifierTypeFlag_UsesPointCache;
 #if 0
 					| eModifierTypeFlag_SupportsEditmode;
 					|eModifierTypeFlag_EnableInEditmode;
@@ -7192,3 +7195,15 @@
 	return i;
 }
 
+int modifiers_usesPointCache(Object *ob)
+{
+	ModifierData *md = ob->modifiers.first;
+
+	for (; md; md=md->next) {
+		ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+		if (mti->flags & eModifierTypeFlag_UsesPointCache) {
+			return 1;
+		}
+	}
+	return 0;
+}
\ No newline at end of file

Modified: trunk/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/pointcache.c	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenkernel/intern/pointcache.c	2007-11-30 10:38:59 UTC (rev 12730)
@@ -59,7 +59,17 @@
 
 static int ptcache_path(char *filename)
 {
-	sprintf(filename, PTCACHE_PATH);
+	char dir[FILE_MAX], file[FILE_MAX]; /* we dont want the dir, only the file */
+	int i;
+	
+	BLI_split_dirfile(G.sce, dir, file);
+	i = strlen(file);
+	
+	/* remove .blend */
+	if (i > 6)
+		file[i-6] = '\0';
+	
+	sprintf(filename, PTCACHE_PATH"%s/", file); /* add blend file name to pointcache dir */
 	BLI_convertstringcode(filename, G.sce, 0);
 	return strlen(filename);
 }
@@ -72,6 +82,8 @@
 	filename[0] = '\0';
 	newname = filename;
 	
+	if (!G.relbase_valid) return 0; /* save blend fiel before using pointcache */
+	
 	/* start with temp dir */
 	if (do_path) {
 		len = ptcache_path(filename);
@@ -100,6 +112,8 @@
 	FILE *fp = NULL;
 	char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
 
+	if (!G.relbase_valid) return NULL; /* save blend fiel before using pointcache */
+	
 	BKE_ptcache_id_filename(id, filename, cfra, stack_index, 1, 1);
 
 	if (mode=='r') {
@@ -135,6 +149,8 @@
 	char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
 	char path_full[(FILE_MAXDIR+FILE_MAXFILE)*2];
 	
+	if (!G.relbase_valid) return; /* save blend fiel before using pointcache */
+	
 	/* clear all files in the temp dir with the prefix of the ID and the ".bphys" suffix */
 	switch (mode) {
 	case PTCACHE_CLEAR_ALL:
@@ -183,11 +199,11 @@
 	return;
 }
 
-int BKE_ptcache_id_exist(struct ID *id, int cfra, int stack_index)
-{
-	char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
-	
-	BKE_ptcache_id_filename(id, filename, cfra, stack_index, 1, 1);
-
-	return BLI_exists(filename);
+int BKE_ptcache_id_exist(struct ID *id, int cfra, int stack_index)
+{
+	char filename[(FILE_MAXDIR+FILE_MAXFILE)*2];
+	
+	BKE_ptcache_id_filename(id, filename, cfra, stack_index, 1, 1);
+
+	return BLI_exists(filename);
 }

Modified: trunk/blender/source/blender/blenlib/intern/util.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/util.c	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenlib/intern/util.c	2007-11-30 10:38:59 UTC (rev 12730)
@@ -1023,6 +1023,7 @@
 	return wasrelative;
 }
 
+/* copy di to fi without directory only */
 void BLI_splitdirstring(char *di, char *fi)
 {
 	char *lslash= BLI_last_slash(di);

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2007-11-30 10:38:59 UTC (rev 12730)
@@ -7180,6 +7180,17 @@
 					if(ma->mtex[a] && ma->mtex[a]->tex)
 						ma->mtex[a]->normapspace = MTEX_NSPACE_TANGENT;
 	}
+	
+	if ((main->versionfile < 245) || (main->versionfile == 245 && main->subversionfile < 10)) {
+		Object *ob;
+		/* dupliface scale */
+		for(ob= main->object.first; ob; ob= ob->id.next) {
+			ob->dupfacesca = 1.0f;
+		}
+
+	}
+
+	
 	/* WATCH IT!!!: pointers from libdata have not been converted yet here! */
 	/* WATCH IT 2!: Userdef struct init has to be in src/usiblender.c! */
 

Modified: trunk/blender/source/blender/makesdna/DNA_object_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_object_types.h	2007-11-30 07:41:22 UTC (rev 12729)
+++ trunk/blender/source/blender/makesdna/DNA_object_types.h	2007-11-30 10:38:59 UTC (rev 12730)
@@ -141,8 +141,9 @@
 	char dt, dtx;
 	char totcol;	/* copy of mesh or curve or meta */
 	char actcol;	/* currently selected material in the user interface */
-	char empty_drawtype, pad1[7];
+	char empty_drawtype, pad1[3];
 	float empty_drawsize;
+	float dupfacesca;	/* dupliface scale */
 	
 	ScriptLink scriptlink;
 	ListBase prop;

Modified: trunk/blender/source/blender/src/buttons_object.c

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list