Revision f8c52090
Added by Leszek Koltunski 12 months ago
src/main/java/org/distorted/bandaged/BandagedObjectPyraminx.java | ||
---|---|---|
27 | 27 |
|
28 | 28 |
public class BandagedObjectPyraminx extends BandagedObject |
29 | 29 |
{ |
30 |
BandagedObjectPyraminx(DistortedScreen screen)
|
|
31 |
{
|
|
32 |
super(screen);
|
|
33 |
}
|
|
30 |
BandagedObjectPyraminx(DistortedScreen screen) |
|
31 |
{ |
|
32 |
super(screen); |
|
33 |
} |
|
34 | 34 |
|
35 | 35 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
36 | 36 |
|
... | ... | |
80 | 80 |
|
81 | 81 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
82 | 82 |
|
83 |
float[] getDist3D()
|
|
84 |
{
|
|
85 |
float d = mSize[0]*SQ6/12;
|
|
86 |
return new float[] {d,d,d,d};
|
|
87 |
}
|
|
83 |
float[] getDist3D() |
|
84 |
{ |
|
85 |
float d = mSize[0]*SQ6/12; |
|
86 |
return new float[] {d,d,d,d}; |
|
87 |
} |
|
88 | 88 |
|
89 | 89 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
90 | 90 |
|
91 |
float getDist2D()
|
|
92 |
{
|
|
93 |
return SQ3/6;
|
|
94 |
}
|
|
91 |
float getDist2D() |
|
92 |
{ |
|
93 |
return SQ3/6; |
|
94 |
} |
|
95 | 95 |
|
96 | 96 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
97 | 97 |
|
98 |
int[] getColors()
|
|
99 |
{
|
|
100 |
return ShapeTetrahedron.FACE_COLORS;
|
|
101 |
}
|
|
98 |
int[] getColors() |
|
99 |
{ |
|
100 |
return ShapeTetrahedron.FACE_COLORS; |
|
101 |
} |
|
102 | 102 |
|
103 | 103 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
104 | 104 |
|
... | ... | |
110 | 110 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
111 | 111 |
|
112 | 112 |
boolean tryChangeObject(int x, int y, int z) |
113 |
{
|
|
114 |
if( mSize[0]!=x )
|
|
115 |
{
|
|
116 |
mSize[0] = x;
|
|
117 |
mMax = mSize[0];
|
|
118 |
int numOcta = (x-1)*x*(x+1)/6;
|
|
119 |
int numTetra= x*(x+1)*(x+2)/6;
|
|
120 |
mNumCubits = numOcta + numTetra;
|
|
121 |
return true;
|
|
122 |
}
|
|
113 |
{ |
|
114 |
if( mSize[0]!=x ) |
|
115 |
{ |
|
116 |
mSize[0] = x; |
|
117 |
mMax = mSize[0]; |
|
118 |
int numOcta = (x-1)*x*(x+1)/6; |
|
119 |
int numTetra= x*(x+1)*(x+2)/6; |
|
120 |
mNumCubits = numOcta + numTetra; |
|
121 |
return true; |
|
122 |
} |
|
123 | 123 |
|
124 |
return false;
|
|
125 |
}
|
|
124 |
return false; |
|
125 |
} |
|
126 | 126 |
|
127 | 127 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
128 | 128 |
|
129 | 129 |
int computeProjectionAngle() |
130 |
{
|
|
131 |
return 120;
|
|
132 |
}
|
|
130 |
{ |
|
131 |
return 120; |
|
132 |
} |
|
133 | 133 |
|
134 | 134 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
135 | 135 |
|
... | ... | |
166 | 166 |
|
167 | 167 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
168 | 168 |
|
169 |
MeshBase createMesh(int variant, float[] pos, boolean round)
|
|
170 |
{
|
|
171 |
FactoryBandagedPyraminx factory = FactoryBandagedPyraminx.getInstance();
|
|
172 |
return factory.createMesh(variant,pos,mSize[0],false,round);
|
|
173 |
}
|
|
169 |
MeshBase createMesh(float[] pos, boolean round) |
|
170 |
{ |
|
171 |
FactoryBandagedPyraminx factory = FactoryBandagedPyraminx.getInstance(); |
|
172 |
return factory.createMesh(pos,mSize[0],false,round);
|
|
173 |
} |
|
174 | 174 |
|
175 | 175 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
176 | 176 |
|
177 | 177 |
TwistyObject createObject(int mode, float size) |
178 |
{
|
|
179 |
float[][] pos = getCubitPositions();
|
|
180 |
InitData data = new InitData( mSize,pos);
|
|
181 |
return new TwistyBandagedPyraminx( TwistyObject.MESH_NICE, mode, ShapeTetrahedron.DEFAULT_ROT, new Static3D(0,0,0), size, data, null );
|
|
182 |
}
|
|
178 |
{ |
|
179 |
float[][] pos = getCubitPositions(); |
|
180 |
InitData data = new InitData( mSize,pos); |
|
181 |
return new TwistyBandagedPyraminx( TwistyObject.MESH_NICE, mode, ShapeTetrahedron.DEFAULT_ROT, new Static3D(0,0,0), size, data, null ); |
|
182 |
} |
|
183 | 183 |
} |
Also available in: Unified diff
generalize FactoryBandagedCuboid: start removing 'cuboidal' assumptions from it.