Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2008-05-08 00:42:16 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2008-05-08 00:42:16 +0400
commita68c03e409e01285bee622b12313117012e486a8 (patch)
treec7b27a5a2fc80a3e5e71cbacc08cd35be121fb06 /source/blender/makesdna
parent96408da81a8c8cd5cb737ed4236fc1386ce70c6e (diff)
Reason of all this work: Commiting my work-in-progress on reviewed collision system (better + general access to kdop, uses less memory, put it into BLI_* namespace and usage defined like existing BLI_kdtree_*). Deleted old kdop.c
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_modifier_types.h11
-rw-r--r--source/blender/makesdna/DNA_sph_types.h102
2 files changed, 112 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index b7b43817474..b2d6e8e5756 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -35,6 +35,7 @@ typedef enum ModifierType {
eModifierType_Cloth,
eModifierType_Collision,
eModifierType_Bevel,
+ eModifierType_Sph,
NUM_MODIFIER_TYPES
} ModifierType;
@@ -374,6 +375,14 @@ typedef struct ClothModifierData {
struct PointCache *point_cache; /* definition is in DNA_object_force.h */
} ClothModifierData;
+typedef struct SphModifierData {
+ ModifierData modifier;
+
+ struct SPH *sph; /* pointer to cpp sph sim */
+ struct SphSimSettings *sim_parms; /* definition is in DNA_sph_types.h */
+ struct SphCollSettings *coll_parms; /* definition is in DNA_sph_types.h */
+} SphModifierData;
+
typedef struct CollisionModifierData {
ModifierData modifier;
@@ -390,7 +399,7 @@ typedef struct CollisionModifierData {
unsigned int numfaces;
int pad;
float time; /* cfra time of modifier */
- struct BVH *bvh; /* bounding volume hierarchy for this cloth object */
+ struct BVHTree *bvhtree; /* bounding volume hierarchy for this cloth object */
} CollisionModifierData;
typedef enum {
diff --git a/source/blender/makesdna/DNA_sph_types.h b/source/blender/makesdna/DNA_sph_types.h
new file mode 100644
index 00000000000..add3053f612
--- /dev/null
+++ b/source/blender/makesdna/DNA_sph_types.h
@@ -0,0 +1,102 @@
+/**
+ * $Id: DNA_cloth_types.h,v 1.1 2007/08/01 02:28:34 daniel Exp $
+ *
+ * ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License. See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2006 by NaN Holding BV.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Daniel (Genscher)
+ *
+ * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ */
+#ifndef DNA_SPH_TYPES_H
+#define DNA_SPH_TYPES_H
+
+// string scene, constraint, backup: missing
+// string _file;
+// string pov;
+// string rendered;
+typedef struct SphSimSettings
+{
+ int flags; // see pw_extern.h
+ float timestep;
+ float viscosity;
+ float incompressibility; /* how incompressible is the fluid? */
+ float surfacetension;
+ float density;
+ float gravity[3]; /* gravity on the domain */
+ float samplingdistance;
+ float smoothinglength;
+
+ float controlviscosity;
+ int dumpimageevery;
+ int computesurfaceevery;
+ int fastmarchingevery;
+ int dumppovrayevery;
+
+ float totaltime;
+
+ float tangentialfriction; /* constraint tangential friction */
+ float normalfriction; /* constraint normal friction */
+
+ float rotation_angle;
+ float rotation_axis[3];
+ float rotation_center[3];
+ float scenelowerbound[3];
+ float sceneupperbound[3];
+
+ int initiallevel;
+
+ float alpha;
+ float beta;
+ float gamma;
+
+ /* needed for better direct resolution input for constraints, fluids,... */
+ int resolution; /* can also be calculated by (Max-Min) / samplingdistance */
+ int pad;
+ float *verts;
+ float *normals;
+ int *tris;
+ unsigned int numverts;
+ unsigned int numtris;
+ float *co; /* particle positions */
+ float *r; /* particle radius */
+ long numpart;
+ int pad2;
+}
+SphSimSettings;
+
+typedef struct SphCollSettings
+{
+ float epsilon; /* min distance for collisions. */
+ float self_friction; /* Fiction/damping with self contact. */
+ float friction; /* Friction/damping applied on contact with other object.*/
+ 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 */
+}
+SphCollSettings;
+
+#endif // DNA_SPH_TYPES_H