[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16266] branches/apricot: svn merge -r 16246:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/ blender
Campbell Barton
ideasman42 at gmail.com
Wed Aug 27 05:41:29 CEST 2008
Revision: 16266
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16266
Author: campbellbarton
Date: 2008-08-27 05:41:29 +0200 (Wed, 27 Aug 2008)
Log Message:
-----------
svn merge -r 16246:HEAD https://svn.blender.org/svnroot/bf-blender/trunk/blender
Modified Paths:
--------------
branches/apricot/CMake/macros.cmake
branches/apricot/source/Makefile
branches/apricot/source/blender/blenkernel/intern/effect.c
branches/apricot/source/blender/blenkernel/intern/particle.c
branches/apricot/source/blender/blenkernel/intern/particle_system.c
branches/apricot/source/blender/makesdna/DNA_actuator_types.h
branches/apricot/source/blender/render/intern/source/convertblender.c
branches/apricot/source/blender/src/buttons_logic.c
branches/apricot/source/blender/src/gpencil.c
branches/apricot/source/gameengine/Converter/KX_ConvertActuators.cpp
branches/apricot/source/gameengine/Converter/KX_ConvertSensors.cpp
branches/apricot/source/gameengine/Expressions/PyObjectPlus.h
branches/apricot/source/gameengine/Ketsji/KX_GameObject.cpp
branches/apricot/source/gameengine/Ketsji/KX_GameObject.h
branches/apricot/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.cpp
branches/apricot/source/gameengine/Ketsji/KX_SCA_AddObjectActuator.h
branches/apricot/source/gameengine/Ketsji/Makefile
branches/apricot/source/gameengine/Physics/Bullet/Makefile
branches/apricot/source/gameengine/PyDoc/KX_GameObject.py
branches/apricot/source/gameengine/PyDoc/KX_SCA_AddObjectActuator.py
Modified: branches/apricot/CMake/macros.cmake
===================================================================
--- branches/apricot/CMake/macros.cmake 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/CMake/macros.cmake 2008-08-27 03:41:29 UTC (rev 16266)
@@ -38,6 +38,8 @@
ENDMACRO(BLENDERLIB)
MACRO(SETUP_LIBDIRS)
+ # see "cmake --help-policy CMP0003"
+ CMAKE_POLICY(SET CMP0003 NEW)
LINK_DIRECTORIES(${PYTHON_LIBPATH} ${SDL_LIBPATH} ${JPEG_LIBPATH} ${PNG_LIBPATH} ${ZLIB_LIBPATH} ${ICONV_LIBPATH} ${OPENEXR_LIBPATH} ${QUICKTIME_LIBPATH} ${FFMPEG_LIBPATH})
IF(WITH_INTERNATIONAL)
LINK_DIRECTORIES(${GETTEXT_LIBPATH})
Modified: branches/apricot/source/Makefile
===================================================================
--- branches/apricot/source/Makefile 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/Makefile 2008-08-27 03:41:29 UTC (rev 16266)
@@ -251,6 +251,7 @@
# but somehow it consistently fails to resolve these symbols... or
# can I just not check them? nm claims they aren't...
SPLIB += $(OCGDIR)/blender/blenkernel/blenkernel_blc/$(DEBUG_DIR)libblenkernel_blc.a
+SPLIB += $(OCGDIR)/blender/python/$(DEBUG_DIR)libpython.a
# These three need to be explicitly mentioned on the cl, because
# if they are offered as a lib, they are optimized away. (nzc)
Modified: branches/apricot/source/blender/blenkernel/intern/effect.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/effect.c 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/blenkernel/intern/effect.c 2008-08-27 03:41:29 UTC (rev 16266)
@@ -406,12 +406,15 @@
else
VecCopyf(mag_vec,vec_to_part);
+ Normalize(mag_vec);
+
VecMulf(mag_vec,force_val*falloff);
VecAddf(field,field,mag_vec);
break;
case PFIELD_VORTEX:
Crossf(mag_vec,eff_vel,vec_to_part);
+
Normalize(mag_vec);
VecMulf(mag_vec,force_val*distance*falloff);
@@ -425,6 +428,8 @@
/* magnetic field of a moving charge */
Crossf(temp,eff_vel,vec_to_part);
+ Normalize(temp);
+
Crossf(temp2,velocity,temp);
VecAddf(mag_vec,mag_vec,temp2);
@@ -437,6 +442,8 @@
else
VecCopyf(mag_vec,vec_to_part);
+ Normalize(mag_vec);
+
VecMulf(mag_vec,force_val*falloff);
VecSubf(field,field,mag_vec);
@@ -451,6 +458,8 @@
else
VecCopyf(mag_vec,vec_to_part);
+ Normalize(mag_vec);
+
VecMulf(mag_vec,charge*force_val*falloff);
VecAddf(field,field,mag_vec);
break;
@@ -535,10 +544,6 @@
where_is_object_time(ob,cur_time);
/* use center of object for distance calculus */
- obloc= ob->obmat[3];
- VECSUB(vect_to_vert, obloc, opco);
- distance = VecLength(vect_to_vert);
-
VecSubf(vec_to_part, opco, ob->obmat[3]);
distance = VecLength(vec_to_part);
Modified: branches/apricot/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/particle.c 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/blenkernel/intern/particle.c 2008-08-27 03:41:29 UTC (rev 16266)
@@ -379,8 +379,11 @@
}
/* free everything */
void psys_free(Object *ob, ParticleSystem * psys)
-{
+{
if(psys){
+ int nr = 0;
+ ParticleSystem * tpsys;
+
if(ob->particlesystem.first == NULL && G.f & G_PARTICLEEDIT)
G.f &= ~G_PARTICLEEDIT;
@@ -406,6 +409,21 @@
if(psys->effectors.first)
psys_end_effectors(psys);
+
+ // check if we are last non-visible particle system
+ for(tpsys=ob->particlesystem.first; tpsys; tpsys=tpsys->next){
+ if(tpsys->part)
+ {
+ if(ELEM(tpsys->part->draw_as,PART_DRAW_OB,PART_DRAW_GR))
+ {
+ nr++;
+ break;
+ }
+ }
+ }
+ // clear do-not-draw-flag
+ if(!nr)
+ ob->transflag &= ~OB_DUPLIPARTS;
if(psys->part){
psys->part->id.us--;
@@ -417,7 +435,7 @@
if(psys->pointcache)
BKE_ptcache_free(psys->pointcache);
-
+
MEM_freeN(psys);
}
}
Modified: branches/apricot/source/blender/blenkernel/intern/particle_system.c
===================================================================
--- branches/apricot/source/blender/blenkernel/intern/particle_system.c 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/blenkernel/intern/particle_system.c 2008-08-27 03:41:29 UTC (rev 16266)
@@ -2301,7 +2301,15 @@
}
}
else if(pd->forcefield)
+ {
type |= PSYS_EC_EFFECTOR;
+
+ if(pd->forcefield == PFIELD_WIND)
+ {
+ pd->rng = rng_new(1);
+ rng_srandom(pd->rng, (unsigned int)(ceil(PIL_check_seconds_timer()))); // use better seed
+ }
+ }
}
if(pd && pd->deflect)
@@ -2413,6 +2421,9 @@
if(ec->tree)
BLI_kdtree_free(ec->tree);
+
+ if(ec->ob->pd && (ec->ob->pd->forcefield == PFIELD_WIND))
+ rng_free(ec->ob->pd->rng);
}
BLI_freelistN(lb);
Modified: branches/apricot/source/blender/makesdna/DNA_actuator_types.h
===================================================================
--- branches/apricot/source/blender/makesdna/DNA_actuator_types.h 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/makesdna/DNA_actuator_types.h 2008-08-27 03:41:29 UTC (rev 16266)
@@ -81,7 +81,9 @@
struct Mesh *me;
char name[32];
float linVelocity[3]; /* initial lin. velocity on creation */
- short localflag; /* flag for the lin. vel: apply locally */
+ float angVelocity[3]; /* initial ang. velocity on creation */
+ float pad;
+ short localflag; /* flag for the lin & ang. vel: apply locally */
short dyn_operation;
} bEditObjectActuator;
@@ -384,6 +386,9 @@
#define ACT_EDOB_TRACK_TO 3
#define ACT_EDOB_DYNAMICS 4
+/* editObjectActuator->localflag */
+#define ACT_EDOB_LOCAL_LINV 2
+#define ACT_EDOB_LOCAL_ANGV 4
/* editObjectActuator->flag */
Modified: branches/apricot/source/blender/render/intern/source/convertblender.c
===================================================================
--- branches/apricot/source/blender/render/intern/source/convertblender.c 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/render/intern/source/convertblender.c 2008-08-27 03:41:29 UTC (rev 16266)
@@ -1565,7 +1565,7 @@
float hasize, pa_size, pa_time, r_tilt, cfra=bsystem_time(ob,(float)CFRA,0.0);
float adapt_angle=0.0, adapt_pix=0.0, random, simplify[2];
int i, a, k, max_k=0, totpart, totuv=0, totcol=0, override_uv=-1, dosimplify = 0, dosurfacecache = 0;
- int path_possible=0, keys_possible=0, baked_keys=0, totchild=psys->totchild;
+ int path_possible=0, keys_possible=0, baked_keys=0, totchild=0;
int seed, path_nbr=0, path=0, orco1=0, adapt=0, uv[3]={0,0,0}, num;
int totface, *origindex = 0;
char **uv_name=0;
@@ -1573,6 +1573,8 @@
/* 1. check that everything is ok & updated */
if(psys==NULL)
return 0;
+
+ totchild=psys->totchild;
part=psys->part;
pars=psys->particles;
Modified: branches/apricot/source/blender/src/buttons_logic.c
===================================================================
--- branches/apricot/source/blender/src/buttons_logic.c 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/src/buttons_logic.c 2008-08-27 03:41:29 UTC (rev 16266)
@@ -2022,7 +2022,7 @@
if(eoa->type==ACT_EDOB_ADD_OBJECT) {
int wval; /* just a temp width */
- ysize = 72;
+ ysize = 92;
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
@@ -2042,9 +2042,27 @@
uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-68, wval, 19,
eoa->linVelocity+2, -100.0, 100.0, 10, 0,
"Velocity upon creation, z component.");
- uiDefButBitS(block, TOG, 2, 0, "L", xco+45+3*wval, yco-68, 15, 19,
+ uiDefButBitS(block, TOG, ACT_EDOB_LOCAL_LINV, 0, "L", xco+45+3*wval, yco-68, 15, 19,
&eoa->localflag, 0.0, 0.0, 0, 0,
"Apply the transformation locally");
+
+
+ uiDefBut(block, LABEL, 0, "AngV", xco, yco-90, 45, 19,
+ NULL, 0, 0, 0, 0,
+ "Angular velocity upon creation.");
+ uiDefButF(block, NUM, 0, "", xco+45, yco-90, wval, 19,
+ eoa->angVelocity, -10000.0, 10000.0, 10, 0,
+ "Angular velocity upon creation, x component.");
+ uiDefButF(block, NUM, 0, "", xco+45+wval, yco-90, wval, 19,
+ eoa->angVelocity+1, -10000.0, 10000.0, 10, 0,
+ "Angular velocity upon creation, y component.");
+ uiDefButF(block, NUM, 0, "", xco+45+2*wval, yco-90, wval, 19,
+ eoa->angVelocity+2, -10000.0, 10000.0, 10, 0,
+ "Angular velocity upon creation, z component.");
+ uiDefButBitS(block, TOG, ACT_EDOB_LOCAL_ANGV, 0, "L", xco+45+3*wval, yco-90, 15, 19,
+ &eoa->localflag, 0.0, 0.0, 0, 0,
+ "Apply the rotation locally");
+
}
else if(eoa->type==ACT_EDOB_END_OBJECT) {
Modified: branches/apricot/source/blender/src/gpencil.c
===================================================================
--- branches/apricot/source/blender/src/gpencil.c 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/blender/src/gpencil.c 2008-08-27 03:41:29 UTC (rev 16266)
@@ -1174,9 +1174,13 @@
/* get coordinates */
if (gps->flag & GP_STROKE_3DSPACE) {
- project_short(&gps->points->x, xyval);
+ project_short(&pt1->x, xyval);
x0= xyval[0];
y0= xyval[1];
+
+ project_short(&pt2->x, xyval);
+ x1= xyval[0];
+ y1= xyval[1];
}
else if (gps->flag & GP_STROKE_2DSPACE) {
ipoco_to_areaco_noclip(p->v2d, &pt1->x, xyval);
Modified: branches/apricot/source/gameengine/Converter/KX_ConvertActuators.cpp
===================================================================
--- branches/apricot/source/gameengine/Converter/KX_ConvertActuators.cpp 2008-08-27 03:34:53 UTC (rev 16265)
+++ branches/apricot/source/gameengine/Converter/KX_ConvertActuators.cpp 2008-08-27 03:41:29 UTC (rev 16266)
@@ -355,22 +355,26 @@
if (soundActuatorType != KX_SoundActuator::KX_SOUNDACT_NODEF)
{
- SND_SoundObject* sndobj = NULL;
+ SND_Scene* soundscene = scene->GetSoundScene();
+ STR_String samplename = "";
+ bool sampleisloaded = false;
- if (soundact->sound)
- {
- SND_Scene* soundscene = scene->GetSoundScene();
- STR_String samplename = soundact->sound->name;
+ if (soundact->sound) {
+ /* Need to convert the samplename into absolute path
+ * before checking if its loaded */
+ char fullpath[sizeof(soundact->sound->name)];
- bool sampleisloaded = false;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list