Panda3D
bulletManifoldPoint.h
1 // Filename: bulletManifoldPoint.h
2 // Created by: enn0x (07Mar10)
3 //
4 ////////////////////////////////////////////////////////////////////
5 //
6 // PANDA 3D SOFTWARE
7 // Copyright (c) Carnegie Mellon University. All rights reserved.
8 //
9 // All use of this software is subject to the terms of the revised BSD
10 // license. You should have received a copy of this license along
11 // with this source code in a file named "LICENSE."
12 //
13 ////////////////////////////////////////////////////////////////////
14 
15 #ifndef __BULLET_MANIFOLD_POINT_H__
16 #define __BULLET_MANIFOLD_POINT_H__
17 
18 #include "pandabase.h"
19 
20 #include "bullet_includes.h"
21 #include "bullet_utils.h"
22 
23 #include "luse.h"
24 
25 ////////////////////////////////////////////////////////////////////
26 // Class : BulletManifoldPoint
27 // Description :
28 ////////////////////////////////////////////////////////////////////
29 class EXPCL_PANDABULLET BulletManifoldPoint {
30 
31 PUBLISHED:
32  INLINE ~BulletManifoldPoint();
33 
34  int get_life_time() const;
35  PN_stdfloat get_distance() const;
36  PN_stdfloat get_applied_impulse() const;
37  LPoint3 get_position_world_on_a() const;
38  LPoint3 get_position_world_on_b() const;
39  LPoint3 get_normal_world_on_b() const;
40  LPoint3 get_local_point_a() const;
41  LPoint3 get_local_point_b() const;
42 
43  int get_part_id0() const;
44  int get_part_id1() const;
45  int get_index0() const;
46  int get_index1() const;
47 
48  INLINE void set_lateral_friction_initialized(bool value);
49  INLINE void set_lateral_friction_dir1(const LVecBase3 &dir);
50  INLINE void set_lateral_friction_dir2(const LVecBase3 &dir);
51  INLINE void set_contact_motion1(PN_stdfloat value);
52  INLINE void set_contact_motion2(PN_stdfloat value);
53  INLINE void set_combined_friction(PN_stdfloat value);
54  INLINE void set_combined_restitution(PN_stdfloat value);
55  INLINE void set_applied_impulse(PN_stdfloat value);
56  INLINE void set_applied_impulse_lateral1(PN_stdfloat value);
57  INLINE void set_applied_impulse_lateral2(PN_stdfloat value);
58  INLINE void set_contact_cfm1(PN_stdfloat value);
59  INLINE void set_contact_cfm2(PN_stdfloat value);
60 
61  INLINE bool get_lateral_friction_initialized() const;
62  INLINE LVector3 get_lateral_friction_dir1() const;
63  INLINE LVector3 get_lateral_friction_dir2() const;
64  INLINE PN_stdfloat get_contact_motion1() const;
65  INLINE PN_stdfloat get_contact_motion2() const;
66  INLINE PN_stdfloat get_combined_friction() const;
67  INLINE PN_stdfloat get_combined_restitution() const;
68  INLINE PN_stdfloat get_applied_impulse_lateral1() const;
69  INLINE PN_stdfloat get_applied_impulse_lateral2() const;
70  INLINE PN_stdfloat get_contact_cfm1() const;
71  INLINE PN_stdfloat get_contact_cfm2() const;
72 
73 public:
74  BulletManifoldPoint(btManifoldPoint &pt);
75 
77  BulletManifoldPoint& operator=(const BulletManifoldPoint& other);
78 
79 private:
80  btManifoldPoint &_pt;
81 };
82 
83 #include "bulletManifoldPoint.I"
84 
85 #endif // __BULLET_MANIFOLD_POINT_H__
This is the base class for all three-component vectors and points.
Definition: lvecBase3.h:105
This is a three-component vector distance (as opposed to a three-component point, which represents a ...
Definition: lvector3.h:100
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
Definition: lpoint3.h:99