org.xistrat.util
Class ExportOrbits

java.lang.Object
  extended by org.xistrat.util.ExportData
      extended by org.xistrat.util.ExportOrbits
Direct Known Subclasses:
ExportKnot, ExportMorph, ExportVector

public abstract class ExportOrbits
extends ExportData

containing orbit (trail) data

Since:
0.6.59

Field Summary
 
Fields inherited from class org.xistrat.util.ExportData
_vertices, _verts, faceData, fastFace, poly, polygons
 
Constructor Summary
ExportOrbits(java.lang.String graph, java.lang.String old_variant)
           
 
Method Summary
protected  java.util.LinkedList<java.lang.Integer> doMultiBodySP(int[][] pieceInfo, java.lang.String[] keys, FastFace fastFace)
          up to now only single-letter keys are allowed
protected  java.util.LinkedList<java.lang.Integer> doSP(int stand, int next, java.lang.String key, java.util.HashMap<java.lang.String,java.util.LinkedList<EdgeData>> etrls, int[] origin, FastFace fastFace)
          up to now only keys starting with a,b,A or B supported(!)
protected  void fillMultiBodyTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails)
          this method constructs the trails for a system of two Chess pieces of type A and opposite colour there are reasons to construct the orbits prior to a representation dump, because that way one orbit may be used several times later for different combinations of generators/labels at the moment we create the trails for all possible starting positions, this implies of course quite a lot of memory space consumption, and one could reuse a once contructed orbit in case a legal position to start with has already been reached within another trail before this would save some space, but later on the retrieval of the trails (given a position) would require more time, since one would have to search within the orbits a little bit. but there is certainly a way to avoid this problem by using a faster data structure like an array or a hashmap or whatsoever pay attention to the fact that the actual orbit and the originally intended places may not coincide due to dynamics
protected  java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails)
          method overloading
protected  java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, java.util.HashMap<java.lang.String,java.util.LinkedList<EdgeData>> etrls)
           
protected  java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, java.util.HashMap<java.lang.String,java.util.LinkedList<EdgeData>> etrls, int many)
           
protected  java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int many)
           
protected  java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int many, FastFace fast, FaceData data)
           
protected  int getAddon(java.lang.String key, java.lang.String is, int[] distIE)
           
protected  java.util.LinkedList<java.lang.Integer> getAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int precessor, int location, int precessor_, int location_, java.lang.String key, java.lang.String is, int[] distIE, FastFace fastFace)
           
protected  java.util.LinkedList<java.lang.Integer> getAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int precessor, int location, java.lang.String key, java.lang.String is, int[] distIE)
           
protected  java.util.LinkedList<java.lang.Integer> getAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int precessor, int location, java.lang.String key, java.lang.String is, int[] distIE, FastFace fastFace)
          single piece version
protected  int[] getDistIE(int help_next)
           
protected  int[] getDistIE(int help_next, FastFace fastFace)
          adaptive definition of what is straight
protected  java.util.LinkedList<java.lang.Integer> getMultiBodyAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int precessor, int location, int precessor_, int location_, int keyk, int isk, java.lang.String[] gens, int[] distIE, int[] distIE_)
           
protected  java.util.LinkedList<java.lang.Integer> getMultiBodyAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails, int precessor, int location, int precessor_, int location_, int keyk, int isk, java.lang.String[] gens, int[] distIE, int[] distIE_, FastFace fastFace)
           
protected  int getSummand(java.lang.String key, int[] distIE, int pointer)
          the following case shooting could be unified now that things are understood, see getAxis() for how to do this
protected  boolean isOrig(java.util.LinkedList<EdgeData> walk, java.util.LinkedList<java.util.LinkedList<EdgeData>> orig_walks)
          simply tests if a LinkedList is identical (regarding the contained values) to s.th. contained in a list of other lists
protected  java.util.LinkedList<java.lang.Integer> moveEndToFront(java.util.LinkedList<java.lang.Integer> list)
          move the last entries to the front of a list
protected  java.util.LinkedList<java.lang.Integer> moveFrontToEnd(java.util.LinkedList<java.lang.Integer> list)
          move the first 4 entries to the end of a list
 
Methods inherited from class org.xistrat.util.ExportData
main
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ExportOrbits

public ExportOrbits(java.lang.String graph,
                    java.lang.String old_variant)
Parameters:
graph - surface to be used
old_variant - optionally what variant
Method Detail

getDistIE

protected int[] getDistIE(int help_next)

getDistIE

protected int[] getDistIE(int help_next,
                          FastFace fastFace)
adaptive definition of what is straight

Since:
0.6.59

doSP

protected java.util.LinkedList<java.lang.Integer> doSP(int stand,
                                                       int next,
                                                       java.lang.String key,
                                                       java.util.HashMap<java.lang.String,java.util.LinkedList<EdgeData>> etrls,
                                                       int[] origin,
                                                       FastFace fastFace)
up to now only keys starting with a,b,A or B supported(!)

Since:
0.6.59

doMultiBodySP

protected java.util.LinkedList<java.lang.Integer> doMultiBodySP(int[][] pieceInfo,
                                                                java.lang.String[] keys,
                                                                FastFace fastFace)
up to now only single-letter keys are allowed

Parameters:
pieceInfo - is [0,1] [int stand, int next, int stand_, int next_]
keys -
fastFace -
Since:
0.6.90

moveEndToFront

protected java.util.LinkedList<java.lang.Integer> moveEndToFront(java.util.LinkedList<java.lang.Integer> list)
move the last entries to the front of a list

See Also:
moveFrontToEnd(java.util.LinkedList)

moveFrontToEnd

protected java.util.LinkedList<java.lang.Integer> moveFrontToEnd(java.util.LinkedList<java.lang.Integer> list)
move the first 4 entries to the end of a list

See Also:
moveEndToFront(java.util.LinkedList)

getSummand

protected int getSummand(java.lang.String key,
                         int[] distIE,
                         int pointer)
the following case shooting could be unified now that things are understood, see getAxis() for how to do this


getMultiBodyAxis

protected java.util.LinkedList<java.lang.Integer> getMultiBodyAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                                                   int precessor,
                                                                   int location,
                                                                   int precessor_,
                                                                   int location_,
                                                                   int keyk,
                                                                   int isk,
                                                                   java.lang.String[] gens,
                                                                   int[] distIE,
                                                                   int[] distIE_)
Since:
0.6.90

getMultiBodyAxis

protected java.util.LinkedList<java.lang.Integer> getMultiBodyAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                                                   int precessor,
                                                                   int location,
                                                                   int precessor_,
                                                                   int location_,
                                                                   int keyk,
                                                                   int isk,
                                                                   java.lang.String[] gens,
                                                                   int[] distIE,
                                                                   int[] distIE_,
                                                                   FastFace fastFace)
Since:
0.6.90

getAxis

protected java.util.LinkedList<java.lang.Integer> getAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                                          int precessor,
                                                          int location,
                                                          java.lang.String key,
                                                          java.lang.String is,
                                                          int[] distIE)

getAddon

protected int getAddon(java.lang.String key,
                       java.lang.String is,
                       int[] distIE)

getAxis

protected java.util.LinkedList<java.lang.Integer> getAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                                          int precessor,
                                                          int location,
                                                          java.lang.String key,
                                                          java.lang.String is,
                                                          int[] distIE,
                                                          FastFace fastFace)
single piece version


getAxis

protected java.util.LinkedList<java.lang.Integer> getAxis(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                                          int precessor,
                                                          int location,
                                                          int precessor_,
                                                          int location_,
                                                          java.lang.String key,
                                                          java.lang.String is,
                                                          int[] distIE,
                                                          FastFace fastFace)
Since:
0.6.59
See Also:
getSummand(java.lang.String, int[], int)

fillTrails

protected java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails)
method overloading

Parameters:
trails - a reference

fillTrails

protected java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                        java.util.HashMap<java.lang.String,java.util.LinkedList<EdgeData>> etrls)

fillTrails

protected java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                        int many)

fillTrails

protected java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                        java.util.HashMap<java.lang.String,java.util.LinkedList<EdgeData>> etrls,
                                        int many)

fillTrails

protected java.lang.String[] fillTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails,
                                        int many,
                                        FastFace fast,
                                        FaceData data)

fillMultiBodyTrails

protected void fillMultiBodyTrails(java.util.HashMap<java.lang.String,java.util.LinkedList<java.lang.Integer>> trails)
this method constructs the trails for a system of two Chess pieces of type A and opposite colour

there are reasons to construct the orbits prior to a representation dump, because that way one orbit may be used several times later for different combinations of generators/labels

at the moment we create the trails for all possible starting positions, this implies of course quite a lot of memory space consumption, and one could reuse a once contructed orbit in case a legal position to start with has already been reached within another trail before

this would save some space, but later on the retrieval of the trails (given a position) would require more time, since one would have to search within the orbits a little bit. but there is certainly a way to avoid this problem by using a faster data structure like an array or a hashmap or whatsoever

pay attention to the fact that the actual orbit and the originally intended places may not coincide due to dynamics

Parameters:
trails - references orbits to be filled
Since:
0.6.90
See Also:
fillTrails(java.util.HashMap>)

isOrig

protected boolean isOrig(java.util.LinkedList<EdgeData> walk,
                         java.util.LinkedList<java.util.LinkedList<EdgeData>> orig_walks)
simply tests if a LinkedList is identical (regarding the contained values) to s.th. contained in a list of other lists

Since:
0.6.90