Project

General

Profile

« Previous | Next » 

Revision 27249eea

Added by Leszek Koltunski over 1 year ago

Produce new JSONs files (version 7, with new scrambling method)

View differences:

src/main/java/org/distorted/objectlib/objects/TwistyMorphix.java
18 18
import org.distorted.objectlib.helpers.ObjectVertexEffects;
19 19
import org.distorted.objectlib.main.InitData;
20 20
import org.distorted.objectlib.main.ObjectType;
21
import org.distorted.objectlib.scrambling.ScrambleEdgeGenerator;
21 22
import org.distorted.objectlib.shape.ShapeTetrahedron;
22 23
import org.distorted.objectlib.touchcontrol.TouchControlTetrahedron;
23 24

  
......
73 74

  
74 75
///////////////////////////////////////////////////////////////////////////////////////////////////
75 76

  
76
  private void insertSection(int[] table, int startIndex, int size, int startAlg, int state)
77
    {
78
    for(int i=0; i<size; i++)
79
      {
80
      table[2*(i+startIndex)  ] = startAlg +i;
81
      table[2*(i+startIndex)+1] = state;
82
      }
83
    }
84

  
85
///////////////////////////////////////////////////////////////////////////////////////////////////
86

  
87
  private int[] createEdge(int sizeX, int sizeY, int sizeZ, int stateX, int stateY, int stateZ)
88
    {
89
    int num = 0;
90
    if( stateX>=0 ) num += (3*sizeX);
91
    if( stateY>=0 ) num += (3*sizeY);
92
    if( stateZ>=0 ) num += (3*sizeZ);
93

  
94
    int[] ret = new int[2*num];
95

  
96
    if( stateX>=0 )
97
      {
98
      insertSection(ret,0,3*sizeX,0,stateX);
99
      if( stateY>=0 )
100
        {
101
        insertSection(ret,3*sizeX,3*sizeY,3*sizeX,stateY);
102
        if( stateZ>=0 ) insertSection(ret,3*sizeX+3*sizeY,3*sizeZ,3*sizeX+3*sizeY,stateZ);
103
        }
104
      else
105
        {
106
        insertSection(ret,3*sizeX,3*sizeZ,3*sizeX+3*sizeY,stateZ);
107
        }
108
      }
109
    else
110
      {
111
      if( stateY>=0 )
112
        {
113
        insertSection(ret,0,3*sizeY,3*sizeX,stateY);
114
        if( stateZ>=0 ) insertSection(ret,3*sizeY,3*sizeZ,3*sizeX+3*sizeY,stateZ);
115
        }
116
      else
117
        {
118
        insertSection(ret,0,3*sizeZ,3*sizeX+3*sizeY,stateZ);
119
        }
120
      }
121

  
122
    return ret;
123
    }
124

  
125
///////////////////////////////////////////////////////////////////////////////////////////////////
126
// same as in a non-flat cuboids
127

  
128 77
  public int[][] getScrambleEdges()
129 78
    {
130 79
    if( mEdges==null )
131 80
      {
132
      int[] numLayers = getNumLayers();
133

  
134
      int X = numLayers[0];
135
      int Y = numLayers[1];
136
      int Z = numLayers[2];
137

  
138
      mEdges = new int[][]
139
        {
140
        createEdge(X,Y,Z, 1, 2, 3), // 0 0
141
        createEdge(X,Y,Z,-1, 4, 5), // 1 x
142
        createEdge(X,Y,Z, 6,-1, 7), // 2 y
143
        createEdge(X,Y,Z, 8, 9,-1), // 3 z
144
        createEdge(X,Y,Z,10,-1, 7), // 4 xy
145
        createEdge(X,Y,Z,11, 9,-1), // 5 xz
146
        createEdge(X,Y,Z,-1,12, 5), // 6 yx
147
        createEdge(X,Y,Z, 8,13,-1), // 7 yz
148
        createEdge(X,Y,Z,-1, 4,14), // 8 zx
149
        createEdge(X,Y,Z, 6,-1,15), // 9 zy
150
        createEdge(X,Y,Z,-1,-1, 5), // 10 xyx
151
        createEdge(X,Y,Z,-1, 4,-1), // 11 xzx
152
        createEdge(X,Y,Z,-1,-1, 7), // 12 yxy
153
        createEdge(X,Y,Z, 6,-1,-1), // 13 yzy
154
        createEdge(X,Y,Z,-1, 9,-1), // 14 zxz
155
        createEdge(X,Y,Z, 8,-1,-1), // 15 zyz
156
        };
81
      int nL = getNumLayers()[0];
82
      mEdges = ScrambleEdgeGenerator.getScrambleEdgesCuboid(nL,nL,nL);
157 83
      }
158 84

  
159 85
    return mEdges;
160 86
    }
161 87

  
162
///////////////////////////////////////////////////////////////////////////////////////////////////
163

  
164
  private int[] createEdges(int size, int vertex)
165
    {
166
    int[] ret = new int[9*size];
167

  
168
    for(int l=0; l<size; l++)
169
      {
170
      ret[9*l  ] = l;
171
      ret[9*l+1] =-1;
172
      ret[9*l+2] = vertex;
173
      ret[9*l+3] = l;
174
      ret[9*l+4] = 1;
175
      ret[9*l+5] = vertex;
176
      ret[9*l+6] = l;
177
      ret[9*l+7] = 2;
178
      ret[9*l+8] = vertex;
179
      }
180

  
181
    return ret;
182
    }
183

  
184 88
///////////////////////////////////////////////////////////////////////////////////////////////////
185 89

  
186 90
  public float[][] getCuts(int[] numLayers)

Also available in: Unified diff