This repository has been archived by the owner on Nov 3, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 358
/
Arbiter.cs
143 lines (107 loc) · 3.56 KB
/
Arbiter.cs
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
//
// Arbiter.cs
//
// Author:
// Stephane Delcroix <stephane@delcroix.org>
//
// Copyright © 2013 Stephane Delcroix. All Rights Reserved.
using System;
using System.Drawing;
using System.Runtime.InteropServices;
using MonoTouch.Foundation;
using MonoTouch.UIKit;
namespace Chipmunk
{
public sealed partial class Arbiter : ChipmunkObject
{
public Arbiter (IntPtr ptr) : base (ptr, false)
{
}
[DllImport ("__Internal")]
extern static float __cpArbiterGetElasticity (IntPtr arbiter);
[DllImport ("__Internal")]
extern static void __cpArbiterSetElasticity (IntPtr arbiter, float value);
public float Elasticity {
get { return __cpArbiterGetElasticity (Handle.Handle); }
set { __cpArbiterSetElasticity (Handle.Handle, value); }
}
[DllImport ("__Internal")]
extern static float __cpArbiterGetFriction (IntPtr arbiter);
[DllImport ("__Internal")]
extern static void __cpArbiterSetFriction (IntPtr arbiter, float value);
public float Friction {
get { return __cpArbiterGetFriction (Handle.Handle); }
set { __cpArbiterSetFriction (Handle.Handle, value); }
}
[DllImport ("__Internal")]
extern static PointF __cpArbiterGetSurfaceVelocity (IntPtr arbiter);
[DllImport ("__Internal")]
extern static void __cpArbiterSetSurfaceVelocity (IntPtr arbiter, PointF value);
public PointF SurfaceVelocity {
get { return __cpArbiterGetSurfaceVelocity (Handle.Handle); }
set { __cpArbiterSetSurfaceVelocity (Handle.Handle, value); }
}
[DllImport ("__Internal")]
extern static int cpArbiterGetCount (IntPtr arbiter);
public int Count {
get { return cpArbiterGetCount (Handle.Handle); }
}
[DllImport ("__Internal")]
extern static PointF cpArbiterGetNormal (IntPtr arbiter, int i);
public PointF GetNormal (int i)
{
return cpArbiterGetNormal (Handle.Handle, i);
}
[DllImport ("__Internal")]
extern static PointF cpArbiterGetPoint (IntPtr arbiter, int i);
public PointF GetPoint (int i)
{
return cpArbiterGetPoint (Handle.Handle, i);
}
[DllImport ("__Internal")]
extern static float cpArbiterGetDepth (IntPtr arbiter, int i);
public float GetDepth (int i)
{
return cpArbiterGetDepth (Handle.Handle, i);
}
[DllImport ("__Internal")]
extern static bool cpArbiterIsFirstContact (IntPtr arbiter);
public bool IsFirstContact {
get { return cpArbiterIsFirstContact (Handle.Handle); }
}
[DllImport ("__Internal")]
extern static void __cpArbiterGetShapes(IntPtr arbiter, out IntPtr shapeA, out IntPtr shapeB);
public void GetShapes (out Shape shapeA, out Shape shapeB)
{
IntPtr a, b;
__cpArbiterGetShapes (Handle.Handle, out a, out b);
shapeA = new Shape (a);
shapeB = new Shape (b);
}
[DllImport ("__Internal")]
extern static void __cpArbiterGetBodies(IntPtr arbiter, out IntPtr bodyA, out IntPtr bodyB);
public void GetBodies (out Body bodyA, out Body bodyB)
{
IntPtr a, b;
__cpArbiterGetBodies (Handle.Handle, out a, out b);
bodyA = new Body (a);
bodyB = new Body (b);
}
//TODO contact point set
[DllImport ("__Internal")]
extern static PointF cpArbiterTotalImpulseWithFriction (IntPtr arbiter);
public PointF TotalImpulseWithFriction {
get { return cpArbiterTotalImpulseWithFriction (Handle.Handle); }
}
[DllImport ("__Internal")]
extern static PointF cpArbiterTotalImpulse (IntPtr arbiter);
public PointF TotalImpulse {
get { return cpArbiterTotalImpulse (Handle.Handle); }
}
[DllImport ("__Internal")]
extern static float cpArbiterTotalKE (IntPtr arbiter);
public float TotalKE {
get { return cpArbiterTotalKE (Handle.Handle); }
}
}
}