Normand Briere
2019-09-25 51e45bf615e1e2b4aca2edf9f7333b687c7d015e
com/bulletphysics/dynamics/RigidBody.java
....@@ -216,9 +216,15 @@
216216
217217 static Vector3f g = new Vector3f();
218218 static Vector3f w = new Vector3f();
219
+
219220 static public Vector3f wind = new Vector3f();
220221 static public Vector3f pos = new Vector3f();
221222
223
+ static public Vector3f min = new Vector3f();
224
+ static public Vector3f max = new Vector3f();
225
+
226
+ static public boolean justclicked;
227
+
222228 public void applyGravity() {
223229 if (isStaticOrKinematicObject())
224230 return;
....@@ -226,11 +232,25 @@
226232 g.y = gravity.y;
227233 applyCentralForce(g);
228234
229
- wind.set(pos);
230
- wind.x -= worldTransform.origin.x;
231
- wind.y -= worldTransform.origin.y;
232
- wind.z -= worldTransform.origin.z;
235
+ if (pos.x == 0 && pos.y == 0 && pos.z == 0)
236
+ return;
233237
238
+ justclicked = false;
239
+
240
+// wind.set(pos);
241
+// wind.x -= worldTransform.origin.x;
242
+// wind.y -= worldTransform.origin.y;
243
+// wind.z -= worldTransform.origin.z;
244
+
245
+// this.collisionShape.getAabb(worldTransform, min, max);
246
+//
247
+// if (pos.x < min.x || pos.x > max.x)
248
+// return;
249
+// if (pos.y < min.y || pos.y > max.y)
250
+// return;
251
+// if (pos.z < min.z || pos.z > max.z)
252
+// return;
253
+
234254 float dot = pos.x * wind.x + pos.y * wind.y + pos.z * wind.z;
235255
236256 dot = 10;
....@@ -238,6 +258,7 @@
238258 w.x = wind.x * gravity.z * dot;
239259 w.y = wind.y * gravity.z * dot;
240260 w.z = wind.z * gravity.z * dot;
261
+
241262 applyCentralForce(w);
242263 }
243264