• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 %module btRigidBody
2 
3 %{
4 #include <BulletDynamics/Dynamics/btRigidBody.h>
5 %}
6 
7 %rename(i_motionState) btRigidBody::btRigidBodyConstructionInfo::m_motionState;
8 %javamethodmodifiers btRigidBody::btRigidBodyConstructionInfo::m_motionState "private";
9 %rename(i_collisionShape) btRigidBody::btRigidBodyConstructionInfo::m_collisionShape;
10 %javamethodmodifiers btRigidBody::btRigidBodyConstructionInfo::m_collisionShape "private";
11 
12 %javamethodmodifiers btRigidBody::btRigidBodyConstructionInfo::btRigidBodyConstructionInfo "private";
13 
14 %ignore btRigidBody::btRigidBodyConstructionInfo::btRigidBodyConstructionInfo(btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape);
15 %ignore btRigidBody::btRigidBodyConstructionInfo::btRigidBodyConstructionInfo(btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia);
16 
17 %typemap(javaout) 	btRigidBody *, const btRigidBody *, btRigidBody * const & {
18 	return btRigidBody.getInstance($jnicall, $owner);
19 }
20 
21 %typemap(javaout) 	btRigidBody, const btRigidBody, btRigidBody & {
22 	return btRigidBody.getInstance($jnicall, $owner);
23 }
24 
25 %typemap(javadirectorin) btRigidBody *, const btRigidBody *, btRigidBody * const &	"btRigidBody.getInstance($1, false)"
26 
27 %typemap(javacode) btRigidBody::btRigidBodyConstructionInfo %{
28 	protected btMotionState motionState;
29 
setMotionState(btMotionState motionState)30 	public void setMotionState(btMotionState motionState) {
31 		refMotionState(motionState);
32 		setI_motionState(motionState);
33 	}
34 
refMotionState(btMotionState motionState)35 	protected void refMotionState(btMotionState motionState) {
36 		if (this.motionState == motionState)
37 			return;
38 		if (this.motionState != null)
39 			this.motionState.release();
40 		this.motionState = motionState;
41 		if (this.motionState != null)
42 			this.motionState.obtain();
43 	}
44 
getMotionState()45 	public btMotionState getMotionState() {
46 		return motionState;
47 	}
48 
49 	protected btCollisionShape collisionShape;
50 
setCollisionShape(btCollisionShape collisionShape)51 	public void setCollisionShape(btCollisionShape collisionShape) {
52 		refCollisionShape(collisionShape);
53 		setI_collisionShape(collisionShape);
54 	}
55 
refCollisionShape(btCollisionShape shape)56 	protected void refCollisionShape(btCollisionShape shape) {
57 		if (collisionShape == shape)
58 			return;
59 		if (collisionShape != null)
60 			collisionShape.release();
61 		collisionShape = shape;
62 		if (collisionShape != null)
63 			collisionShape.obtain();
64 	}
65 
getCollisionShape()66 	public btCollisionShape getCollisionShape() {
67 		return collisionShape;
68 	}
69 
btRigidBodyConstructionInfo(float mass,btMotionState motionState,btCollisionShape collisionShape,Vector3 localInertia)70 	public btRigidBodyConstructionInfo(float mass, btMotionState motionState, btCollisionShape collisionShape, Vector3 localInertia) {
71 		this(false, mass, motionState, collisionShape, localInertia);
72 		refMotionState(motionState);
73 		refCollisionShape(collisionShape);
74 	}
75 
btRigidBodyConstructionInfo(float mass,btMotionState motionState,btCollisionShape collisionShape)76 	public btRigidBodyConstructionInfo(float mass, btMotionState motionState, btCollisionShape collisionShape) {
77 		this(false, mass, motionState, collisionShape);
78 		refMotionState(motionState);
79 		refCollisionShape(collisionShape);
80 	}
81 
82 	@Override
dispose()83 	public void dispose() {
84 		if (motionState != null)
85 			motionState.release();
86 		motionState = null;
87 		if (collisionShape != null)
88 			collisionShape.release();
89 		collisionShape = null;
90 		super.dispose();
91 	}
92 %}
93 
94 %extend btRigidBody::btRigidBodyConstructionInfo {
95 	btRigidBodyConstructionInfo(bool dummy, btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0)) {
96 		return new btRigidBody::btRigidBodyConstructionInfo(mass, motionState, collisionShape, localInertia);
97 	}
98 };
99 
100 %ignore btRigidBody::upcast(const btCollisionObject*);
101 %ignore btRigidBody::upcast(btCollisionObject*);
102 %ignore btRigidBody::btRigidBody(const btRigidBodyConstructionInfo& constructionInfo);
103 %ignore btRigidBody::btRigidBody(btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0));
104 
105 %javamethodmodifiers btRigidBody::btRigidBody "private";
106 
107 %rename(internalGetMotionState) btRigidBody::getMotionState;
108 %javamethodmodifiers btRigidBody::getMotionState "private";
109 %rename(internalSetMotionState) btRigidBody::setMotionState;
110 %javamethodmodifiers btRigidBody::setMotionState "private";
111 %ignore btRigidBody::getCollisionShape;
112 
113 %extend btRigidBody {
btRigidBody(bool dummy,const btRigidBody::btRigidBodyConstructionInfo & constructionInfo)114 	btRigidBody(bool dummy, const btRigidBody::btRigidBodyConstructionInfo& constructionInfo) {
115 		return new btRigidBody(constructionInfo);
116 	}
117 	btRigidBody(bool dummy, btScalar mass, btMotionState* motionState, btCollisionShape* collisionShape, const btVector3& localInertia=btVector3(0,0,0)) {
118 		return new btRigidBody(mass, motionState, collisionShape, localInertia);
119 	}
120 };
121 
122 %typemap(javacode) btRigidBody %{
123 	protected btMotionState motionState;
124 
125 	/** @return The existing instance for the specified pointer, or null if the instance doesn't exist */
getInstance(final long swigCPtr)126 	public static btRigidBody getInstance(final long swigCPtr) {
127 		return (btRigidBody)btCollisionObject.getInstance(swigCPtr);
128 	}
129 
130 	/** @return The existing instance for the specified pointer, or a newly created instance if the instance didn't exist */
getInstance(final long swigCPtr,boolean owner)131 	public static btRigidBody getInstance(final long swigCPtr, boolean owner) {
132 		if (swigCPtr == 0)
133 			return null;
134 		btRigidBody result = getInstance(swigCPtr);
135 		if (result == null)
136 				result = new btRigidBody(swigCPtr, owner);
137 		return result;
138 	}
139 
btRigidBody(btRigidBodyConstructionInfo constructionInfo)140 	public btRigidBody(btRigidBodyConstructionInfo constructionInfo) {
141 		this(false, constructionInfo);
142 		refCollisionShape(constructionInfo.getCollisionShape());
143 		refMotionState(constructionInfo.getMotionState());
144 	}
145 
btRigidBody(float mass,btMotionState motionState,btCollisionShape collisionShape,Vector3 localInertia)146 	public btRigidBody(float mass, btMotionState motionState, btCollisionShape collisionShape, Vector3 localInertia) {
147 		this(false, mass, motionState, collisionShape, localInertia);
148 		refCollisionShape(collisionShape);
149 		refMotionState(motionState);
150 	}
151 
btRigidBody(float mass,btMotionState motionState,btCollisionShape collisionShape)152 	public btRigidBody(float mass, btMotionState motionState, btCollisionShape collisionShape) {
153 		this(false, mass, motionState, collisionShape);
154 		refCollisionShape(collisionShape);
155 		refMotionState(motionState);
156 	}
157 
setMotionState(btMotionState motionState)158 	public void setMotionState(btMotionState motionState) {
159 		refMotionState(motionState);
160 		internalSetMotionState(motionState);
161 	}
162 
refMotionState(btMotionState motionState)163 	protected void refMotionState(btMotionState motionState) {
164 		if (this.motionState == motionState)
165 			return;
166 		if (this.motionState != null)
167 			this.motionState.release();
168 		this.motionState = motionState;
169 		if (this.motionState != null)
170 			this.motionState.obtain();
171 	}
172 
getMotionState()173 	public btMotionState getMotionState() {
174 		return motionState;
175 	}
176 
177 	@Override
dispose()178 	public void dispose() {
179 		if (motionState != null)
180 			motionState.release();
181 		motionState = null;
182 		super.dispose();
183 	}
184 %}
185 
186 %include "BulletDynamics/Dynamics/btRigidBody.h"
187