Revision b63235a0
Added by Leszek Koltunski over 1 year ago
src/main/java/org/distorted/objectlib/json/JsonReader.java | ||
---|---|---|
161 | 161 |
|
162 | 162 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
163 | 163 |
|
164 |
private void parseMetadata5(JSONObject object) throws JSONException |
|
164 |
private void parseMetadata5or6(JSONObject object) throws JSONException
|
|
165 | 165 |
{ |
166 | 166 |
mLongName = object.getString("longname"); |
167 | 167 |
mShortName = object.getString("shortname"); |
... | ... | |
490 | 490 |
|
491 | 491 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
492 | 492 |
|
493 |
private void parseAxis2or3or4or5(JSONArray object) throws JSONException |
|
493 |
private void parseAxis2or3or4or5or6(JSONArray object) throws JSONException
|
|
494 | 494 |
{ |
495 | 495 |
int numAxis = object.length(); |
496 | 496 |
|
... | ... | |
696 | 696 |
JSONObject mesh = object.getJSONObject("mesh"); |
697 | 697 |
parseMesh(mesh); |
698 | 698 |
JSONArray axis = object.getJSONArray("axis"); |
699 |
parseAxis2or3or4or5(axis); |
|
699 |
parseAxis2or3or4or5or6(axis);
|
|
700 | 700 |
JSONArray quats = object.getJSONArray("quats"); |
701 | 701 |
parseQuats(quats); |
702 | 702 |
JSONObject scrambling = object.getJSONObject("scrambling"); |
... | ... | |
711 | 711 |
|
712 | 712 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
713 | 713 |
|
714 |
private void parseVersion5(JSONObject object) throws JSONException |
|
714 |
private void parseVersion5or6(JSONObject object) throws JSONException
|
|
715 | 715 |
{ |
716 | 716 |
JSONObject metadata = object.getJSONObject("metadata"); |
717 |
parseMetadata5(metadata); |
|
717 |
parseMetadata5or6(metadata);
|
|
718 | 718 |
JSONObject mesh = object.getJSONObject("mesh"); |
719 | 719 |
parseMesh(mesh); |
720 | 720 |
JSONArray axis = object.getJSONArray("axis"); |
721 |
parseAxis2or3or4or5(axis); |
|
721 |
parseAxis2or3or4or5or6(axis);
|
|
722 | 722 |
JSONArray quats = object.getJSONArray("quats"); |
723 | 723 |
parseQuats(quats); |
724 | 724 |
JSONObject scrambling = object.getJSONObject("scrambling"); |
... | ... | |
769 | 769 |
|
770 | 770 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
771 | 771 |
|
772 |
private void parseVersion5Metadata(JSONObject object) throws JSONException |
|
772 |
private void parseVersion5or6Metadata(JSONObject object) throws JSONException
|
|
773 | 773 |
{ |
774 | 774 |
JSONObject metadata = object.getJSONObject("metadata"); |
775 |
parseMetadata5(metadata); |
|
775 |
parseMetadata5or6(metadata);
|
|
776 | 776 |
} |
777 | 777 |
|
778 | 778 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
... | ... | |
798 | 798 |
{ |
799 | 799 |
parseVersion2or3or4(object); |
800 | 800 |
} |
801 |
else if( major==5 ) |
|
801 |
else if( major==5 || major==6 )
|
|
802 | 802 |
{ |
803 |
parseVersion5(object); |
|
803 |
parseVersion5or6(object);
|
|
804 | 804 |
} |
805 | 805 |
else |
806 | 806 |
{ |
... | ... | |
831 | 831 |
{ |
832 | 832 |
parseVersion2or3or4Metadata(object); |
833 | 833 |
} |
834 |
else if( major==5 ) |
|
834 |
else if( major==5 || major==6 )
|
|
835 | 835 |
{ |
836 |
parseVersion5Metadata(object); |
|
836 |
parseVersion5or6Metadata(object);
|
|
837 | 837 |
} |
838 | 838 |
else |
839 | 839 |
{ |
src/main/java/org/distorted/objectlib/json/JsonWriter.java | ||
---|---|---|
33 | 33 |
|
34 | 34 |
public class JsonWriter |
35 | 35 |
{ |
36 |
public static final int VERSION_OBJECT_MAJOR = 5;
|
|
36 |
public static final int VERSION_OBJECT_MAJOR = 6;
|
|
37 | 37 |
public static final int VERSION_OBJECT_MINOR = 0; |
38 | 38 |
public static final int VERSION_EXTRAS_MAJOR = 1; |
39 | 39 |
public static final int VERSION_EXTRAS_MINOR = 0; |
src/main/java/org/distorted/objectlib/main/TwistyJson.java | ||
---|---|---|
20 | 20 |
import org.distorted.objectlib.helpers.ObjectStickerOverride; |
21 | 21 |
import org.distorted.objectlib.scrambling.ScrambleState; |
22 | 22 |
import org.distorted.objectlib.json.JsonReader; |
23 |
import org.distorted.objectlib.shape.ShapeDiamond; |
|
23 | 24 |
import org.distorted.objectlib.shape.ShapeDodecahedron; |
24 | 25 |
import org.distorted.objectlib.shape.ShapeHexahedron; |
26 |
import org.distorted.objectlib.shape.ShapeIcosahedron; |
|
25 | 27 |
import org.distorted.objectlib.shape.ShapeOctahedron; |
26 | 28 |
import org.distorted.objectlib.shape.ShapeTetrahedron; |
29 |
import org.distorted.objectlib.touchcontrol.TouchControlBall; |
|
27 | 30 |
import org.distorted.objectlib.touchcontrol.TouchControlDodecahedron; |
28 | 31 |
import org.distorted.objectlib.touchcontrol.TouchControlHexahedron; |
32 |
import org.distorted.objectlib.touchcontrol.TouchControlIcosahedron; |
|
29 | 33 |
import org.distorted.objectlib.touchcontrol.TouchControlOctahedron; |
30 | 34 |
import org.distorted.objectlib.touchcontrol.TouchControlTetrahedron; |
31 | 35 |
|
... | ... | |
238 | 242 |
case 6: return TouchControlHexahedron.FACE_AXIS; |
239 | 243 |
case 8: return TouchControlOctahedron.FACE_AXIS; |
240 | 244 |
case 12: return TouchControlDodecahedron.FACE_AXIS; |
245 |
case 16: return TouchControlBall.FACE_AXIS; |
|
246 |
case 20: return TouchControlIcosahedron.FACE_AXIS; |
|
241 | 247 |
} |
242 | 248 |
|
243 | 249 |
android.util.Log.e("D", "Unsupported number of faces in JSON file: "+numFaces); |
... | ... | |
412 | 418 |
case 6: return ShapeHexahedron.FOV; |
413 | 419 |
case 8: return ShapeOctahedron.FOV; |
414 | 420 |
case 12: return ShapeDodecahedron.FOV; |
421 |
case 16: return ShapeDiamond.FOV; |
|
422 |
case 20: return ShapeIcosahedron.FOV; |
|
415 | 423 |
} |
416 | 424 |
|
417 | 425 |
return 0; |
... | ... | |
427 | 435 |
case 6: return ShapeHexahedron.RATIO; |
428 | 436 |
case 8: return ShapeOctahedron.RATIO; |
429 | 437 |
case 12: return ShapeDodecahedron.RATIO; |
438 |
case 16: return ShapeDiamond.RATIO; |
|
439 |
case 20: return ShapeIcosahedron.RATIO; |
|
430 | 440 |
} |
431 | 441 |
|
432 | 442 |
return 0.0f; |
src/main/java/org/distorted/objectlib/objects/TwistyMasterball.java | ||
---|---|---|
21 | 21 |
import org.distorted.objectlib.main.ObjectType; |
22 | 22 |
import org.distorted.objectlib.shape.ShapeDiamond; |
23 | 23 |
import org.distorted.objectlib.scrambling.ScrambleState; |
24 |
import org.distorted.objectlib.touchcontrol.TouchControlBall; |
|
24 | 25 |
|
25 | 26 |
import java.io.InputStream; |
26 | 27 |
|
... | ... | |
192 | 193 |
} |
193 | 194 |
|
194 | 195 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
195 |
// A = PI/8 |
|
196 | 196 |
|
197 | 197 |
public Static3D[] getFaceAxis() |
198 | 198 |
{ |
199 |
final float sinA = (float)(0.5f*Math.sqrt(2-SQ2)); |
|
200 |
final float cosA = (float)(0.5f*Math.sqrt(2+SQ2)); |
|
201 |
|
|
202 |
float X = sinA*cosA/(1+cosA*cosA); |
|
203 |
float Y = cosA*cosA/(1+cosA*cosA); |
|
204 |
float Z = cosA*cosA/(1+cosA*cosA); |
|
205 |
|
|
206 |
float LEN = (float)Math.sqrt(X*X + Y*Y + Z*Z); |
|
207 |
X /= LEN; |
|
208 |
Y /= LEN; |
|
209 |
Z /= LEN; |
|
210 |
|
|
211 |
return new Static3D[] |
|
212 |
{ |
|
213 |
new Static3D( X, Y, Z), |
|
214 |
new Static3D( X,-Y, Z), |
|
215 |
new Static3D( Z, Y, X), |
|
216 |
new Static3D( Z,-Y, X), |
|
217 |
new Static3D( Z, Y,-X), |
|
218 |
new Static3D( Z,-Y,-X), |
|
219 |
new Static3D( X, Y,-Z), |
|
220 |
new Static3D( X,-Y,-Z), |
|
221 |
new Static3D(-X, Y,-Z), |
|
222 |
new Static3D(-X,-Y,-Z), |
|
223 |
new Static3D(-Z, Y,-X), |
|
224 |
new Static3D(-Z,-Y,-X), |
|
225 |
new Static3D(-Z, Y, X), |
|
226 |
new Static3D(-Z,-Y, X), |
|
227 |
new Static3D(-X, Y, Z), |
|
228 |
new Static3D(-X,-Y, Z), |
|
229 |
}; |
|
199 |
return TouchControlBall.FACE_AXIS; |
|
230 | 200 |
} |
231 | 201 |
|
232 | 202 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
src/main/java/org/distorted/objectlib/touchcontrol/TouchControlBall.java | ||
---|---|---|
14 | 14 |
import org.distorted.library.type.Static4D; |
15 | 15 |
import org.distorted.objectlib.main.TwistyObject; |
16 | 16 |
|
17 |
import static org.distorted.objectlib.main.TwistyObject.SQ2; |
|
18 |
|
|
17 | 19 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
18 | 20 |
// Ball-shaped objects: map the 2D swipes of user's fingers to 3D rotations |
19 | 21 |
|
... | ... | |
33 | 35 |
private float mLongitude, mLatitude; |
34 | 36 |
private float mX, mY, mZ; |
35 | 37 |
|
38 |
private static final float X = (float)Math.sqrt( (2-SQ2)/(6+SQ2) ); |
|
39 |
private static final float Y = (float)Math.sqrt( (2+SQ2)/(6+SQ2) ); |
|
40 |
|
|
41 |
public static final Static3D[] FACE_AXIS = new Static3D[] |
|
42 |
{ |
|
43 |
new Static3D( X, Y, Y), |
|
44 |
new Static3D( X,-Y, Y), |
|
45 |
new Static3D( Y, Y, X), |
|
46 |
new Static3D( Y,-Y, X), |
|
47 |
new Static3D( Y, Y,-X), |
|
48 |
new Static3D( Y,-Y,-X), |
|
49 |
new Static3D( X, Y,-Y), |
|
50 |
new Static3D( X,-Y,-Y), |
|
51 |
new Static3D(-X, Y,-Y), |
|
52 |
new Static3D(-X,-Y,-Y), |
|
53 |
new Static3D(-Y, Y,-X), |
|
54 |
new Static3D(-Y,-Y,-X), |
|
55 |
new Static3D(-Y, Y, X), |
|
56 |
new Static3D(-Y,-Y, X), |
|
57 |
new Static3D(-X, Y, Y), |
|
58 |
new Static3D(-X,-Y, Y), |
|
59 |
}; |
|
60 |
|
|
36 | 61 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
37 | 62 |
|
38 | 63 |
public TouchControlBall(TwistyObject object) |
Also available in: Unified diff
Make it possible to create Diamond and Icosahedron-shaped objects to be read from json.