Project

General

Profile

« Previous | Next » 

Revision cc7dc72a

Added by Leszek Koltunski almost 5 years ago

Some progress with Pyraminx.

View differences:

src/main/java/org/distorted/object/RubikPyraminx.java
75 75

  
76 76
  Static3D[] getCubitPositions(int size)
77 77
    {
78
    /*
79
    int numCubits = size>1 ? 6*size*size - 12*size + 8 : 1;
78
    int numCubits = (size*size*size + 6*size*size -4*size)/3;
80 79
    Static3D[] tmp = new Static3D[numCubits];
81 80

  
82 81
    int currentPosition = 0;
83

  
84
    for(int x = 0; x<size; x++)
85
      for(int y = 0; y<size; y++)
86
        for(int z = 0; z<size; z++)
87
          if( x==0 || x==size-1 || y==0 || y==size-1 || z==0 || z==size-1 )
88
            {
89
            tmp[currentPosition++] = new Static3D(x,y,z);
90
            }
91

  
82
/*
83
    ??
84
      {
85
      tmp[currentPosition++] = new Static3D(x,y,z);
86
      }
87
*/
92 88
    return tmp;
93
    */
94
    return null;
95 89
    }
96 90

  
97 91
///////////////////////////////////////////////////////////////////////////////////////////////////
......
119 113

  
120 114
  void createFaceTexture(Canvas canvas, Paint paint, int face)
121 115
    {
122
    /*
123
    InputStream is = mView.getContext().getResources().openRawResource(R.raw.pyraminx);
124
    Bitmap bitmap;
116
    int xoffset = face*TEXTURE_HEIGHT;
117
    float STROKE = 0.05f*TEXTURE_HEIGHT;
118
    float OFF = STROKE/2 -1;
119
    float OFF2 = 0.577f*TEXTURE_HEIGHT + OFF;
120
    float HEIGHT = TEXTURE_HEIGHT - OFF;
121
    float RADIUS = TEXTURE_HEIGHT/12;
122
    float ARC1_H = 0.31f*TEXTURE_HEIGHT;
123
    float ARC1_W = TEXTURE_HEIGHT*0.5f;
124
    float ARC2_W = 0.152f*TEXTURE_HEIGHT;
125
    float ARC2_H = 0.91f*TEXTURE_HEIGHT;
126
    float ARC3_W = 0.847f*TEXTURE_HEIGHT;
127

  
128
    paint.setAntiAlias(true);
129
    paint.setStrokeWidth(STROKE);
130
    paint.setColor(FACE_COLORS[face]);
131
    paint.setStyle(Paint.Style.FILL);
125 132

  
126
    try
127
      {
128
      bitmap = BitmapFactory.decodeStream(is);
129
      }
130
    finally
131
      {
132
      try
133
        {
134
        is.close();
135
        }
136
      catch(IOException e) { }
137
      }
133
    canvas.drawRect(xoffset,0,xoffset+TEXTURE_HEIGHT,TEXTURE_HEIGHT,paint);
138 134

  
139
    paint.setColor(FACE_COLORS[face]);
140
    canvas.drawRect(face*TEXTURE_HEIGHT,0,(face+1)*TEXTURE_HEIGHT,TEXTURE_HEIGHT,paint);
141
    canvas.drawBitmap(bitmap,face*TEXTURE_HEIGHT,0,null);
142
    */
135
    paint.setColor(0xff000000);
136
    paint.setStyle(Paint.Style.STROKE);
137

  
138
    canvas.drawLine(                     xoffset,         HEIGHT,  TEXTURE_HEIGHT       +xoffset, HEIGHT, paint);
139
    canvas.drawLine(                OFF +xoffset, TEXTURE_HEIGHT,                 OFF2  +xoffset,      0, paint);
140
    canvas.drawLine((TEXTURE_HEIGHT-OFF)+xoffset, TEXTURE_HEIGHT, (TEXTURE_HEIGHT-OFF2) +xoffset,      0, paint);
141

  
142
    canvas.drawArc( ARC1_W-RADIUS+xoffset, ARC1_H-RADIUS, ARC1_W+RADIUS+xoffset, ARC1_H+RADIUS, 225, 90, false, paint);
143
    canvas.drawArc( ARC2_W-RADIUS+xoffset, ARC2_H-RADIUS, ARC2_W+RADIUS+xoffset, ARC2_H+RADIUS, 105, 90, false, paint);
144
    canvas.drawArc( ARC3_W-RADIUS+xoffset, ARC2_H-RADIUS, ARC3_W+RADIUS+xoffset, ARC2_H+RADIUS, 345, 90, false, paint);
143 145
    }
144 146

  
145 147
///////////////////////////////////////////////////////////////////////////////////////////////////
src/main/java/org/distorted/object/RubikPyraminxMovement.java
1
///////////////////////////////////////////////////////////////////////////////////////////////////
2
// Copyright 2020 Leszek Koltunski                                                               //
3
//                                                                                               //
4
// This file is part of Magic Cube.                                                              //
5
//                                                                                               //
6
// Magic Cube is free software: you can redistribute it and/or modify                            //
7
// it under the terms of the GNU General Public License as published by                          //
8
// the Free Software Foundation, either version 2 of the License, or                             //
9
// (at your option) any later version.                                                           //
10
//                                                                                               //
11
// Magic Cube is distributed in the hope that it will be useful,                                 //
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
14
// GNU General Public License for more details.                                                  //
15
//                                                                                               //
16
// You should have received a copy of the GNU General Public License                             //
17
// along with Magic Cube.  If not, see <http://www.gnu.org/licenses/>.                           //
18
///////////////////////////////////////////////////////////////////////////////////////////////////
19

  
20
package org.distorted.object;
21

  
22
import org.distorted.library.type.Static2D;
23
import org.distorted.library.type.Static4D;
24

  
25
///////////////////////////////////////////////////////////////////////////////////////////////////
26

  
27
class RubikPyraminxMovement extends RubikObjectMovement
28
{
29

  
30
///////////////////////////////////////////////////////////////////////////////////////////////////
31

  
32
    RubikPyraminxMovement()
33
      {
34

  
35
      }
36

  
37
///////////////////////////////////////////////////////////////////////////////////////////////////
38
// PUBLIC API
39
///////////////////////////////////////////////////////////////////////////////////////////////////
40

  
41
    public boolean faceTouched(Static4D rotatedTouchPoint, Static4D rotatedCamera)
42
      {
43
      float cubeHalfSize= RubikObject.OBJECT_SCREEN_RATIO*0.5f;
44

  
45
      return false;
46
      }
47

  
48
///////////////////////////////////////////////////////////////////////////////////////////////////
49

  
50
    public Static2D newRotation(Static4D rotatedTouchPoint)
51
      {
52
      return null;
53
      }
54

  
55
///////////////////////////////////////////////////////////////////////////////////////////////////
56

  
57
    public float continueRotation(Static4D rotatedTouchPoint)
58
      {
59
      return 0.0f;
60
      }
61
}

Also available in: Unified diff