Normand Briere
2019-10-01 e8908d5b90d44e43b9da885bc0202fb665a912d0
com/bulletphysics/dynamics/RigidBody.java
....@@ -214,11 +214,55 @@
214214 }
215215 }
216216
217
+ static Vector3f g = new Vector3f();
218
+ static Vector3f w = new Vector3f();
219
+
220
+ static public Vector3f wind = new Vector3f();
221
+ static public Vector3f pos = new Vector3f();
222
+
223
+ static public Vector3f min = new Vector3f();
224
+ static public Vector3f max = new Vector3f();
225
+
226
+ static public boolean justclicked;
227
+
217228 public void applyGravity() {
218229 if (isStaticOrKinematicObject())
219230 return;
220231
221
- applyCentralForce(gravity);
232
+ g.y = gravity.y;
233
+ applyCentralForce(g);
234
+
235
+ if (pos.x == 0 && pos.y == 0 && pos.z == 0)
236
+ return;
237
+
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
+
254
+ float dot = pos.x * wind.x + pos.y * wind.y + pos.z * wind.z;
255
+
256
+ dot = 100;
257
+
258
+ w.x = wind.x * gravity.z * dot;
259
+ w.y = wind.y * gravity.z * dot;
260
+ w.z = wind.z * gravity.z * dot;
261
+
262
+ System.out.print("min = " + min);
263
+ System.out.println("; max = " + max);
264
+
265
+ applyCentralForce(w);
222266 }
223267
224268 public void setGravity(Vector3f acceleration) {