[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