Panda3D
Loading...
Searching...
No Matches
bulletSoftBodyConfig.cxx
Go to the documentation of this file.
1/**
2 * PANDA 3D SOFTWARE
3 * Copyright (c) Carnegie Mellon University. All rights reserved.
4 *
5 * All use of this software is subject to the terms of the revised BSD
6 * license. You should have received a copy of this license along
7 * with this source code in a file named "LICENSE."
8 *
9 * @file bulletSoftBodyConfig.cxx
10 * @author enn0x
11 * @date 2010-04-12
12 */
13
15
16#include "bulletWorld.h"
17
18#include "lightMutexHolder.h"
19
20/**
21 *
22 */
23BulletSoftBodyConfig::
24BulletSoftBodyConfig(btSoftBody::Config &cfg) : _cfg(cfg) {
25
26}
27
28/**
29 *
30 */
31void BulletSoftBodyConfig::
32clear_all_collision_flags() {
33 LightMutexHolder holder(BulletWorld::get_global_lock());
34
35 _cfg.collisions = 0;
36}
37
38/**
39 *
40 */
41void BulletSoftBodyConfig::
42set_collision_flag(CollisionFlag flag, bool value) {
43 LightMutexHolder holder(BulletWorld::get_global_lock());
44
45 if (value == true) {
46 _cfg.collisions |= flag;
47 }
48 else {
49 _cfg.collisions &= ~(flag);
50 }
51}
52
53/**
54 *
55 */
56bool BulletSoftBodyConfig::
57get_collision_flag(CollisionFlag flag) const {
58 LightMutexHolder holder(BulletWorld::get_global_lock());
59
60 return (_cfg.collisions & flag) ? true : false;
61}
62
63/**
64 *
65 */
66void BulletSoftBodyConfig::
67set_aero_model(AeroModel value) {
68 LightMutexHolder holder(BulletWorld::get_global_lock());
69
70 _cfg.aeromodel = (btSoftBody::eAeroModel::_)value;
71}
72
73/**
74 *
75 */
76BulletSoftBodyConfig::AeroModel BulletSoftBodyConfig::
77get_aero_model() const {
78 LightMutexHolder holder(BulletWorld::get_global_lock());
79
80 return (AeroModel)_cfg.aeromodel;
81}
82
83/**
84 * Getter for property kVCF.
85 */
86PN_stdfloat BulletSoftBodyConfig::
88 LightMutexHolder holder(BulletWorld::get_global_lock());
89
90 return (PN_stdfloat)_cfg.kVCF;
91}
92
93/**
94 * Setter for property kVCF.
95 */
97set_velocities_correction_factor(PN_stdfloat value) {
98 LightMutexHolder holder(BulletWorld::get_global_lock());
99
100 _cfg.kVCF = (btScalar)value;
101}
102
103/**
104 * Getter for property kDP.
105 */
106PN_stdfloat BulletSoftBodyConfig::
108 LightMutexHolder holder(BulletWorld::get_global_lock());
109
110 return (PN_stdfloat)_cfg.kDP;
111}
112
113/**
114 * Setter for property kDP.
115 */
117set_damping_coefficient(PN_stdfloat value) {
118 LightMutexHolder holder(BulletWorld::get_global_lock());
119
120 _cfg.kDP = (btScalar)value;
121}
122
123/**
124 * Getter for property kDG.
125 */
126PN_stdfloat BulletSoftBodyConfig::
127get_drag_coefficient() const {
128 LightMutexHolder holder(BulletWorld::get_global_lock());
129
130 return (PN_stdfloat)_cfg.kDG;
131}
132
133/**
134 * Setter for property kDG.
135 */
137set_drag_coefficient(PN_stdfloat value) {
138 LightMutexHolder holder(BulletWorld::get_global_lock());
139
140 _cfg.kDG = (btScalar)value;
141}
142
143/**
144 * Getter for property kLF.
145 */
146PN_stdfloat BulletSoftBodyConfig::
147get_lift_coefficient() const {
148 LightMutexHolder holder(BulletWorld::get_global_lock());
149
150 return (PN_stdfloat)_cfg.kLF;
151}
152
153/**
154 * Setter for property kLF.
155 */
157set_lift_coefficient(PN_stdfloat value) {
158 LightMutexHolder holder(BulletWorld::get_global_lock());
159
160 _cfg.kLF = (btScalar)value;
161}
162
163/**
164 * Getter for property kPR.
165 */
166PN_stdfloat BulletSoftBodyConfig::
168 LightMutexHolder holder(BulletWorld::get_global_lock());
169
170 return (PN_stdfloat)_cfg.kPR;
171}
172
173/**
174 * Setter for property kPR.
175 */
177set_pressure_coefficient(PN_stdfloat value) {
178 LightMutexHolder holder(BulletWorld::get_global_lock());
179
180 _cfg.kPR = (btScalar)value;
181}
182
183/**
184 * Getter for property kVC.
185 */
186PN_stdfloat BulletSoftBodyConfig::
188 LightMutexHolder holder(BulletWorld::get_global_lock());
189
190 return (PN_stdfloat)_cfg.kVC;
191}
192
193/**
194 * Setter for property kVC.
195 */
197set_volume_conservation_coefficient(PN_stdfloat value) {
198 LightMutexHolder holder(BulletWorld::get_global_lock());
199
200 _cfg.kVC = (btScalar)value;
201}
202
203/**
204 * Getter for property kDF.
205 */
206PN_stdfloat BulletSoftBodyConfig::
208 LightMutexHolder holder(BulletWorld::get_global_lock());
209
210 return (PN_stdfloat)_cfg.kDF;
211}
212
213/**
214 * Setter for property kDF.
215 */
217set_dynamic_friction_coefficient(PN_stdfloat value) {
218 LightMutexHolder holder(BulletWorld::get_global_lock());
219
220 _cfg.kDF = (btScalar)value;
221}
222
223/**
224 * Getter for property kMT.
225 */
226PN_stdfloat BulletSoftBodyConfig::
228 LightMutexHolder holder(BulletWorld::get_global_lock());
229
230 return (PN_stdfloat)_cfg.kMT;
231}
232
233/**
234 * Setter for property kMT.
235 */
237set_pose_matching_coefficient(PN_stdfloat value) {
238 LightMutexHolder holder(BulletWorld::get_global_lock());
239
240 _cfg.kMT = (btScalar)value;
241}
242
243/**
244 * Getter for property kCHR.
245 */
246PN_stdfloat BulletSoftBodyConfig::
248 LightMutexHolder holder(BulletWorld::get_global_lock());
249
250 return (PN_stdfloat)_cfg.kCHR;
251}
252
253/**
254 * Setter for property kCHR.
255 */
257set_rigid_contacts_hardness(PN_stdfloat value) {
258 LightMutexHolder holder(BulletWorld::get_global_lock());
259
260 _cfg.kCHR = (btScalar)value;
261}
262
263/**
264 * Getter for property kKHR.
265 */
266PN_stdfloat BulletSoftBodyConfig::
268 LightMutexHolder holder(BulletWorld::get_global_lock());
269
270 return (PN_stdfloat)_cfg.kKHR;
271}
272
273/**
274 * Setter for property kKHR.
275 */
277set_kinetic_contacts_hardness(PN_stdfloat value) {
278 LightMutexHolder holder(BulletWorld::get_global_lock());
279
280 _cfg.kKHR = (btScalar)value;
281}
282
283/**
284 * Getter for property kSHR.
285 */
286PN_stdfloat BulletSoftBodyConfig::
288 LightMutexHolder holder(BulletWorld::get_global_lock());
289
290 return (PN_stdfloat)_cfg.kSHR;
291}
292
293/**
294 * Setter for property kSHR.
295 */
297set_soft_contacts_hardness(PN_stdfloat value) {
298 LightMutexHolder holder(BulletWorld::get_global_lock());
299
300 _cfg.kSHR = (btScalar)value;
301}
302
303/**
304 * Getter for property kAHR.
305 */
306PN_stdfloat BulletSoftBodyConfig::
307get_anchors_hardness() const {
308 LightMutexHolder holder(BulletWorld::get_global_lock());
309
310 return (PN_stdfloat)_cfg.kAHR;
311}
312
313/**
314 * Setter for property kAHR.
315 */
317set_anchors_hardness(PN_stdfloat value) {
318 LightMutexHolder holder(BulletWorld::get_global_lock());
319
320 _cfg.kAHR = (btScalar)value;
321}
322
323/**
324 * Getter for property kSRHR_CL.
325 */
326PN_stdfloat BulletSoftBodyConfig::
328 LightMutexHolder holder(BulletWorld::get_global_lock());
329
330 return (PN_stdfloat)_cfg.kSRHR_CL;
331}
332
333/**
334 * Setter for property kSRHR_CL.
335 */
337set_soft_vs_rigid_hardness(PN_stdfloat value) {
338 LightMutexHolder holder(BulletWorld::get_global_lock());
339
340 _cfg.kSRHR_CL = (btScalar)value;
341}
342
343/**
344 * Getter for property kSKHR_CL.
345 */
346PN_stdfloat BulletSoftBodyConfig::
348 LightMutexHolder holder(BulletWorld::get_global_lock());
349
350 return (PN_stdfloat)_cfg.kSKHR_CL;
351}
352
353/**
354 * Setter for property kSKHR_CL.
355 */
357set_soft_vs_kinetic_hardness(PN_stdfloat value) {
358 LightMutexHolder holder(BulletWorld::get_global_lock());
359
360 _cfg.kSKHR_CL = (btScalar)value;
361}
362
363/**
364 * Getter for property kSSHR_CL.
365 */
366PN_stdfloat BulletSoftBodyConfig::
368 LightMutexHolder holder(BulletWorld::get_global_lock());
369
370 return (PN_stdfloat)_cfg.kSSHR_CL;
371}
372
373/**
374 * Setter for property kSSHR_CL.
375 */
377set_soft_vs_soft_hardness(PN_stdfloat value) {
378 LightMutexHolder holder(BulletWorld::get_global_lock());
379
380 _cfg.kSSHR_CL = (btScalar)value;
381}
382
383/**
384 * Getter for property kSR_SPLT_CL.
385 */
386PN_stdfloat BulletSoftBodyConfig::
388 LightMutexHolder holder(BulletWorld::get_global_lock());
389
390 return (PN_stdfloat)_cfg.kSR_SPLT_CL;
391}
392
393/**
394 * Setter for property kSR_SPLT_CL.
395 */
397set_soft_vs_rigid_impulse_split(PN_stdfloat value) {
398 LightMutexHolder holder(BulletWorld::get_global_lock());
399
400 _cfg.kSR_SPLT_CL = (btScalar)value;
401}
402
403/**
404 * Getter for property kSK_SPLT_CL.
405 */
406PN_stdfloat BulletSoftBodyConfig::
408 LightMutexHolder holder(BulletWorld::get_global_lock());
409
410 return (PN_stdfloat)_cfg.kSK_SPLT_CL;
411}
412
413/**
414 * Setter for property kSK_SPLT_CL.
415 */
417set_soft_vs_kinetic_impulse_split(PN_stdfloat value) {
418 LightMutexHolder holder(BulletWorld::get_global_lock());
419
420 _cfg.kSK_SPLT_CL = (btScalar)value;
421}
422
423/**
424 * Getter for property kSS_SPLT_CL.
425 */
426PN_stdfloat BulletSoftBodyConfig::
428 LightMutexHolder holder(BulletWorld::get_global_lock());
429
430 return (PN_stdfloat)_cfg.kSS_SPLT_CL;
431}
432
433/**
434 * Setter for property kSS_SPLT_CL.
435 */
437set_soft_vs_soft_impulse_split(PN_stdfloat value) {
438 LightMutexHolder holder(BulletWorld::get_global_lock());
439
440 _cfg.kSS_SPLT_CL = (btScalar)value;
441}
442
443/**
444 * Getter for property maxvolume.
445 */
446PN_stdfloat BulletSoftBodyConfig::
447get_maxvolume() const {
448 LightMutexHolder holder(BulletWorld::get_global_lock());
449
450 return (PN_stdfloat)_cfg.maxvolume;
451}
452
453/**
454 * Setter for property maxvolume.
455 */
457set_maxvolume(PN_stdfloat value) {
458 LightMutexHolder holder(BulletWorld::get_global_lock());
459
460 _cfg.maxvolume = (btScalar)value;
461}
462
463/**
464 * Getter for property timescale.
465 */
466PN_stdfloat BulletSoftBodyConfig::
467get_timescale() const {
468 LightMutexHolder holder(BulletWorld::get_global_lock());
469
470 return (PN_stdfloat)_cfg.timescale;
471}
472
473/**
474 * Setter for property timescale.
475 */
477set_timescale(PN_stdfloat value) {
478 LightMutexHolder holder(BulletWorld::get_global_lock());
479
480 _cfg.timescale = (btScalar)value;
481}
482
483/**
484 * Getter for property piterations.
485 */
488 LightMutexHolder holder(BulletWorld::get_global_lock());
489
490 return _cfg.piterations;
491}
492
493/**
494 * Setter for property piterations.
495 */
498 LightMutexHolder holder(BulletWorld::get_global_lock());
499
500 nassertv(value > 0);
501 _cfg.piterations = value;
502}
503
504/**
505 * Getter for property viterations.
506 */
509 LightMutexHolder holder(BulletWorld::get_global_lock());
510
511 return _cfg.viterations;
512}
513
514/**
515 * Setter for property viterations.
516 */
519 LightMutexHolder holder(BulletWorld::get_global_lock());
520
521 nassertv(value > 0);
522 _cfg.viterations = value;
523}
524
525/**
526 * Getter for property diterations.
527 */
530 LightMutexHolder holder(BulletWorld::get_global_lock());
531
532 return _cfg.diterations;
533}
534
535/**
536 * Setter for property diterations.
537 */
540 LightMutexHolder holder(BulletWorld::get_global_lock());
541
542 nassertv(value > 0);
543 _cfg.diterations = value;
544}
545
546/**
547 * Getter for property citerations.
548 */
551 LightMutexHolder holder(BulletWorld::get_global_lock());
552
553 return _cfg.citerations;
554}
555
556/**
557 * Setter for property citerations.
558 */
561 LightMutexHolder holder(BulletWorld::get_global_lock());
562
563 nassertv(value > 0);
564 _cfg.citerations = value;
565}
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
set_dynamic_friction_coefficient
Setter for property kDF.
get_soft_vs_rigid_impulse_split
Getter for property kSR_SPLT_CL.
set_anchors_hardness
Setter for property kAHR.
get_volume_conservation_coefficient
Getter for property kVC.
get_soft_vs_kinetic_hardness
Getter for property kSKHR_CL.
get_rigid_contacts_hardness
Getter for property kCHR.
set_kinetic_contacts_hardness
Setter for property kKHR.
get_lift_coefficient
Getter for property kLF.
set_maxvolume
Setter for property maxvolume.
set_lift_coefficient
Setter for property kLF.
set_soft_vs_soft_impulse_split
Setter for property kSS_SPLT_CL.
get_drag_coefficient
Getter for property kDG.
set_cluster_solver_iterations
Setter for property citerations.
set_soft_contacts_hardness
Setter for property kSHR.
get_kinetic_contacts_hardness
Getter for property kKHR.
get_cluster_solver_iterations
Getter for property citerations.
set_drift_solver_iterations
Setter for property diterations.
set_soft_vs_kinetic_impulse_split
Setter for property kSK_SPLT_CL.
get_drift_solver_iterations
Getter for property diterations.
get_soft_contacts_hardness
Getter for property kSHR.
get_soft_vs_kinetic_impulse_split
Getter for property kSK_SPLT_CL.
get_anchors_hardness
Getter for property kAHR.
get_soft_vs_soft_hardness
Getter for property kSSHR_CL.
set_timescale
Setter for property timescale.
set_damping_coefficient
Setter for property kDP.
get_positions_solver_iterations
Getter for property piterations.
set_soft_vs_rigid_impulse_split
Setter for property kSR_SPLT_CL.
get_dynamic_friction_coefficient
Getter for property kDF.
set_soft_vs_rigid_hardness
Setter for property kSRHR_CL.
set_drag_coefficient
Setter for property kDG.
get_velocities_correction_factor
Getter for property kVCF.
set_volume_conservation_coefficient
Setter for property kVC.
set_pose_matching_coefficient
Setter for property kMT.
get_soft_vs_soft_impulse_split
Getter for property kSS_SPLT_CL.
set_pressure_coefficient
Setter for property kPR.
set_velocities_correction_factor
Setter for property kVCF.
get_soft_vs_rigid_hardness
Getter for property kSRHR_CL.
set_positions_solver_iterations
Setter for property piterations.
get_timescale
Getter for property timescale.
get_pose_matching_coefficient
Getter for property kMT.
get_pressure_coefficient
Getter for property kPR.
get_maxvolume
Getter for property maxvolume.
get_velocities_solver_iterations
Getter for property viterations.
set_soft_vs_soft_hardness
Setter for property kSSHR_CL.
set_velocities_solver_iterations
Setter for property viterations.
get_damping_coefficient
Getter for property kDP.
set_soft_vs_kinetic_hardness
Setter for property kSKHR_CL.
set_rigid_contacts_hardness
Setter for property kCHR.
Similar to MutexHolder, but for a light mutex.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.