diff options
author | Jens Ole Wund <bjornmose@gmx.net> | 2006-11-11 02:09:16 +0300 |
---|---|---|
committer | Jens Ole Wund <bjornmose@gmx.net> | 2006-11-11 02:09:16 +0300 |
commit | 9e717b59cb4feb16314f0b2c026ebfd9278862a5 (patch) | |
tree | 75ae573df64a999d0423093bc385ed02ce9b29dc /source/blender/makesdna | |
parent | 68a2f29db332bbd6b9e6f8f724b79e2cb712756a (diff) |
softbody review
1. UI review -> disabeling options when not available .. giving hints why ( even tried to give usefull tooltips )
1.1 give some more user control to the solving process (mins,maxs).. optional feedback on the console
2. replacing ugly object level 'sumohandle' with SB (private runtime) level/pointer 'scratch'
which holds runtime data like cached collider data and more .. and it's thread save this way :)
3.related no 2. write a 'private' history of collision objects to ease the 'fast' collider tunneling syndrome'
4. some <clean> optimizations, 3-BSP for self collision, general AABB checking before ever going to collision details
5. some <dirty> ( in the sense of do some inacurate physics noone ever will see ) little tricks to make things faster .. ..fuzzy collision situation bypass .. forward collision resolution
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_object_force.h | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 7ecff33e165..d9ab54b76f9 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -84,7 +84,8 @@ typedef struct SoftBody { float maxgoal; float defgoal; /* default goal for vertices without vgroup */ short vertgroup; /* index starting at 1 */ - short pad1; + + short fuzzyness; /* */ /* springs */ float inspring; /* softbody inner springs */ @@ -93,7 +94,7 @@ typedef struct SoftBody { /* baking */ int sfra, efra; int interval; - short local, pad2; /* local==1: use local coords for baking */ + short local, solverflags; /* local==1: use local coords for baking */ SBVertex **keys; /* array of size totpointkey */ int totpointkey, totkey; /* if totpointkey != totpoint or totkey!- (efra-sfra)/interval -> free keys */ @@ -105,8 +106,13 @@ typedef struct SoftBody { float ballstiff; /* pressure the ball is loaded with */ short sbc_mode; short aeroedge, - /* alias vg_ballsize, weight painting collision balls not implemented yet, but easy peasy to do */ - pad4,pad5; /* could be vg_balldamp,vg_ballstiff :) ahh, well vg_nodemass is missing too*/ + minloops, + maxloops, + choke, + pad3,pad4,pad5 + ; + + struct SBScratch *scratch; /* scratch pad/cache on live time not saved in file */ } SoftBody; @@ -133,9 +139,11 @@ typedef struct SoftBody { #define OB_SB_BAKEDO 128 #define OB_SB_RESET 256 #define OB_SB_SELF 512 -#define OB_SB_COLLISIONSET 1024 -#define OB_SB_EDGECOLL 2048 -#define OB_SB_COLLFINAL 4096 +#define OB_SB_FACECOLL 1024 +#define OB_SB_EDGECOLL 2048 +#define OB_SB_COLLFINAL 4096 + +#define SBSO_MONITOR 1 #ifdef __cplusplus } |