1/*
2 * Copyright (c) 2009-2010 jMonkeyEngine
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *
9 * * Redistributions of source code must retain the above copyright
10 *   notice, this list of conditions and the following disclaimer.
11 *
12 * * Redistributions in binary form must reproduce the above copyright
13 *   notice, this list of conditions and the following disclaimer in the
14 *   documentation and/or other materials provided with the distribution.
15 *
16 * * Neither the name of 'jMonkeyEngine' nor the names of its contributors
17 *   may be used to endorse or promote products derived from this software
18 *   without specific prior written permission.
19 *
20 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 */
32package com.jme3.bullet.joints.motors;
33
34/**
35 *
36 * @author normenhansen
37 */
38public class RotationalLimitMotor {
39
40    private long motorId = 0;
41
42    public RotationalLimitMotor(long motor) {
43        this.motorId = motor;
44    }
45
46    public long getMotor() {
47        return motorId;
48    }
49
50    public float getLoLimit() {
51        return getLoLimit(motorId);
52    }
53
54    private native float getLoLimit(long motorId);
55
56    public void setLoLimit(float loLimit) {
57        setLoLimit(motorId, loLimit);
58    }
59
60    private native void setLoLimit(long motorId, float loLimit);
61
62    public float getHiLimit() {
63        return getHiLimit(motorId);
64    }
65
66    private native float getHiLimit(long motorId);
67
68    public void setHiLimit(float hiLimit) {
69        setHiLimit(motorId, hiLimit);
70    }
71
72    private native void setHiLimit(long motorId, float hiLimit);
73
74    public float getTargetVelocity() {
75        return getTargetVelocity(motorId);
76    }
77
78    private native float getTargetVelocity(long motorId);
79
80    public void setTargetVelocity(float targetVelocity) {
81        setTargetVelocity(motorId, targetVelocity);
82    }
83
84    private native void setTargetVelocity(long motorId, float targetVelocity);
85
86    public float getMaxMotorForce() {
87        return getMaxMotorForce(motorId);
88    }
89
90    private native float getMaxMotorForce(long motorId);
91
92    public void setMaxMotorForce(float maxMotorForce) {
93        setMaxMotorForce(motorId, maxMotorForce);
94    }
95
96    private native void setMaxMotorForce(long motorId, float maxMotorForce);
97
98    public float getMaxLimitForce() {
99        return getMaxLimitForce(motorId);
100    }
101
102    private native float getMaxLimitForce(long motorId);
103
104    public void setMaxLimitForce(float maxLimitForce) {
105        setMaxLimitForce(motorId, maxLimitForce);
106    }
107
108    private native void setMaxLimitForce(long motorId, float maxLimitForce);
109
110    public float getDamping() {
111        return getDamping(motorId);
112    }
113
114    private native float getDamping(long motorId);
115
116    public void setDamping(float damping) {
117        setDamping(motorId, damping);
118    }
119
120    private native void setDamping(long motorId, float damping);
121
122    public float getLimitSoftness() {
123        return getLimitSoftness(motorId);
124    }
125
126    private native float getLimitSoftness(long motorId);
127
128    public void setLimitSoftness(float limitSoftness) {
129        setLimitSoftness(motorId, limitSoftness);
130    }
131
132    private native void setLimitSoftness(long motorId, float limitSoftness);
133
134    public float getERP() {
135        return getERP(motorId);
136    }
137
138    private native float getERP(long motorId);
139
140    public void setERP(float ERP) {
141        setERP(motorId, ERP);
142    }
143
144    private native void setERP(long motorId, float ERP);
145
146    public float getBounce() {
147        return getBounce(motorId);
148    }
149
150    private native float getBounce(long motorId);
151
152    public void setBounce(float bounce) {
153        setBounce(motorId, bounce);
154    }
155
156    private native void setBounce(long motorId, float limitSoftness);
157
158    public boolean isEnableMotor() {
159        return isEnableMotor(motorId);
160    }
161
162    private native boolean isEnableMotor(long motorId);
163
164    public void setEnableMotor(boolean enableMotor) {
165        setEnableMotor(motorId, enableMotor);
166    }
167
168    private native void setEnableMotor(long motorId, boolean enableMotor);
169}
170