• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 %module(directors="1") btDbvt
2 
3 %feature("flatnested") btDbvt::ICollide;
4 %feature("director") ICollide;
5 
6 %typemap(javadirectorin) btDbvtNode, const btDbvtNode, const btDbvtNode &, btDbvtNode & 	"btDbvtNode.obtainForArgument($1, false)"
7 %typemap(javadirectorin) btDbvtNode *, const btDbvtNode *, btDbvtNode * const &	"btDbvtNode.obtainForArgument($1, false)"
8 %typemap(javaout) 	btDbvtNode *, const btDbvtNode *, btDbvtNode * const & {
9 	return btDbvtNode.internalTemp($jnicall, $owner);
10 }
11 %typemap(javacode) btDbvtNode %{
12 	private final static btDbvtNode temp = new btDbvtNode(0, false);
13 	/** Obtains a temporary instance, used by native methods that return a btDbvtNode instance */
internalTemp(long cPtr,boolean own)14 	public static btDbvtNode internalTemp(long cPtr, boolean own) {
15 		temp.reset(cPtr, own);
16 		return temp;
17 	}
18 	private static btDbvtNode[] argumentInstances = new btDbvtNode[] {new btDbvtNode(0, false),
19 		new btDbvtNode(0, false), new btDbvtNode(0, false), new btDbvtNode(0, false)};
20 	private static int argumentIndex = -1;
21 	/** Obtains a temporary instance, used for callback methods with one or more btDbvtNode arguments */
obtainForArgument(final long swigCPtr,boolean owner)22 	protected static btDbvtNode obtainForArgument(final long swigCPtr, boolean owner) {
23 		btDbvtNode instance = argumentInstances[argumentIndex = (argumentIndex + 1) & 3];
24 		instance.reset(swigCPtr, owner);
25 		return instance;
26 	}
27 %}
28 %typemap(javadirectorin) btDbvtAabbMm, const btDbvtAabbMm, const btDbvtAabbMm &, btDbvtAabbMm & 	"btDbvtAabbMm.obtainForArgument($1, false)"
29 %typemap(javadirectorin) btDbvtAabbMm *, const btDbvtAabbMm *, btDbvtAabbMm * const &	"btDbvtAabbMm.obtainForArgument($1, false)"
30 %typemap(javaout) 	btDbvtAabbMm *, const btDbvtAabbMm *, btDbvtAabbMm * const & {
31 	return btDbvtAabbMm.internalTemp($jnicall, $owner);
32 }
33 %typemap(javacode) btDbvtAabbMm %{
34 	private final static btDbvtAabbMm temp = new btDbvtAabbMm(0, false);
35 	/** Obtains a temporary instance, used by native methods that return a btDbvtAabbMm instance */
internalTemp(long cPtr,boolean own)36 	public static btDbvtAabbMm internalTemp(long cPtr, boolean own) {
37 		temp.reset(cPtr, own);
38 		return temp;
39 	}
40 	private static btDbvtAabbMm[] argumentInstances = new btDbvtAabbMm[] {new btDbvtAabbMm(0, false),
41 		new btDbvtAabbMm(0, false), new btDbvtAabbMm(0, false), new btDbvtAabbMm(0, false)};
42 	private static int argumentIndex = -1;
43 	/** Obtains a temporary instance, used for callback methods with one or more btDbvtAabbMm arguments */
obtainForArgument(final long swigCPtr,boolean owner)44 	protected static btDbvtAabbMm obtainForArgument(final long swigCPtr, boolean owner) {
45 		btDbvtAabbMm instance = argumentInstances[argumentIndex = (argumentIndex + 1) & 3];
46 		instance.reset(swigCPtr, owner);
47 		return instance;
48 	}
49 %}
50 
51 %{
52 #include <BulletCollision/BroadphaseCollision/btDbvt.h>
53 %}
54 %include "BulletCollision/BroadphaseCollision/btDbvt.h"
55 
56 %{
57 #include <BulletCollision/BroadphaseCollision/btDbvtBroadphase.h>
58 %}
59 %include "BulletCollision/BroadphaseCollision/btDbvtBroadphase.h"
60 
61 %extend btDbvt {
collideKDOP(const btDbvtNode * root,const btScalar * normals,const btScalar * offsets,int count,btDbvt::ICollide & policy)62 	static void	collideKDOP(const btDbvtNode* root,
63 		const btScalar* normals,
64 		const btScalar* offsets,
65 		int count,
66 		btDbvt::ICollide &policy) {
67 		btDbvt::collideKDOP(root, (btVector3*)normals, offsets, count, policy);
68 	}
69 
70 	static void	collideOCL(	const btDbvtNode* root,
71 		const btScalar* normals,
72 		const btScalar* offsets,
73 		const btVector3& sortaxis,
74 		int count,
75 		btDbvt::ICollide &policy,
76 		bool fullsort=true) {
77 		btDbvt::collideOCL(root, (btVector3*)normals, offsets, sortaxis, count, policy, fullsort);
78 	}
79 };
80 
81 %extend btDbvtBroadphase {
getSet(const int & index)82 	btDbvt *getSet(const int &index) {
83 		return &($self->m_sets[index]);
84 	}
getSet0()85 	btDbvt *getSet0() {
86 		return &($self->m_sets[0]);
87 	}
getSet1()88 	btDbvt *getSet1() {
89 		return &($self->m_sets[1]);
90 	}
91 };
92 
93 %extend btDbvtNode {
getChild(const int & index)94 	btDbvtNode *getChild(const int &index) {
95 		return $self->childs[index];
96 	}
97 
getChild0()98 	btDbvtNode *getChild0() {
99 		return $self->childs[0];
100 	}
101 
getChild1()102 	btDbvtNode *getChild1() {
103 		return $self->childs[1];
104 	}
105 
getDataAsProxy()106 	btBroadphaseProxy *getDataAsProxy() {
107 	    return (btBroadphaseProxy*)$self->data;
108 	}
109 
getDataAsProxyClientObject()110 	btCollisionObject *getDataAsProxyClientObject() {
111 	    return ($self->isleaf()) ? (btCollisionObject*)((btBroadphaseProxy*)$self->data)->m_clientObject : NULL;
112 	}
113 };
114 
115