1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
|
<html>
<head>
<title>NVIDIA(R) PhysX(R) SDK 3.4 API Reference: PxRigidBody Class Reference</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<LINK HREF="NVIDIA.css" REL="stylesheet" TYPE="text/css">
</head>
<body bgcolor="#FFFFFF">
<div id="header">
<hr class="first">
<img alt="" src="images/PhysXlogo.png" align="middle"> <br>
<center>
<a class="qindex" href="main.html">Main Page</a>
<a class="qindex" href="hierarchy.html">Class Hierarchy</a>
<a class="qindex" href="annotated.html">Compound List</a>
<a class="qindex" href="functions.html">Compound Members</a>
</center>
<hr class="second">
</div>
<!-- Generated by Doxygen 1.5.8 -->
<div class="contents">
<h1>PxRigidBody Class Reference<br>
<small>
[<a class="el" href="group__physics.html">Physics</a>]</small>
</h1><!-- doxytag: class="PxRigidBody" --><!-- doxytag: inherits="PxRigidActor" --><a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a> is a base class shared between dynamic rigid body objects.
<a href="#_details">More...</a>
<p>
<code>#include <<a class="el" href="PxRigidBody_8h-source.html">PxRigidBody.h</a>></code>
<p>
<div class="dynheader">
Inheritance diagram for PxRigidBody:</div>
<div class="dynsection">
<p><center><img src="classPxRigidBody__inherit__graph.png" border="0" usemap="#PxRigidBody__inherit__map" alt="Inheritance graph"></center>
<map name="PxRigidBody__inherit__map">
<area shape="rect" href="classPxArticulationLink.html" title="a component of an articulation that represents a rigid body" alt="PxArticulationLink" coords="7,293,116,315"><area shape="rect" href="classPxRigidDynamic.html" title="PxRigidDynamic represents a dynamic rigid simulation object in the physics SDK." alt="PxRigidDynamic" coords="140,293,244,315"><area shape="rect" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies..." alt="PxRigidActor" coords="85,155,168,176"><area shape="rect" href="classPxActor.html" title="PxActor is the base class for the main simulation objects in the physics SDK." alt="PxActor" coords="100,85,153,107"><area shape="rect" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection." alt="PxBase" coords="99,16,155,37"></map>
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
<div class="dynheader">
Collaboration diagram for PxRigidBody:</div>
<div class="dynsection">
<p><center><img src="classPxRigidBody__coll__graph.png" border="0" usemap="#PxRigidBody__coll__map" alt="Collaboration graph"></center>
<map name="PxRigidBody__coll__map">
<area shape="rect" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies..." alt="PxRigidActor" coords="84,250,167,272"><area shape="rect" href="classPxActor.html" title="PxActor is the base class for the main simulation objects in the physics SDK." alt="PxActor" coords="99,178,152,200"><area shape="rect" href="classPxBase.html" title="Base class for objects that can be members of a PxCollection." alt="PxBase" coords="97,106,153,128"><area shape="rect" href="classPxFlags.html" title="PxFlags\< PxBaseFlag::Enum, PxU16 \>" alt="PxFlags\< PxBaseFlag::Enum, PxU16 \>" coords="7,16,244,37"></map>
<center><font size="2">[<a target="top" href="graph_legend.html">legend</a>]</font></center></div>
<p>
<a href="classPxRigidBody-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Mass Manipulation</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#b152773926fe7b222d61e982c3cb6adf">setCMassLocalPose</a> (const <a class="el" href="classPxTransform.html">PxTransform</a> &pose)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the pose of the center of mass relative to the actor. <a href="#b152773926fe7b222d61e982c3cb6adf"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPxTransform.html">PxTransform</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#afdbdab1865112b15201aeabb23877b4">getCMassLocalPose</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the center of mass pose relative to the actor frame. <a href="#afdbdab1865112b15201aeabb23877b4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35">setMass</a> (PxReal mass)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the mass of a dynamic actor. <a href="#8a697a7a4b9bdd2c83a68e84b9bc3a35"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual PxReal </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#2b1c475ca9cc6aebc168ac58256b7284">getMass</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the mass of the actor. <a href="#2b1c475ca9cc6aebc168ac58256b7284"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual PxReal </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#4c82bd72a216c0460887cf94184560bd">getInvMass</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the inverse mass of the actor. <a href="#4c82bd72a216c0460887cf94184560bd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd">setMassSpaceInertiaTensor</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &m)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the inertia tensor, using a parameter specified in mass space coordinates. <a href="#755d0c8a8d1dd8b29e59d50a6dfda5fd"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPxVec3.html">PxVec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#063cce94190de44d86a15c1b49dd7f71">getMassSpaceInertiaTensor</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the diagonal inertia tensor of the actor relative to the mass coordinate frame. <a href="#063cce94190de44d86a15c1b49dd7f71"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPxVec3.html">PxVec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#63830b4cd24cd6e5e9f5bb2d6a1d3dc3">getMassSpaceInvInertiaTensor</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the diagonal inverse inertia tensor of the actor relative to the mass coordinate frame. <a href="#63830b4cd24cd6e5e9f5bb2d6a1d3dc3"></a><br></td></tr>
<tr><td colspan="2"><div class="groupHeader">Velocity</div></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPxVec3.html">PxVec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#04bab22deecb716e2cdd7a64b5cfaee7">getLinearVelocity</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the linear velocity of an actor. <a href="#04bab22deecb716e2cdd7a64b5cfaee7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#0aed51d5ddcf81b09a104ad7f0f30c05">setLinearVelocity</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &linVel, bool autowake=true)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the linear velocity of the actor. <a href="#0aed51d5ddcf81b09a104ad7f0f30c05"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPxVec3.html">PxVec3</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#f91b92d6fcf47103b148337749aa93e0">getAngularVelocity</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Retrieves the angular velocity of the actor. <a href="#f91b92d6fcf47103b148337749aa93e0"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#d49850630db14af26e019d2550ecfd27">setAngularVelocity</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &angVel, bool autowake=true)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the angular velocity of the actor. <a href="#d49850630db14af26e019d2550ecfd27"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Forces</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#22b0a1ef0b6c5656a6063c5c38f5679c">addForce</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &force, <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=PxForceMode::eFORCE, bool autowake=true)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Applies a force (or impulse) defined in the global coordinate frame to the actor at its center of mass. <a href="#22b0a1ef0b6c5656a6063c5c38f5679c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#cb04ffc816d45afff2d04e93d7446e79">addTorque</a> (const <a class="el" href="classPxVec3.html">PxVec3</a> &torque, <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=PxForceMode::eFORCE, bool autowake=true)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Applies an impulsive torque defined in the global coordinate frame to the actor. <a href="#cb04ffc816d45afff2d04e93d7446e79"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#efe5174aa160a07d488de2a18ba61f94">clearForce</a> (<a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=PxForceMode::eFORCE)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears the accumulated forces (sets the accumulated force back to zero). <a href="#efe5174aa160a07d488de2a18ba61f94"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#e251132385cc0b082b612d709aa4375d">clearTorque</a> (<a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> mode=PxForceMode::eFORCE)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears the impulsive torque defined in the global coordinate frame to the actor. <a href="#e251132385cc0b082b612d709aa4375d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#9b23b890404b1010bf0b67a225bd22e7">setRigidBodyFlag</a> (<a class="el" href="structPxRigidBodyFlag.html#5fd4878ae66a98c030a9d976e8ba8596">PxRigidBodyFlag::Enum</a> flag, bool value)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Raises or clears a particular rigid body flag. <a href="#9b23b890404b1010bf0b67a225bd22e7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#9e6f3afd71605e037a5de47955d941e0">setRigidBodyFlags</a> (<a class="el" href="classPxFlags.html">PxRigidBodyFlags</a> inFlags)=0</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="classPxFlags.html">PxRigidBodyFlags</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#2ef3c66318db72f2dd2c1b0d20513f18">getRigidBodyFlags</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Reads the <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a> flags. <a href="#2ef3c66318db72f2dd2c1b0d20513f18"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#c6f4fe582726801cb09c2381de0c144d">setMinCCDAdvanceCoefficient</a> (PxReal advanceCoefficient)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the CCD minimum advance coefficient. <a href="#c6f4fe582726801cb09c2381de0c144d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual PxReal </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#bae787a717c8468dbf67345dde14ba85">getMinCCDAdvanceCoefficient</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets the CCD minimum advance coefficient. <a href="#bae787a717c8468dbf67345dde14ba85"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#261ce18fdc6cb81c0bfb46590db0867d">setMaxDepenetrationVelocity</a> (PxReal biasClamp)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets the maximum depenetration velocity permitted to be introduced by the solver. This value controls how much velocity the solver can introduce to correct for penetrations in contacts. <a href="#261ce18fdc6cb81c0bfb46590db0867d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual PxReal </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#3304d26a39bbdd99dc0ad51d1d99aec4">getMaxDepenetrationVelocity</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the maximum depenetration velocity the solver is permitted to introduced. This value controls how much velocity the solver can introduce to correct for penetrations in contacts. <a href="#3304d26a39bbdd99dc0ad51d1d99aec4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#1a3bbe100e644995742f80f19ea8f250">setMaxContactImpulse</a> (PxReal maxImpulse)=0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets a limit on the impulse that may be applied at a contact. The maximum impulse at a contact between two dynamic or kinematic bodies will be the minimum of the two limit values. For a collision between a static and a dynamic body, the impulse is limited by the value for the dynamic body. <a href="#1a3bbe100e644995742f80f19ea8f250"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual PxReal </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#2f9e9e7946ab265013229612aad4c3c7">getMaxContactImpulse</a> () const =0</td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the maximum impulse that may be applied at a contact. <a href="#2f9e9e7946ab265013229612aad4c3c7"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">PX_INLINE </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#df18dc769f8d1d3da7760097fa699acb">PxRigidBody</a> (<a class="el" href="group__common.html#gc1fb4b256a5d900d394e89db170a2b79">PxType</a> concreteType, <a class="el" href="classPxFlags.html">PxBaseFlags</a> baseFlags)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">PX_INLINE </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#14d4e7068063768f6029a975ff5d41e4">PxRigidBody</a> (<a class="el" href="classPxFlags.html">PxBaseFlags</a> baseFlags)</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#229ff64730b95c9c36b653ffee707e8a">~PxRigidBody</a> ()</td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classPxRigidBody.html#d2e17e08871d8a2f492aee495550a0a0">isKindOf</a> (const char *name) const </td></tr>
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns whether a given type name matches with the type of this instance. <a href="#d2e17e08871d8a2f492aee495550a0a0"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a> is a base class shared between dynamic rigid body objects.
<p>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidActor.html" title="PxRigidActor represents a base class shared between dynamic and static rigid bodies...">PxRigidActor</a> </dd></dl>
<hr><h2>Constructor & Destructor Documentation</h2>
<a class="anchor" name="df18dc769f8d1d3da7760097fa699acb"></a><!-- doxytag: member="PxRigidBody::PxRigidBody" ref="df18dc769f8d1d3da7760097fa699acb" args="(PxType concreteType, PxBaseFlags baseFlags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PX_INLINE PxRigidBody::PxRigidBody </td>
<td>(</td>
<td class="paramtype"><a class="el" href="group__common.html#gc1fb4b256a5d900d394e89db170a2b79">PxType</a> </td>
<td class="paramname"> <em>concreteType</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classPxFlags.html">PxBaseFlags</a> </td>
<td class="paramname"> <em>baseFlags</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [inline, protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="14d4e7068063768f6029a975ff5d41e4"></a><!-- doxytag: member="PxRigidBody::PxRigidBody" ref="14d4e7068063768f6029a975ff5d41e4" args="(PxBaseFlags baseFlags)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">PX_INLINE PxRigidBody::PxRigidBody </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxFlags.html">PxBaseFlags</a> </td>
<td class="paramname"> <em>baseFlags</em> </td>
<td> ) </td>
<td><code> [inline, protected]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<a class="anchor" name="229ff64730b95c9c36b653ffee707e8a"></a><!-- doxytag: member="PxRigidBody::~PxRigidBody" ref="229ff64730b95c9c36b653ffee707e8a" args="()" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual PxRigidBody::~PxRigidBody </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td><code> [inline, protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr><h2>Member Function Documentation</h2>
<a class="anchor" name="22b0a1ef0b6c5656a6063c5c38f5679c"></a><!-- doxytag: member="PxRigidBody::addForce" ref="22b0a1ef0b6c5656a6063c5c38f5679c" args="(const PxVec3 &force, PxForceMode::Enum mode=PxForceMode::eFORCE, bool autowake=true)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::addForce </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> & </td>
<td class="paramname"> <em>force</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> </td>
<td class="paramname"> <em>mode</em> = <code>PxForceMode::eFORCE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"> <em>autowake</em> = <code>true</code></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Applies a force (or impulse) defined in the global coordinate frame to the actor at its center of mass.
<p>
<b>This will not induce a torque</b>.<p>
<a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> determines if the force is to be conventional or impulsive.<p>
Each actor has an acceleration and a velocity change accumulator which are directly modified using the modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545d8a356d2419566d7325ce7017c923a50" title="parameter has unit of distance/ time^2, i.e. an acceleration. It gets treated just...">PxForceMode::eACCELERATION</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> respectively. The modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5456e707aa50e1612a2603643ee2df85f1a" title="parameter has unit of mass * distance/ time^2, i.e. a force">PxForceMode::eFORCE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> also modify these same accumulators and are just short hand for multiplying the vector parameter by inverse mass and then using <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545d8a356d2419566d7325ce7017c923a50" title="parameter has unit of distance/ time^2, i.e. an acceleration. It gets treated just...">PxForceMode::eACCELERATION</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> respectively.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>It is invalid to use this method if the actor has not been added to a scene already or if <a class="el" href="structPxActorFlag.html#1bc4c717e79cd547bdbe09a179ee9f1d0838a5b8c88cebfa5d53904bb3b97411" title="Disables simulation for the actor.">PxActorFlag::eDISABLE_SIMULATION</a> is set.<p>
The force modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> can not be applied to articulation links.<p>
if this is called on an articulation link, only the link is updated, not the entire articulation.<p>
see <a class="el" href="classPxRigidBodyExt.html#a0684e41c619824229cdedb47e06563a" title="Compute the change to linear and angular velocity that would occur if an impulsive...">PxRigidBodyExt::computeVelocityDeltaFromImpulse</a> for details of how to compute the change in linear velocity that will arise from the application of an impulsive force, where an impulsive force is applied force multiplied by a timestep.</dd></dl>
<b>Sleeping:</b> This call wakes the actor if it is sleeping and the autowake parameter is true (default) or the force is non-zero.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>force</em> </td><td>Force/Impulse to apply defined in the global frame. </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mode</em> </td><td>The mode to use when applying the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a>) </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>autowake</em> </td><td>Specify if the call should wake up the actor if it is currently asleep. If true and the current wake counter value is smaller than <a class="el" href="classPxSceneDesc.html#79e2c9c06f711272a48d7f07451117b7" title="The wake counter reset value.">PxSceneDesc::wakeCounterResetValue</a> it will get increased to the reset value.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> <a class="el" href="classPxRigidBody.html#cb04ffc816d45afff2d04e93d7446e79" title="Applies an impulsive torque defined in the global coordinate frame to the actor.">addTorque</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="cb04ffc816d45afff2d04e93d7446e79"></a><!-- doxytag: member="PxRigidBody::addTorque" ref="cb04ffc816d45afff2d04e93d7446e79" args="(const PxVec3 &torque, PxForceMode::Enum mode=PxForceMode::eFORCE, bool autowake=true)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::addTorque </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> & </td>
<td class="paramname"> <em>torque</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> </td>
<td class="paramname"> <em>mode</em> = <code>PxForceMode::eFORCE</code>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"> <em>autowake</em> = <code>true</code></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Applies an impulsive torque defined in the global coordinate frame to the actor.
<p>
<a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> determines if the torque is to be conventional or impulsive.<p>
Each actor has an angular acceleration and an angular velocity change accumulator which are directly modified using the modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545d8a356d2419566d7325ce7017c923a50" title="parameter has unit of distance/ time^2, i.e. an acceleration. It gets treated just...">PxForceMode::eACCELERATION</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> respectively. The modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5456e707aa50e1612a2603643ee2df85f1a" title="parameter has unit of mass * distance/ time^2, i.e. a force">PxForceMode::eFORCE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> also modify these same accumulators and are just short hand for multiplying the vector parameter by inverse inertia and then using <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545d8a356d2419566d7325ce7017c923a50" title="parameter has unit of distance/ time^2, i.e. an acceleration. It gets treated just...">PxForceMode::eACCELERATION</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> respectively.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>It is invalid to use this method if the actor has not been added to a scene already or if <a class="el" href="structPxActorFlag.html#1bc4c717e79cd547bdbe09a179ee9f1d0838a5b8c88cebfa5d53904bb3b97411" title="Disables simulation for the actor.">PxActorFlag::eDISABLE_SIMULATION</a> is set.<p>
The force modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> can not be applied to articulation links.<p>
if this called on an articulation link, only the link is updated, not the entire articulation.<p>
see <a class="el" href="classPxRigidBodyExt.html#a0684e41c619824229cdedb47e06563a" title="Compute the change to linear and angular velocity that would occur if an impulsive...">PxRigidBodyExt::computeVelocityDeltaFromImpulse</a> for details of how to compute the change in angular velocity that will arise from the application of an impulsive torque, where an impulsive torque is an applied torque multiplied by a timestep.</dd></dl>
<b>Sleeping:</b> This call wakes the actor if it is sleeping and the autowake parameter is true (default) or the torque is non-zero.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>torque</em> </td><td>Torque to apply defined in the global frame. <b>Range:</b> torque vector </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mode</em> </td><td>The mode to use when applying the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a>). </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>autowake</em> </td><td>whether to wake up the object if it is asleep. If true and the current wake counter value is smaller than <a class="el" href="classPxSceneDesc.html#79e2c9c06f711272a48d7f07451117b7" title="The wake counter reset value.">PxSceneDesc::wakeCounterResetValue</a> it will get increased to the reset value.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> <a class="el" href="classPxRigidBody.html#22b0a1ef0b6c5656a6063c5c38f5679c" title="Applies a force (or impulse) defined in the global coordinate frame to the actor...">addForce()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="efe5174aa160a07d488de2a18ba61f94"></a><!-- doxytag: member="PxRigidBody::clearForce" ref="efe5174aa160a07d488de2a18ba61f94" args="(PxForceMode::Enum mode=PxForceMode::eFORCE)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::clearForce </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> </td>
<td class="paramname"> <em>mode</em> = <code>PxForceMode::eFORCE</code> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Clears the accumulated forces (sets the accumulated force back to zero).
<p>
Each actor has an acceleration and a velocity change accumulator which are directly modified using the modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545d8a356d2419566d7325ce7017c923a50" title="parameter has unit of distance/ time^2, i.e. an acceleration. It gets treated just...">PxForceMode::eACCELERATION</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> respectively. The modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5456e707aa50e1612a2603643ee2df85f1a" title="parameter has unit of mass * distance/ time^2, i.e. a force">PxForceMode::eFORCE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> also modify these same accumulators (see <a class="el" href="classPxRigidBody.html#22b0a1ef0b6c5656a6063c5c38f5679c" title="Applies a force (or impulse) defined in the global coordinate frame to the actor...">PxRigidBody::addForce()</a> for details); therefore the effect of calling clearForce(PxForceMode::eFORCE) is equivalent to calling clearForce(PxForceMode::eACCELERATION), and the effect of calling clearForce(PxForceMode::eIMPULSE) is equivalent to calling clearForce(PxForceMode::eVELOCITY_CHANGE).<p>
<a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> determines if the cleared force is to be conventional or impulsive.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>The force modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> can not be applied to articulation links.<p>
It is invalid to use this method if the actor has not been added to a scene already or if <a class="el" href="structPxActorFlag.html#1bc4c717e79cd547bdbe09a179ee9f1d0838a5b8c88cebfa5d53904bb3b97411" title="Disables simulation for the actor.">PxActorFlag::eDISABLE_SIMULATION</a> is set.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mode</em> </td><td>The mode to use when clearing the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a>)</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> <a class="el" href="classPxRigidBody.html#22b0a1ef0b6c5656a6063c5c38f5679c" title="Applies a force (or impulse) defined in the global coordinate frame to the actor...">addForce</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="e251132385cc0b082b612d709aa4375d"></a><!-- doxytag: member="PxRigidBody::clearTorque" ref="e251132385cc0b082b612d709aa4375d" args="(PxForceMode::Enum mode=PxForceMode::eFORCE)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::clearTorque </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545">PxForceMode::Enum</a> </td>
<td class="paramname"> <em>mode</em> = <code>PxForceMode::eFORCE</code> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Clears the impulsive torque defined in the global coordinate frame to the actor.
<p>
<a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> determines if the cleared torque is to be conventional or impulsive.<p>
Each actor has an angular acceleration and a velocity change accumulator which are directly modified using the modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545d8a356d2419566d7325ce7017c923a50" title="parameter has unit of distance/ time^2, i.e. an acceleration. It gets treated just...">PxForceMode::eACCELERATION</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> respectively. The modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5456e707aa50e1612a2603643ee2df85f1a" title="parameter has unit of mass * distance/ time^2, i.e. a force">PxForceMode::eFORCE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> also modify these same accumulators (see <a class="el" href="classPxRigidBody.html#cb04ffc816d45afff2d04e93d7446e79" title="Applies an impulsive torque defined in the global coordinate frame to the actor.">PxRigidBody::addTorque()</a> for details); therefore the effect of calling clearTorque(PxForceMode::eFORCE) is equivalent to calling clearTorque(PxForceMode::eACCELERATION), and the effect of calling clearTorque(PxForceMode::eIMPULSE) is equivalent to calling clearTorque(PxForceMode::eVELOCITY_CHANGE).<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>The force modes <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e545a3699bd1b7ae178eda5b946097de52c4" title="parameter has unit of mass * distance /time">PxForceMode::eIMPULSE</a> and <a class="el" href="structPxForceMode.html#adaaafefe0478d829b816154c676e5459f25946973fec4c78991859e8bf76376" title="parameter has unit of distance / time, i.e. the effect is mass independent: a velocity...">PxForceMode::eVELOCITY_CHANGE</a> can not be applied to articulation links.<p>
It is invalid to use this method if the actor has not been added to a scene already or if <a class="el" href="structPxActorFlag.html#1bc4c717e79cd547bdbe09a179ee9f1d0838a5b8c88cebfa5d53904bb3b97411" title="Disables simulation for the actor.">PxActorFlag::eDISABLE_SIMULATION</a> is set.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mode</em> </td><td>The mode to use when clearing the force/impulse(see <a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a>).</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structPxForceMode.html" title="Parameter to addForce() and addTorque() calls, determines the exact operation that...">PxForceMode</a> <a class="el" href="classPxRigidBody.html#cb04ffc816d45afff2d04e93d7446e79" title="Applies an impulsive torque defined in the global coordinate frame to the actor.">addTorque</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="f91b92d6fcf47103b148337749aa93e0"></a><!-- doxytag: member="PxRigidBody::getAngularVelocity" ref="f91b92d6fcf47103b148337749aa93e0" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBody::getAngularVelocity </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the angular velocity of the actor.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The angular velocity of the actor.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#d49850630db14af26e019d2550ecfd27" title="Sets the angular velocity of the actor.">PxRigidDynamic.setAngularVelocity()</a> <a class="el" href="classPxRigidBody.html#04bab22deecb716e2cdd7a64b5cfaee7" title="Retrieves the linear velocity of an actor.">getLinearVelocity()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="afdbdab1865112b15201aeabb23877b4"></a><!-- doxytag: member="PxRigidBody::getCMassLocalPose" ref="afdbdab1865112b15201aeabb23877b4" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxTransform.html">PxTransform</a> PxRigidBody::getCMassLocalPose </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the center of mass pose relative to the actor frame.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The center of mass pose relative to the actor frame.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#b152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor.">setCMassLocalPose()</a> PxRigidBodyDesc.massLocalPose </dd></dl>
</div>
</div><p>
<a class="anchor" name="4c82bd72a216c0460887cf94184560bd"></a><!-- doxytag: member="PxRigidBody::getInvMass" ref="4c82bd72a216c0460887cf94184560bd" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual PxReal PxRigidBody::getInvMass </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the inverse mass of the actor.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The inverse mass of this actor.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor.">setMass()</a> PxRigidBodyDesc.mass <a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates.">setMassSpaceInertiaTensor()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="04bab22deecb716e2cdd7a64b5cfaee7"></a><!-- doxytag: member="PxRigidBody::getLinearVelocity" ref="04bab22deecb716e2cdd7a64b5cfaee7" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBody::getLinearVelocity </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the linear velocity of an actor.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The linear velocity of the actor.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#0aed51d5ddcf81b09a104ad7f0f30c05" title="Sets the linear velocity of the actor.">PxRigidDynamic.setLinearVelocity()</a> <a class="el" href="classPxRigidBody.html#f91b92d6fcf47103b148337749aa93e0" title="Retrieves the angular velocity of the actor.">getAngularVelocity()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="2b1c475ca9cc6aebc168ac58256b7284"></a><!-- doxytag: member="PxRigidBody::getMass" ref="2b1c475ca9cc6aebc168ac58256b7284" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual PxReal PxRigidBody::getMass </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the mass of the actor.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>A value of 0 is interpreted as infinite mass.</dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The mass of this actor.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor.">setMass()</a> PxRigidBodyDesc.mass <a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates.">setMassSpaceInertiaTensor()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="063cce94190de44d86a15c1b49dd7f71"></a><!-- doxytag: member="PxRigidBody::getMassSpaceInertiaTensor" ref="063cce94190de44d86a15c1b49dd7f71" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBody::getMassSpaceInertiaTensor </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the diagonal inertia tensor of the actor relative to the mass coordinate frame.
<p>
This method retrieves a mass frame inertia vector.<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The mass space inertia tensor of this actor.</dd></dl>
<dl class="note" compact><dt><b>Note:</b></dt><dd>A value of 0 in an element is interpreted as infinite inertia along that axis.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd>PxRigidBodyDesc.massSpaceInertia <a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates.">setMassSpaceInertiaTensor()</a> <a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor.">setMass()</a> <a class="el" href="classPxRigidBody.html#b152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor.">setCMassLocalPose()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="63830b4cd24cd6e5e9f5bb2d6a1d3dc3"></a><!-- doxytag: member="PxRigidBody::getMassSpaceInvInertiaTensor" ref="63830b4cd24cd6e5e9f5bb2d6a1d3dc3" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxVec3.html">PxVec3</a> PxRigidBody::getMassSpaceInvInertiaTensor </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Retrieves the diagonal inverse inertia tensor of the actor relative to the mass coordinate frame.
<p>
This method retrieves a mass frame inverse inertia vector.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>A value of 0 in an element is interpreted as infinite inertia along that axis.</dd></dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The mass space inverse inertia tensor of this actor.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd>PxRigidBodyDesc.massSpaceInertia <a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates.">setMassSpaceInertiaTensor()</a> <a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor.">setMass()</a> <a class="el" href="classPxRigidBody.html#b152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor.">setCMassLocalPose()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="2f9e9e7946ab265013229612aad4c3c7"></a><!-- doxytag: member="PxRigidBody::getMaxContactImpulse" ref="2f9e9e7946ab265013229612aad4c3c7" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual PxReal PxRigidBody::getMaxContactImpulse </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the maximum impulse that may be applied at a contact.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The maximum impulse that may be applied at a contact</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#1a3bbe100e644995742f80f19ea8f250" title="Sets a limit on the impulse that may be applied at a contact. The maximum impulse...">setMaxContactImpulse</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="3304d26a39bbdd99dc0ad51d1d99aec4"></a><!-- doxytag: member="PxRigidBody::getMaxDepenetrationVelocity" ref="3304d26a39bbdd99dc0ad51d1d99aec4" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual PxReal PxRigidBody::getMaxDepenetrationVelocity </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns the maximum depenetration velocity the solver is permitted to introduced. This value controls how much velocity the solver can introduce to correct for penetrations in contacts.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The maximum penetration bias applied by the solver. </dd></dl>
</div>
</div><p>
<a class="anchor" name="bae787a717c8468dbf67345dde14ba85"></a><!-- doxytag: member="PxRigidBody::getMinCCDAdvanceCoefficient" ref="bae787a717c8468dbf67345dde14ba85" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual PxReal PxRigidBody::getMinCCDAdvanceCoefficient </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the CCD minimum advance coefficient.
<p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The value of the CCD min advance coefficient.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#c6f4fe582726801cb09c2381de0c144d" title="Sets the CCD minimum advance coefficient.">setMinCCDAdvanceCoefficient</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="2ef3c66318db72f2dd2c1b0d20513f18"></a><!-- doxytag: member="PxRigidBody::getRigidBodyFlags" ref="2ef3c66318db72f2dd2c1b0d20513f18" args="() const =0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual <a class="el" href="classPxFlags.html">PxRigidBodyFlags</a> PxRigidBody::getRigidBodyFlags </td>
<td>(</td>
<td class="paramname"> </td>
<td> ) </td>
<td> const<code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Reads the <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a> flags.
<p>
See the list of flags <a class="el" href="structPxRigidBodyFlag.html" title="Collection of flags describing the behavior of a rigid body.">PxRigidBodyFlag</a><p>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>The values of the <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a> flags.</dd></dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structPxRigidBodyFlag.html" title="Collection of flags describing the behavior of a rigid body.">PxRigidBodyFlag</a> <a class="el" href="classPxRigidBody.html#9b23b890404b1010bf0b67a225bd22e7" title="Raises or clears a particular rigid body flag.">setRigidBodyFlag()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="d2e17e08871d8a2f492aee495550a0a0"></a><!-- doxytag: member="PxRigidBody::isKindOf" ref="d2e17e08871d8a2f492aee495550a0a0" args="(const char *name) const " -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual bool PxRigidBody::isKindOf </td>
<td>(</td>
<td class="paramtype">const char * </td>
<td class="paramname"> <em>superClass</em> </td>
<td> ) </td>
<td> const<code> [inline, protected, virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Returns whether a given type name matches with the type of this instance.
<p>
<p>Reimplemented from <a class="el" href="classPxRigidActor.html#e644382039f621f73ca7db7aa9d2e0cf">PxRigidActor</a>.</p>
<p>Reimplemented in <a class="el" href="classPxArticulationLink.html#45d7a988876af31572acca1376401c18">PxArticulationLink</a>, and <a class="el" href="classPxRigidDynamic.html#0ed60c0a05771d8679069a46b778f8f8">PxRigidDynamic</a>.</p>
<p>References <a class="el" href="PxRigidActor_8h-source.html#l00295">PxRigidActor::isKindOf()</a>.</p>
<p>Referenced by <a class="el" href="PxRigidDynamic_8h-source.html#l00461">PxRigidDynamic::isKindOf()</a>, and <a class="el" href="PxArticulationLink_8h-source.html#l00113">PxArticulationLink::isKindOf()</a>.</p>
</div>
</div><p>
<a class="anchor" name="d49850630db14af26e019d2550ecfd27"></a><!-- doxytag: member="PxRigidBody::setAngularVelocity" ref="d49850630db14af26e019d2550ecfd27" args="(const PxVec3 &angVel, bool autowake=true)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setAngularVelocity </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> & </td>
<td class="paramname"> <em>angVel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"> <em>autowake</em> = <code>true</code></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the angular velocity of the actor.
<p>
Note that if you continuously set the angular velocity of an actor yourself, forces such as friction will not be able to rotate the actor, because forces directly influence only the velocity/momentum.<p>
<b>Default:</b> (0.0, 0.0, 0.0)<p>
<b>Sleeping:</b> This call wakes the actor if it is sleeping, the autowake parameter is true (default) or the new velocity is non-zero<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>It is invalid to use this method if <a class="el" href="structPxActorFlag.html#1bc4c717e79cd547bdbe09a179ee9f1d0838a5b8c88cebfa5d53904bb3b97411" title="Disables simulation for the actor.">PxActorFlag::eDISABLE_SIMULATION</a> is set.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>angVel</em> </td><td>New angular velocity of actor. <b>Range:</b> angular velocity vector </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>autowake</em> </td><td>Whether to wake the object up if it is asleep and the velocity is non-zero. If true and the current wake counter value is smaller than <a class="el" href="classPxSceneDesc.html#79e2c9c06f711272a48d7f07451117b7" title="The wake counter reset value.">PxSceneDesc::wakeCounterResetValue</a> it will get increased to the reset value.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#f91b92d6fcf47103b148337749aa93e0" title="Retrieves the angular velocity of the actor.">getAngularVelocity()</a> <a class="el" href="classPxRigidBody.html#0aed51d5ddcf81b09a104ad7f0f30c05" title="Sets the linear velocity of the actor.">setLinearVelocity()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="b152773926fe7b222d61e982c3cb6adf"></a><!-- doxytag: member="PxRigidBody::setCMassLocalPose" ref="b152773926fe7b222d61e982c3cb6adf" args="(const PxTransform &pose)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setCMassLocalPose </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxTransform.html">PxTransform</a> & </td>
<td class="paramname"> <em>pose</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the pose of the center of mass relative to the actor.
<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>Changing this transform will not move the actor in the world!<p>
Setting an unrealistic center of mass which is a long way from the body can make it difficult for the SDK to solve constraints. Perhaps leading to instability and jittering bodies.</dd></dl>
<b>Default:</b> the identity transform<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>pose</em> </td><td>Mass frame offset transform relative to the actor frame. <b>Range:</b> rigid body transform.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#afdbdab1865112b15201aeabb23877b4" title="Retrieves the center of mass pose relative to the actor frame.">getCMassLocalPose()</a> PxRigidBodyDesc.massLocalPose </dd></dl>
</div>
</div><p>
<a class="anchor" name="0aed51d5ddcf81b09a104ad7f0f30c05"></a><!-- doxytag: member="PxRigidBody::setLinearVelocity" ref="0aed51d5ddcf81b09a104ad7f0f30c05" args="(const PxVec3 &linVel, bool autowake=true)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setLinearVelocity </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> & </td>
<td class="paramname"> <em>linVel</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"> <em>autowake</em> = <code>true</code></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the linear velocity of the actor.
<p>
Note that if you continuously set the velocity of an actor yourself, forces such as gravity or friction will not be able to manifest themselves, because forces directly influence only the velocity/momentum of an actor.<p>
<b>Default:</b> (0.0, 0.0, 0.0)<p>
<b>Sleeping:</b> This call wakes the actor if it is sleeping, the autowake parameter is true (default) or the new velocity is non-zero<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>It is invalid to use this method if <a class="el" href="structPxActorFlag.html#1bc4c717e79cd547bdbe09a179ee9f1d0838a5b8c88cebfa5d53904bb3b97411" title="Disables simulation for the actor.">PxActorFlag::eDISABLE_SIMULATION</a> is set.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>linVel</em> </td><td>New linear velocity of actor. <b>Range:</b> velocity vector </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>autowake</em> </td><td>Whether to wake the object up if it is asleep and the velocity is non-zero. If true and the current wake counter value is smaller than <a class="el" href="classPxSceneDesc.html#79e2c9c06f711272a48d7f07451117b7" title="The wake counter reset value.">PxSceneDesc::wakeCounterResetValue</a> it will get increased to the reset value.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#04bab22deecb716e2cdd7a64b5cfaee7" title="Retrieves the linear velocity of an actor.">getLinearVelocity()</a> <a class="el" href="classPxRigidBody.html#d49850630db14af26e019d2550ecfd27" title="Sets the angular velocity of the actor.">setAngularVelocity()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="8a697a7a4b9bdd2c83a68e84b9bc3a35"></a><!-- doxytag: member="PxRigidBody::setMass" ref="8a697a7a4b9bdd2c83a68e84b9bc3a35" args="(PxReal mass)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setMass </td>
<td>(</td>
<td class="paramtype">PxReal </td>
<td class="paramname"> <em>mass</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the mass of a dynamic actor.
<p>
The mass must be non-negative.<p>
<a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor.">setMass()</a> does not update the inertial properties of the body, to change the inertia tensor use <a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates.">setMassSpaceInertiaTensor()</a> or the PhysX extensions method <a class="el" href="classPxRigidBodyExt.html#769be90cdb138897ce426aa04ac0a1e7" title="Computation of mass properties for a rigid body actor.">PxRigidBodyExt::updateMassAndInertia()</a>.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>A value of 0 is interpreted as infinite mass. <p>
Values of 0 are not permitted for instances of <a class="el" href="classPxArticulationLink.html" title="a component of an articulation that represents a rigid body">PxArticulationLink</a> but are permitted for instances of <a class="el" href="classPxRigidDynamic.html" title="PxRigidDynamic represents a dynamic rigid simulation object in the physics SDK.">PxRigidDynamic</a>.</dd></dl>
<b>Default:</b> 1.0<p>
<b>Sleeping:</b> Does <b>NOT</b> wake the actor up automatically.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>mass</em> </td><td>New mass value for the actor. <b>Range:</b> [0, PX_MAX_F32)</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#2b1c475ca9cc6aebc168ac58256b7284" title="Retrieves the mass of the actor.">getMass()</a> PxRigidBodyDesc.mass <a class="el" href="classPxRigidBody.html#755d0c8a8d1dd8b29e59d50a6dfda5fd" title="Sets the inertia tensor, using a parameter specified in mass space coordinates.">setMassSpaceInertiaTensor()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="755d0c8a8d1dd8b29e59d50a6dfda5fd"></a><!-- doxytag: member="PxRigidBody::setMassSpaceInertiaTensor" ref="755d0c8a8d1dd8b29e59d50a6dfda5fd" args="(const PxVec3 &m)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setMassSpaceInertiaTensor </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="classPxVec3.html">PxVec3</a> & </td>
<td class="paramname"> <em>m</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the inertia tensor, using a parameter specified in mass space coordinates.
<p>
Note that such matrices are diagonal -- the passed vector is the diagonal.<p>
If you have a non diagonal world/actor space inertia tensor(3x3 matrix). Then you need to diagonalize it and set an appropriate mass space transform. See <a class="el" href="classPxRigidBody.html#b152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor.">setCMassLocalPose()</a>.<p>
The inertia tensor elements must be non-negative.<p>
<dl class="note" compact><dt><b>Note:</b></dt><dd>A value of 0 in an element is interpreted as infinite inertia along that axis. <p>
Values of 0 are not permitted for instances of <a class="el" href="classPxArticulationLink.html" title="a component of an articulation that represents a rigid body">PxArticulationLink</a> but are permitted for instances of <a class="el" href="classPxRigidDynamic.html" title="PxRigidDynamic represents a dynamic rigid simulation object in the physics SDK.">PxRigidDynamic</a>.</dd></dl>
<b>Default:</b> (1.0, 1.0, 1.0)<p>
<b>Sleeping:</b> Does <b>NOT</b> wake the actor up automatically.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>m</em> </td><td>New mass space inertia tensor for the actor.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd>PxRigidBodyDesc.massSpaceInertia getMassSpaceInertia() <a class="el" href="classPxRigidBody.html#8a697a7a4b9bdd2c83a68e84b9bc3a35" title="Sets the mass of a dynamic actor.">setMass()</a> <a class="el" href="classPxRigidBody.html#b152773926fe7b222d61e982c3cb6adf" title="Sets the pose of the center of mass relative to the actor.">setCMassLocalPose()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="1a3bbe100e644995742f80f19ea8f250"></a><!-- doxytag: member="PxRigidBody::setMaxContactImpulse" ref="1a3bbe100e644995742f80f19ea8f250" args="(PxReal maxImpulse)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setMaxContactImpulse </td>
<td>(</td>
<td class="paramtype">PxReal </td>
<td class="paramname"> <em>maxImpulse</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets a limit on the impulse that may be applied at a contact. The maximum impulse at a contact between two dynamic or kinematic bodies will be the minimum of the two limit values. For a collision between a static and a dynamic body, the impulse is limited by the value for the dynamic body.
<p>
This value is not used in CCD unless <a class="el" href="structPxRigidBodyFlag.html#5fd4878ae66a98c030a9d976e8ba8596b2bb4cc4246807076a2103d72bd69e00" title="Permit CCD to limit maxContactImpulse. This is useful for use-cases like a destruction...">PxRigidBodyFlag::eENABLE_CCD_MAX_CONTACT_IMPULSE</a> is raised on the body.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>maxImpulse</em> </td><td>the maximum contact impulse. <b>Range:</b> [0, PX_MAX_F32] <b>Default:</b> PX_MAX_F32</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxRigidBody.html#2f9e9e7946ab265013229612aad4c3c7" title="Returns the maximum impulse that may be applied at a contact.">getMaxContactImpulse</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="261ce18fdc6cb81c0bfb46590db0867d"></a><!-- doxytag: member="PxRigidBody::setMaxDepenetrationVelocity" ref="261ce18fdc6cb81c0bfb46590db0867d" args="(PxReal biasClamp)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setMaxDepenetrationVelocity </td>
<td>(</td>
<td class="paramtype">PxReal </td>
<td class="paramname"> <em>biasClamp</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the maximum depenetration velocity permitted to be introduced by the solver. This value controls how much velocity the solver can introduce to correct for penetrations in contacts.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>biasClamp</em> </td><td>The maximum velocity to de-penetrate by <b>Range:</b> (0, PX_MAX_F32]. </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="c6f4fe582726801cb09c2381de0c144d"></a><!-- doxytag: member="PxRigidBody::setMinCCDAdvanceCoefficient" ref="c6f4fe582726801cb09c2381de0c144d" args="(PxReal advanceCoefficient)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setMinCCDAdvanceCoefficient </td>
<td>(</td>
<td class="paramtype">PxReal </td>
<td class="paramname"> <em>advanceCoefficient</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the CCD minimum advance coefficient.
<p>
The CCD minimum advance coefficient is a value in the range [0, 1] that is used to control the minimum amount of time a body is integrated when it has a CCD contact. The actual minimum amount of time that is integrated depends on various properties, including the relative speed and collision shapes of the bodies involved in the contact. From these properties, a numeric value is calculated that determines the maximum distance (and therefore maximum time) which these bodies could be integrated forwards that would ensure that these bodies did not pass through each-other. This value is then scaled by CCD minimum advance coefficient to determine the amount of time that will be consumed in the CCD pass.<p>
<b>Things to consider:</b> A large value (approaching 1) ensures that the objects will always advance some time. However, larger values increase the chances of objects gently drifting through each-other in scenes which the constraint solver can't converge, e.g. scenes where an object is being dragged through a wall with a constraint. A value of 0 ensures that the pair of objects stop at the exact time-of-impact and will not gently drift through each-other. However, with very small/thin objects initially in contact, this can lead to a large amount of time being dropped and increases the chances of jamming. Jamming occurs when the an object is persistently in contact with an object such that the time-of-impact is 0, which results in no time being advanced for those objects in that CCD pass.<p>
The chances of jamming can be reduced by increasing the number of CCD mass <dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="classPxSceneDesc.html#65aa4ceefbbd6aebd75ea879d7c385f9" title="Maximum number of CCD passes.">PxSceneDesc.ccdMaxPasses</a>. However, increasing this number increases the CCD overhead.</dd></dl>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>advanceCoefficient</em> </td><td>The CCD min advance coefficient. <b>Range:</b> [0, 1] <b>Default:</b> 0.15 </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="9b23b890404b1010bf0b67a225bd22e7"></a><!-- doxytag: member="PxRigidBody::setRigidBodyFlag" ref="9b23b890404b1010bf0b67a225bd22e7" args="(PxRigidBodyFlag::Enum flag, bool value)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setRigidBodyFlag </td>
<td>(</td>
<td class="paramtype"><a class="el" href="structPxRigidBodyFlag.html#5fd4878ae66a98c030a9d976e8ba8596">PxRigidBodyFlag::Enum</a> </td>
<td class="paramname"> <em>flag</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool </td>
<td class="paramname"> <em>value</em></td><td> </td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Raises or clears a particular rigid body flag.
<p>
See the list of flags <a class="el" href="structPxRigidBodyFlag.html" title="Collection of flags describing the behavior of a rigid body.">PxRigidBodyFlag</a><p>
<b>Default:</b> no flags are set<p>
<b>Sleeping:</b> Does <b>NOT</b> wake the actor up automatically.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>flag</em> </td><td>The <a class="el" href="classPxRigidBody.html" title="PxRigidBody is a base class shared between dynamic rigid body objects.">PxRigidBody</a> flag to raise(set) or clear. See <a class="el" href="structPxRigidBodyFlag.html" title="Collection of flags describing the behavior of a rigid body.">PxRigidBodyFlag</a>. </td></tr>
<tr><td valign="top"><tt>[in]</tt> </td><td valign="top"><em>value</em> </td><td>The new boolean value for the flag.</td></tr>
</table>
</dl>
<dl class="see" compact><dt><b>See also:</b></dt><dd><a class="el" href="structPxRigidBodyFlag.html" title="Collection of flags describing the behavior of a rigid body.">PxRigidBodyFlag</a> <a class="el" href="classPxRigidBody.html#2ef3c66318db72f2dd2c1b0d20513f18" title="Reads the PxRigidBody flags.">getRigidBodyFlags()</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="9e6f3afd71605e037a5de47955d941e0"></a><!-- doxytag: member="PxRigidBody::setRigidBodyFlags" ref="9e6f3afd71605e037a5de47955d941e0" args="(PxRigidBodyFlags inFlags)=0" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">virtual void PxRigidBody::setRigidBodyFlags </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classPxFlags.html">PxRigidBodyFlags</a> </td>
<td class="paramname"> <em>inFlags</em> </td>
<td> ) </td>
<td><code> [pure virtual]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
</div>
</div><p>
<hr>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PxRigidBody_8h-source.html">PxRigidBody.h</a></ul>
</div>
<hr style="width: 100%; height: 2px;"><br>
Copyright © 2008-2018 NVIDIA Corporation, 2701 San Tomas Expressway, Santa Clara, CA 95050 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a>
</body>
</html>
|