Normand Briere
2019-09-25 51e45bf615e1e2b4aca2edf9f7333b687c7d015e
com/bulletphysics/dynamics/RigidBody.java
....@@ -214,11 +214,52 @@
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 = 10;
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
+ applyCentralForce(w);
222263 }
223264
224265 public void setGravity(Vector3f acceleration) {