|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.xistrat.bean.FastFace
public class FastFace
FaceData should be organized in such a way that standard methods run fast
neisF has replaced neisP
Field Summary | |
---|---|
int[] |
adjustHelper
|
java.util.LinkedList<EdgeData> |
boundary_edges
|
int[][] |
face
|
FaceData |
faceData
|
int |
faces
|
int[][] |
fJ
|
int[][][] |
fJE
|
java.util.LinkedList<EdgeData> |
flips
|
java.util.LinkedList<java.util.LinkedList<java.util.LinkedList<java.lang.Integer>>> |
glueLines
|
java.util.LinkedList<java.util.LinkedList<EdgeData>> |
holes
|
java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> |
holesF
|
java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> |
innerBoundaries
|
java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> |
innerRotis
|
int[][] |
neisF
|
int[][] |
neisP
|
static int |
NOTSET
|
int[][] |
pJ
|
int[][][] |
pJjE
|
int |
poly
|
int |
polygons
|
int[] |
reverseAH
|
java.util.LinkedList<EdgeData> |
roti_edges
|
java.util.LinkedList<java.util.LinkedList<EdgeData>> |
rotis
|
java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> |
rotisF
|
Constructor Summary | |
---|---|
FastFace()
|
|
FastFace(FaceData faceData)
|
|
FastFace(FaceData faceData,
java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> innerBoundaries)
|
Method Summary | |
---|---|
void |
buildJEs(int _vertices)
replacing fJ |
void |
buildRotis(boolean[] isRoti)
find out about the area to be rotated in atomic Rubik move: give them their vertices, as if they would have been stored in database as regular face (with arbitrary number of edges though) |
void |
buildRotisF(boolean[] isRoti)
(for now it seems nobody uses the rotisF) |
void |
debugInnerLines(java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> lines)
used for debugging of inner boundaries |
void |
debugLines(java.util.LinkedList<java.util.LinkedList<java.util.LinkedList<java.lang.Integer>>> lines)
used for debugging |
int |
getD(int location,
int precessor,
int next)
uses neisP |
EdgeData |
getEdgeByIndex(int index)
|
int |
getFD(int location,
int precessor,
int next)
uses neisF |
int |
getFJ(int precessor,
int location)
how to use the fJ (awareness of reflected states) |
int |
getFNByEdge(EdgeData edge)
used in holesF, holeF creating |
int |
getFNByEdge(EdgeData edge,
int a)
|
int |
getFNWithD(int location,
int precessor,
int distInEdges)
uses neisF |
int |
getGlueFJ(java.util.LinkedList<java.lang.Integer> glueShape,
int help_stand)
goal is s.th. like fJ, but this time for glueShapes |
java.util.LinkedList<java.lang.Integer> |
getGlueShape(int i)
|
int |
getJ(int a,
int b)
uses neisF assumes that faces or holes a and b are connected at max once used for computing the label of the directed edge for holes edges we don't need this method |
int |
getNumberOfLines(int value)
|
int |
getNWithD(int location,
int precessor,
int distInEdges)
for now use neisP, later will use neisF |
int |
getPNByEdge(EdgeData edge)
used in holesF, holeF creating |
int |
getPNByEdge(EdgeData edge,
int a)
|
int |
getPNByEdge(EdgeData edge,
int a,
boolean identicIsOK)
used in creation of neisP, neisF, adjusts... |
int |
getPointJ(int p,
int i)
get j such that face[j][i] = p; |
int |
getPStandByEdgeIndex(int index)
Deprecated. |
int |
getRotFNByEdge(EdgeData edge,
boolean[] isRoti)
used for Rubik things |
int |
getRotPNByEdge(EdgeData edge,
boolean[] isRoti)
used for Rubik things |
int |
getRotPNByEdge(EdgeData edge,
int a,
boolean[] isRoti)
used for Rubik things |
int |
getStandByEdgeIndex(int index)
|
void |
listEdges()
invoke flips filling for cover group stuff |
boolean |
notContainedInBoundary(int i)
|
int |
reflStuff(int help_stand,
int help_next)
behavior for two touching boundaries as usual pay attention in case both ids belong to boundaries, because then next is changed downwards and the other upwards (and vice versa) |
void |
repairRotis(boolean[] isRoti)
more cutting and gluing of rotis edges chains in case they have points in common, and building of another inner lines (but aren't used later on) (yes, it's copy paste from repairHoles() ) (didn't fusionate because somewhere here holes might play a role as well ?!) |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int NOTSET
public int[][] neisF
public int[][] neisP
public int poly
public int polygons
public int faces
public int[][] face
public FaceData faceData
public int[] adjustHelper
public int[] reverseAH
public int[][] pJ
public int[][] fJ
public int[][][] pJjE
public int[][][] fJE
public java.util.LinkedList<EdgeData> boundary_edges
public java.util.LinkedList<java.util.LinkedList<EdgeData>> holes
public java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> holesF
public java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> innerBoundaries
public java.util.LinkedList<java.util.LinkedList<java.util.LinkedList<java.lang.Integer>>> glueLines
public java.util.LinkedList<EdgeData> roti_edges
public java.util.LinkedList<java.util.LinkedList<EdgeData>> rotis
public java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> innerRotis
public java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> rotisF
public java.util.LinkedList<EdgeData> flips
Constructor Detail |
---|
public FastFace()
public FastFace(FaceData faceData)
public FastFace(FaceData faceData, java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> innerBoundaries)
Method Detail |
---|
public int getNumberOfLines(int value)
public void debugInnerLines(java.util.LinkedList<java.util.LinkedList<java.lang.Integer>> lines)
public void debugLines(java.util.LinkedList<java.util.LinkedList<java.util.LinkedList<java.lang.Integer>>> lines)
public int getPointJ(int p, int i)
public int getPNByEdge(EdgeData edge, int a)
public int getPNByEdge(EdgeData edge, int a, boolean identicIsOK)
edge
- between a valid face and a valid face or a holea
- index within [0, .., polygons-1] of a definitely valid face (no hole) we know already, we seek the other part
public int getRotPNByEdge(EdgeData edge, int a, boolean[] isRoti)
edge
- between an (unrotated, for now valid) face and another valid face or a holea
- index of a definitely unrotated (for now valid face) we know already
public int getFNByEdge(EdgeData edge, int a)
public int getFNByEdge(EdgeData edge)
edge
- between a hole and a regular face
public int getRotFNByEdge(EdgeData edge, boolean[] isRoti)
edge
- between an rotated face (or hole later on) and an unrotated thing
public int getPNByEdge(EdgeData edge)
edge
- between a hole and a regular face
public int getRotPNByEdge(EdgeData edge, boolean[] isRoti)
edge
- between a 'to be rotated' and a regular face (or a hole)
public int getJ(int a, int b)
assumes that faces or holes a and b are connected at max once used for computing the label of the directed edge for holes edges we don't need this method
public int getFNWithD(int location, int precessor, int distInEdges)
public int getNWithD(int location, int precessor, int distInEdges)
public int getD(int location, int precessor, int next)
public int getFD(int location, int precessor, int next)
public EdgeData getEdgeByIndex(int index)
public int getPStandByEdgeIndex(int index)
index
- edge starts at 0 (permutation starts at 1 though)
public int getStandByEdgeIndex(int index)
index
- edge starts at 0 (permutation starts at 1 though)
public void buildJEs(int _vertices)
_vertices
- number of point labels
int[][][] pJjE having an edge of a polygon b, wanted pJjE[b][edge[0]][edge[1]]=j such that face[j][b], face[(j+1)%poly][b] = edge
int[][][] fJE having an edge of a face b, wanted fJE[b][edge[0]][edge[1]]=j such that neisF[b][j] goes over this edgepublic int reflStuff(int help_stand, int help_next)
as usual pay attention in case both ids belong to boundaries, because then next is changed downwards and the other upwards (and vice versa)
public int getFJ(int precessor, int location)
getGlueFJ(java.util.LinkedList, int)
public int getGlueFJ(java.util.LinkedList<java.lang.Integer> glueShape, int help_stand)
getFJ(int, int)
public java.util.LinkedList<java.lang.Integer> getGlueShape(int i)
i
- within [0, .., faces-1]
return null in case face is not contained in an inner boundary line,
else return reference to the corresponding glueShape
in case multiple glueShapes could serve, more info should have been supplemented
see other methodpublic boolean notContainedInBoundary(int i)
i
- within [0, .., faces-1]
public void buildRotis(boolean[] isRoti)
public void repairRotis(boolean[] isRoti)
attention: it's only partly implemented for corner cases involving holes
public void buildRotisF(boolean[] isRoti)
public void listEdges()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |