[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11309] branches/particles: Merge from trunk: revisions 11263-11297
Janne Karhu
jhkarh at utu.fi
Wed Jul 18 19:11:55 CEST 2007
Revision: 11309
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11309
Author: jhk
Date: 2007-07-18 19:11:54 +0200 (Wed, 18 Jul 2007)
Log Message:
-----------
Merge from trunk: revisions 11263-11297
note: I disabled particles as constraint targets for now, I will enable them again after a recode
Modified Paths:
--------------
branches/particles/extern/bullet2/make/msvc_7_0/Bullet_vc7.vcproj
branches/particles/extern/bullet2/src/SConscript
branches/particles/source/blender/blenkernel/BKE_blender.h
branches/particles/source/blender/blenkernel/BKE_constraint.h
branches/particles/source/blender/blenkernel/BKE_object.h
branches/particles/source/blender/blenkernel/bad_level_call_stubs/stubs.c
branches/particles/source/blender/blenkernel/intern/action.c
branches/particles/source/blender/blenkernel/intern/anim.c
branches/particles/source/blender/blenkernel/intern/armature.c
branches/particles/source/blender/blenkernel/intern/constraint.c
branches/particles/source/blender/blenkernel/intern/depsgraph.c
branches/particles/source/blender/blenkernel/intern/object.c
branches/particles/source/blender/blenlib/BLI_arithb.h
branches/particles/source/blender/blenlib/intern/arithb.c
branches/particles/source/blender/blenloader/intern/readfile.c
branches/particles/source/blender/blenloader/intern/writefile.c
branches/particles/source/blender/makesdna/DNA_action_types.h
branches/particles/source/blender/makesdna/DNA_constraint_types.h
branches/particles/source/blender/makesdna/DNA_object_types.h
branches/particles/source/blender/python/BPY_extern.h
branches/particles/source/blender/python/BPY_interface.c
branches/particles/source/blender/python/api2_2x/Constraint.c
branches/particles/source/blender/python/api2_2x/doc/Constraint.py
branches/particles/source/blender/python/api2_2x/doc/Texture.py
branches/particles/source/blender/src/buttons_editing.c
branches/particles/source/blender/src/buttons_object.c
branches/particles/source/blender/src/drawobject.c
branches/particles/source/blender/src/drawview.c
branches/particles/source/blender/src/editconstraint.c
branches/particles/source/blender/src/editobject.c
branches/particles/source/blender/src/transform_conversions.c
branches/particles/source/gameengine/Physics/Bullet/CcdPhysicsEnvironment.cpp
branches/particles/source/gameengine/Physics/common/PHY_DynamicTypes.h
Modified: branches/particles/extern/bullet2/make/msvc_7_0/Bullet_vc7.vcproj
===================================================================
--- branches/particles/extern/bullet2/make/msvc_7_0/Bullet_vc7.vcproj 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/extern/bullet2/make/msvc_7_0/Bullet_vc7.vcproj 2007-07-18 17:11:54 UTC (rev 11309)
@@ -347,6 +347,12 @@
Name="ConstraintSolver"
Filter="">
<File
+ RelativePath="..\..\src\BulletDynamics\ConstraintSolver\btConeTwistConstraint.cpp">
+ </File>
+ <File
+ RelativePath="..\..\src\BulletDynamics\ConstraintSolver\btConeTwistConstraint.h">
+ </File>
+ <File
RelativePath="..\..\src\BulletDynamics\ConstraintSolver\btConstraintSolver.h">
</File>
<File
Modified: branches/particles/extern/bullet2/src/SConscript
===================================================================
--- branches/particles/extern/bullet2/src/SConscript 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/extern/bullet2/src/SConscript 2007-07-18 17:11:54 UTC (rev 11309)
@@ -29,6 +29,7 @@
"BulletDynamics/ConstraintSolver/btSequentialImpulseConstraintSolver.cpp",
"BulletDynamics/ConstraintSolver/btSolve2LinearConstraint.cpp",
"BulletDynamics/ConstraintSolver/btTypedConstraint.cpp",
+ "BulletDynamics/ConstraintSolver/btConeTwistConstraint.cpp",
"BulletDynamics/Dynamics/btDiscreteDynamicsWorld.cpp",
"BulletDynamics/Dynamics/btSimpleDynamicsWorld.cpp",
"BulletDynamics/Dynamics/btRigidBody.cpp",
Modified: branches/particles/source/blender/blenkernel/BKE_blender.h
===================================================================
--- branches/particles/source/blender/blenkernel/BKE_blender.h 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/BKE_blender.h 2007-07-18 17:11:54 UTC (rev 11309)
@@ -44,7 +44,7 @@
struct MemFile;
#define BLENDER_VERSION 244
-#define BLENDER_SUBVERSION 2
+#define BLENDER_SUBVERSION 3
#define BLENDER_MINVERSION 240
#define BLENDER_MINSUBVERSION 0
Modified: branches/particles/source/blender/blenkernel/BKE_constraint.h
===================================================================
--- branches/particles/source/blender/blenkernel/BKE_constraint.h 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/BKE_constraint.h 2007-07-18 17:11:54 UTC (rev 11309)
@@ -33,44 +33,67 @@
#ifndef BKE_CONSTRAINT_H
#define BKE_CONSTRAINT_H
+
struct bConstraint;
+struct ListBase;
struct Object;
-struct ListBase;
struct bConstraintChannel;
+struct bPoseChannel;
struct bAction;
struct bArmature;
-/* Function prototypes */
+/* ---------------------------------------------------------------------------- */
+
+/* Constraint target/owner types */
+#define TARGET_OBJECT 1 /* string is "" */
+#define TARGET_BONE 2 /* string is bone-name */
+#define TARGET_VERT 3 /* string is vertex-group name */
+#define TARGET_CV 4 /* string is vertex-group name - is not available until curves get vgroups */
+
+/* ---------------------------------------------------------------------------- */
+
+/* special struct for use in constraint evaluation */
+typedef struct bConstraintOb {
+ struct Object *ob; /* if pchan, then armature that it comes from, otherwise constraint owner */
+ struct bPoseChannel *pchan; /* pose channel that owns the constraints being evaluated */
+
+ float matrix[4][4]; /* matrix where constraints are accumulated + solved */
+ float startmat[4][4]; /* original matrix (before constraint solving) */
+
+ short type; /* type of owner */
+} bConstraintOb;
+
+/* ---------------------------------------------------------------------------- */
+
+/* Constraint function prototypes */
void unique_constraint_name (struct bConstraint *con, struct ListBase *list);
void *new_constraint_data (short type);
-void evaluate_constraint (struct bConstraint *constraint, struct Object *ob, short ownertype, void *ownerdata, float targetmat[][4]);
void free_constraints (struct ListBase *conlist);
void copy_constraints (struct ListBase *dst, struct ListBase *src);
-void copy_constraint_channels (ListBase *dst, ListBase *src);
-void clone_constraint_channels (struct ListBase *dst, struct ListBase *src);
void relink_constraints (struct ListBase *list);
void free_constraint_data (struct bConstraint *con);
-/* channels */
+/* Constraint Channel function prototypes */
struct bConstraintChannel *get_constraint_channel (ListBase *list, const char *name);
struct bConstraintChannel *verify_constraint_channel (ListBase *list, const char *name);
+void do_constraint_channels (struct ListBase *conbase, struct ListBase *chanbase, float ctime);
+void copy_constraint_channels (ListBase *dst, ListBase *src);
+void clone_constraint_channels (struct ListBase *dst, struct ListBase *src);
void free_constraint_channels (ListBase *chanbase);
-/* Gemeric functions */
-void do_constraint_channels (struct ListBase *conbase, struct ListBase *chanbase, float ctime);
-short get_constraint_target_matrix (struct bConstraint *con, short ownertype, void *ownerdata, float mat[][4], float size[3], float time);
+/* Target function prototypes */
char constraint_has_target (struct bConstraint *con);
-int constraint_has_particles_target(struct bConstraint *con);
struct Object *get_constraint_target(struct bConstraint *con, char **subtarget);
void set_constraint_target(struct bConstraint *con, struct Object *ob, char *subtarget);
+/* Constraint Evaluation function prototypes */
+struct bConstraintOb *constraints_make_evalob (struct Object *ob, void *subdata, short datatype);
+void constraints_clear_evalob(struct bConstraintOb *cob);
-/* Constraint target/owner types */
-#define TARGET_OBJECT 1 // string is ""
-#define TARGET_BONE 2 // string is bone-name
-#define TARGET_VERT 3 // string is "VE:#"
-#define TARGET_FACE 4 // string is "FA:#"
-#define TARGET_CV 5 // string is "CV:#"
+short get_constraint_target_matrix (struct bConstraint *con, short ownertype, void *ownerdata, float mat[][4], float time);
+void solve_constraints (struct ListBase *conlist, struct bConstraintOb *cob, float ctime);
+
#endif
+
Modified: branches/particles/source/blender/blenkernel/BKE_object.h
===================================================================
--- branches/particles/source/blender/blenkernel/BKE_object.h 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/BKE_object.h 2007-07-18 17:11:54 UTC (rev 11309)
@@ -104,7 +104,6 @@
void minmax_object(struct Object *ob, float *min, float *max);
void minmax_object_duplis(struct Object *ob, float *min, float *max);
void solve_tracking (struct Object *ob, float targetmat[][4]);
-void solve_constraints (struct Object *ob, short obtype, void *obdata, float ctime);
void object_handle_update(struct Object *ob);
Modified: branches/particles/source/blender/blenkernel/bad_level_call_stubs/stubs.c
===================================================================
--- branches/particles/source/blender/blenkernel/bad_level_call_stubs/stubs.c 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/bad_level_call_stubs/stubs.c 2007-07-18 17:11:54 UTC (rev 11309)
@@ -126,7 +126,7 @@
}
/* constraint.c */
-void BPY_pyconstraint_eval(struct bPythonConstraint *con, float obmat[][4], short ownertype, void *ownerdata, float targetmat[][4])
+void BPY_pyconstraint_eval(struct bPythonConstraint *con, float ownermat[][4], float targetmat[][4])
{
}
int BPY_pyconstraint_targets(struct bPythonConstraint *con, float targetmat[][4])
Modified: branches/particles/source/blender/blenkernel/intern/action.c
===================================================================
--- branches/particles/source/blender/blenkernel/intern/action.c 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/intern/action.c 2007-07-18 17:11:54 UTC (rev 11309)
@@ -225,12 +225,12 @@
{
bPoseChannel *chan;
- if (!pose){
+ if (!pose) {
return NULL;
}
/* See if this channel exists */
- for (chan=pose->chanbase.first; chan; chan=chan->next){
+ for (chan=pose->chanbase.first; chan; chan=chan->next) {
if (!strcmp (name, chan->name))
return chan;
}
@@ -239,7 +239,7 @@
chan = MEM_callocN(sizeof(bPoseChannel), "verifyPoseChannel");
strncpy (chan->name, name, 31);
- /* init vars to prevent mat errors */
+ /* init vars to prevent math errors */
chan->quat[0] = 1.0F;
chan->size[0] = chan->size[1] = chan->size[2] = 1.0F;
@@ -247,6 +247,8 @@
chan->limitmax[0]= chan->limitmax[1]= chan->limitmax[2]= 180.0f;
chan->stiffness[0]= chan->stiffness[1]= chan->stiffness[2]= 0.0f;
+ Mat4One(chan->constinv);
+
BLI_addtail (&pose->chanbase, chan);
return chan;
Modified: branches/particles/source/blender/blenkernel/intern/anim.c
===================================================================
--- branches/particles/source/blender/blenkernel/intern/anim.c 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/intern/anim.c 2007-07-18 17:11:54 UTC (rev 11309)
@@ -388,9 +388,13 @@
VECCOPY(obmat[3], vec);
if(vdd->par->transflag & OB_DUPLIROT) {
+ if(no_f) {
+ vec[0]= -no_f[0]; vec[1]= -no_f[1]; vec[2]= -no_f[2];
+ }
+ else if(no_s) {
+ vec[0]= -no_s[0]; vec[1]= -no_s[1]; vec[2]= -no_s[2];
+ }
- vec[0]= -no_f[0]; vec[1]= -no_f[1]; vec[2]= -no_f[2];
-
q2= vectoquat(vec, vdd->ob->trackflag, vdd->ob->upflag);
QuatToMat3(q2, mat);
Modified: branches/particles/source/blender/blenkernel/intern/armature.c
===================================================================
--- branches/particles/source/blender/blenkernel/intern/armature.c 2007-07-18 16:44:17 UTC (rev 11308)
+++ branches/particles/source/blender/blenkernel/intern/armature.c 2007-07-18 17:11:54 UTC (rev 11309)
@@ -1321,7 +1321,7 @@
float goalrot[3][3], goalpos[3];
float rootmat[4][4], imat[4][4];
float goal[4][4], goalinv[4][4];
- float size[3], irest_basis[3][3], full_basis[3][3];
+ float irest_basis[3][3], full_basis[3][3];
float end_pose[4][4], world_pose[4][4];
float length, basis[3][3], rest_basis[3][3], start[3], *ikstretch=NULL;
int a, flag, hasstretch=0;
@@ -1444,7 +1444,7 @@
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list