Revision: 14579
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14579
Author: genscher
Date: 2008-04-28 00:04:47 +0200 (Mon, 28 Apr 2008)
Log Message:
-----------
Bugfix: 32bit cloth files were loaded bad in 64bit blenders and the way
arround. The e.g. GUI-only variable 'mass' was reseted to 0. Problem: makesdna
doesn't cry out on compile - I wonder why this differences could happen.
Solution: Rearange cloth DNA, resort things, clear up and bug was gone - weird.
Problem left: Every file having cloth enabled before this revision is
incompatible with this version. If anyone know a better solution, please go
ahead
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_cloth.h
trunk/blender/source/blender/makesdna/DNA_cloth_types.h
Modified: trunk/blender/source/blender/blenkernel/BKE_cloth.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_cloth.h 2008-04-27 21:44:28 UTC
(rev 14578)
+++ trunk/blender/source/blender/blenkernel/BKE_cloth.h 2008-04-27 22:04:47 UTC
(rev 14579)
@@ -50,7 +50,7 @@
#include "BKE_collision.h"
struct Object;
-struct Cloth;
+
struct MFace;
struct DerivedMesh;
struct ClothModifierData;
@@ -83,6 +83,33 @@
#define CLOTH_VERT_FLAG_PINNED_EM 3
/**
+* This structure describes a cloth object against which the
+* simulation can run.
+*
+* The m and n members of this structure represent the assumed
+* rectangular ordered grid for which the original paper is written.
+* At some point they need to disappear and we need to determine out
+* own connectivity of the mesh based on the actual edges in the mesh.
+*
+**/
+typedef struct Cloth
+{
+ struct ClothVertex *verts; /* The vertices that
represent this cloth. */
+ struct LinkNode *springs; /* The springs
connecting the mesh. */
+ unsigned int numverts; /* The number of verts
== m * n. */
+ unsigned int numsprings; /* The count of
springs. */
+ unsigned int numfaces;
+ unsigned char old_solver_type; /* unused, only 1
solver here */
+ unsigned char pad2;
+ short pad3;
+ struct BVH *tree; /* collision tree for
this cloth object */
+ struct MFace *mfaces;
+ struct Implicit_Data *implicit; /* our implicit solver
connects to this pointer */
+ struct Implicit_Data *implicitEM; /* our implicit solver
connects to this pointer */
+ struct EdgeHash *edgehash; /* used for
selfcollisions */
+} Cloth;
+
+/**
* The definition of a cloth vertex.
*/
typedef struct ClothVertex
Modified: trunk/blender/source/blender/makesdna/DNA_cloth_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_cloth_types.h 2008-04-27
21:44:28 UTC (rev 14578)
+++ trunk/blender/source/blender/makesdna/DNA_cloth_types.h 2008-04-27
22:04:47 UTC (rev 14579)
@@ -43,80 +43,53 @@
typedef struct ClothSimSettings
{
- short vgroup_mass; /* optional vertexgroup name for assigning
weight.*/
- short vgroup_struct; /* vertex group for scaling structural
stiffness */
+ struct LinkNode *cache; /* UNUSED atm */
float mingoal; /* see SB */
- int preroll; /* How many frames of simulation to do before
we start. */
float Cdis; /* Mechanical damping of springs.
*/
float Cvi; /* Viscous/fluid damping.
*/
- int stepsPerFrame; /* Number of time steps per frame.
*/
float gravity [3]; /* Gravity/external force vector.
*/
- float ufluid [3]; /* Velocity vector of the fluid.
*/
float dt; /* This is the duration of our time step,
computed. */
float mass; /* The mass of the entire cloth.
*/
float structural; /* Structural spring stiffness.
*/
float shear; /* Shear spring stiffness.
*/
float bending; /* Flexion spring stiffness.
*/
- float padf;
- int flags; /* flags, see CSIMSETT_FLAGS enum
above. */
- short solver_type; /* which solver should be used? txold
*/
- short vgroup_bend; /* vertex group for scaling bending stiffness */
+ float max_bend; /* max bending scaling value, min is "bending"
*/
+ float max_struct; /* max structural scaling value, min is
"structural" */
+ float max_shear; /* max shear scaling value, UNUSED */
+ float avg_spring_len; /* used for normalized springs */
+ float timescale; /* parameter how fast cloth runs */
float maxgoal; /* see SB */
float eff_force_scale;/* Scaling of effector forces (see
softbody_calc_forces).*/
float eff_wind_scale; /* Scaling of effector wind (see
softbody_calc_forces). */
float sim_time_old;
- struct LinkNode *cache; /* UNUSED atm */
float defgoal;
- int goalfrict;
float goalspring;
+ float goalfrict;
+ int stepsPerFrame; /* Number of time steps per frame.
*/
+ int flags; /* flags, see CSIMSETT_FLAGS enum above.
*/
+ int preroll; /* How many frames of simulation to do before
we start. */
int maxspringlen; /* in percent!; if tearing enabled, a spring
will get cut */
- float max_bend; /* max bending scaling value, min is "bending"
*/
- float max_struct; /* max structural scaling value, min is
"structural" */
- float max_shear; /* max shear scaling value, UNUSED */
- float avg_spring_len; /* used for normalized springs */
+ short solver_type; /* which solver should be used? txold
*/
+ short vgroup_bend; /* vertex group for scaling bending stiffness */
+ short vgroup_mass; /* optional vertexgroup name for assigning
weight.*/
+ short vgroup_struct; /* vertex group for scaling structural
stiffness */
short presets; /* used for presets on GUI */
short pad;
- float timescale; /* parameter how fast cloth runs */
+ int pad2;
} ClothSimSettings;
typedef struct ClothCollSettings
{
+ struct LinkNode *collision_list; /* e.g. pointer to temp memory for
collisions */
float epsilon; /* min distance for collisions.
*/
float self_friction; /* Fiction/damping with self contact.
*/
float friction; /* Friction/damping applied on contact
with other object.*/
+ float selfepsilon; /* for selfcollision */
+ int flags; /* collision flags defined in
BKE_cloth.h */
short self_loop_count; /* How many iterations for the
selfcollision loop */
short loop_count; /* How many iterations for the
collision loop. */
- struct LinkNode *collision_list; /* e.g. pointer to temp memory for
collisions */
- int flags; /* collision flags defined in
BKE_cloth.h */
- float selfepsilon; /* for selfcollision */
} ClothCollSettings;
-/**
-* This structure describes a cloth object against which the
-* simulation can run.
-*
-* The m and n members of this structure represent the assumed
-* rectangular ordered grid for which the original paper is written.
-* At some point they need to disappear and we need to determine out
-* own connectivity of the mesh based on the actual edges in the mesh.
-*
-**/
-typedef struct Cloth
-{
- struct ClothVertex *verts; /* The vertices that
represent this cloth. */
- struct LinkNode *springs; /* The springs
connecting the mesh. */
- unsigned int numverts; /* The number of verts
== m * n. */
- unsigned int numsprings; /* The count of
springs. */
- unsigned int numfaces;
- unsigned char old_solver_type; /* unused, only 1
solver here */
- unsigned char pad2;
- short pad3;
- struct BVH *tree; /* collision tree for
this cloth object */
- struct MFace *mfaces;
- struct Implicit_Data *implicit; /* our implicit solver
connects to this pointer */
- struct Implicit_Data *implicitEM; /* our implicit solver
connects to this pointer */
- struct EdgeHash *edgehash; /* used for
selfcollisions */
-} Cloth;
#endif
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs