diff options
Diffstat (limited to 'source/blender/makesdna/DNA_object_force_types.h')
-rw-r--r-- | source/blender/makesdna/DNA_object_force_types.h | 84 |
1 files changed, 27 insertions, 57 deletions
diff --git a/source/blender/makesdna/DNA_object_force_types.h b/source/blender/makesdna/DNA_object_force_types.h index 424f5499e39..cf206aada18 100644 --- a/source/blender/makesdna/DNA_object_force_types.h +++ b/source/blender/makesdna/DNA_object_force_types.h @@ -37,6 +37,7 @@ extern "C" { #endif #include "DNA_listBase.h" +#include "DNA_defs.h" /* pd->forcefield: Effector Fields types */ typedef enum ePFieldType { @@ -112,11 +113,20 @@ typedef struct PartDeflect { float f_noise; /* noise of force */ int seed; /* noise random seed */ + /* Display Size */ + float drawvec1[4]; /* Runtime only : start of the curve or draw scale */ + float drawvec2[4]; /* Runtime only : end of the curve */ + float drawvec_falloff_min[3], pad1; /* Runtime only */ + float drawvec_falloff_max[3], pad2; /* Runtime only */ + struct Object *f_source; /* force source object */ + + float pdef_cfrict; /* Friction of cloth collisions. */ + float pad; } PartDeflect; typedef struct EffectorWeights { - struct Group *group; /* only use effectors from this group of objects */ + struct Collection *group; /* only use effectors from this group of objects */ float weight[14]; /* effector type specific weights */ float global_gravity; @@ -212,58 +222,14 @@ typedef struct SBVertex { float vec[4]; } SBVertex; -typedef struct BulletSoftBody { - int flag; /* various boolean options */ - float linStiff; /* linear stiffness 0..1 */ - float angStiff; /* angular stiffness 0..1 */ - float volume; /* volume preservation 0..1 */ - - int viterations; /* Velocities solver iterations */ - int piterations; /* Positions solver iterations */ - int diterations; /* Drift solver iterations */ - int citerations; /* Cluster solver iterations */ - - float kSRHR_CL; /* Soft vs rigid hardness [0,1] (cluster only) */ - float kSKHR_CL; /* Soft vs kinetic hardness [0,1] (cluster only) */ - float kSSHR_CL; /* Soft vs soft hardness [0,1] (cluster only) */ - float kSR_SPLT_CL; /* Soft vs rigid impulse split [0,1] (cluster only) */ - - float kSK_SPLT_CL; /* Soft vs rigid impulse split [0,1] (cluster only) */ - float kSS_SPLT_CL; /* Soft vs rigid impulse split [0,1] (cluster only) */ - float kVCF; /* Velocities correction factor (Baumgarte) */ - float kDP; /* Damping coefficient [0,1] */ - - float kDG; /* Drag coefficient [0,+inf] */ - float kLF; /* Lift coefficient [0,+inf] */ - float kPR; /* Pressure coefficient [-inf,+inf] */ - float kVC; /* Volume conversation coefficient [0,+inf] */ - - float kDF; /* Dynamic friction coefficient [0,1] */ - float kMT; /* Pose matching coefficient [0,1] */ - float kCHR; /* Rigid contacts hardness [0,1] */ - float kKHR; /* Kinetic contacts hardness [0,1] */ - - float kSHR; /* Soft contacts hardness [0,1] */ - float kAHR; /* Anchors hardness [0,1] */ - int collisionflags; /* Vertex/Face or Signed Distance Field(SDF) or Clusters, Soft versus Soft or Rigid */ - int numclusteriterations; /* number of iterations to refine collision clusters*/ - float welding; /* welding limit to remove duplicate/nearby vertices, 0.0..0.01 */ - float margin; /* margin specific to softbody */ -} BulletSoftBody; - -/* BulletSoftBody.flag */ -#define OB_BSB_SHAPE_MATCHING 2 -// #define OB_BSB_UNUSED 4 -#define OB_BSB_BENDING_CONSTRAINTS 8 -#define OB_BSB_AERO_VPOINT 16 /* aero model, Vertex normals are oriented toward velocity*/ -// #define OB_BSB_AERO_VTWOSIDE 32 /* aero model, Vertex normals are flipped to match velocity */ - -/* BulletSoftBody.collisionflags */ -#define OB_BSB_COL_SDF_RS 2 /* SDF based rigid vs soft */ -#define OB_BSB_COL_CL_RS 4 /* Cluster based rigid vs soft */ -#define OB_BSB_COL_CL_SS 8 /* Cluster based soft vs soft */ -#define OB_BSB_COL_VF_SS 16 /* Vertex/Face based soft vs soft */ - +/* Container for data that is shared among CoW copies. + * + * This is placed in a separate struct so that values can be changed + * without having to update all CoW copies. */ +typedef struct SoftBody_Shared { + struct PointCache *pointcache; + struct ListBase ptcaches; +} SoftBody_Shared; typedef struct SoftBody { /* dynamic data */ @@ -336,10 +302,11 @@ typedef struct SoftBody { float shearstiff; float inpush; - struct PointCache *pointcache; - struct ListBase ptcaches; + struct SoftBody_Shared *shared; + struct PointCache *pointcache DNA_DEPRECATED; /* Moved to SoftBody_Shared */ + struct ListBase ptcaches DNA_DEPRECATED; /* Moved to SoftBody_Shared */ - struct Group *collision_group; + struct Collection *collision_group; struct EffectorWeights *effector_weights; /* reverse esimated obmatrix .. no need to store in blend file .. how ever who cares */ @@ -372,7 +339,9 @@ typedef struct SoftBody { #define PFIELD_DO_ROTATION (1 << 15) #define PFIELD_GUIDE_PATH_WEIGHT (1 << 16) /* apply curve weights */ #define PFIELD_SMOKE_DENSITY (1 << 17) /* multiply smoke force by density */ -#define PFIELD_GRAVITATION (1 << 18) /* used for (simple) force */ +#define PFIELD_GRAVITATION (1 << 18) /* used for (simple) force */ +#define PFIELD_CLOTH_USE_CULLING (1<< 19) /* Enable cloth collision side detection based on normal. */ +#define PFIELD_CLOTH_USE_NORMAL (1 << 20) /* Replace collision direction with collider normal. */ /* pd->falloff */ #define PFIELD_FALL_SPHERE 0 @@ -384,6 +353,7 @@ typedef struct SoftBody { #define PFIELD_SHAPE_PLANE 1 #define PFIELD_SHAPE_SURFACE 2 #define PFIELD_SHAPE_POINTS 3 +#define PFIELD_SHAPE_LINE 4 /* pd->tex_mode */ #define PFIELD_TEX_RGB 0 |