public class SimpleRhomb extends java.lang.Object implements Rhomb, java.io.Serializable
Modifier and Type | Field and Description |
---|---|
SimpleRhomb[] |
adjacent
The rhombs that share edges in common with this one.
|
int |
angle
Orientation.
|
Point |
p
For plotting in the plane.
|
static long |
serialVersionUID
For serialization.
|
int |
type
The congruence class of rhomb.
|
Point |
v1
A vector indicating the first outward-pointing edge from
p . |
Point |
v2
A vector indicating the second outward-pointing edge from
p . |
Constructor and Description |
---|
SimpleRhomb(Point p,
Point v1,
Point v2,
int type,
int angle)
Public constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
addAdjacent(SimpleRhomb other,
int a,
boolean first)
Add another SimpleRhomb to the adjacency list.
|
java.lang.String |
adjacencyString()
String representation of this, including all the rhombs to which it's adjacent.
|
void |
collapse()
Remove this SimpleRhomb.
|
Point |
commonEdge(SimpleRhomb other)
Find the edge direction vector that this and another rhomb have in common.
|
SimpleRhomb |
createSimpleRhomb()
This already is a SimpleRhomb, so return this.
|
static SimpleRhomb |
createSimpleRhomb(Point p,
Point v1,
Point v2,
int type,
int angle)
Public static factory method.
|
boolean |
equals(java.lang.Object obj)
Two SimpleRhombs are equal if they have the same type, the same angle, and the same corner.
|
static java.util.List<Hex> |
flip(SimpleRhomb[] triple,
boolean[] directions)
Flip the positions of the given three rhombs.
|
java.lang.String |
gapString()
String representation for gap.
|
int |
getAngle()
Getter method.
|
Point |
getPoint()
Getter method.
|
SimplePolygon2D |
getRhomb()
Getter method.
|
double |
getScale()
Get the scale for drawing the Rhomb.
|
int |
getType()
Getter method.
|
Point[] |
getVert()
Getter method.
|
int |
hashCode()
Use the corner, the type, and the angle.
|
boolean |
onEdge()
Determine if this SimpleRhomb is on the edge of a pseudoline arrangement.
|
SimplePolygon2D |
outline(Point[] infl,
int[] edge)
Return a SimlePolygon2D representing the inflation of this rhomb
by the given factor, with edges distorted according to the given
edge sequence.
|
java.lang.String |
postscriptString()
String representation for Postscript.
|
SimpleRhomb |
rotate(int rotationAngle)
Rotate a SimpleRhomb by the given angle
|
void |
setScale(double s)
Reset the scale for drawing the Rhomb.
|
boolean |
shareEdge(SimpleRhomb other)
Determine if this shares an edge with another SimpleRhomb.
|
void |
shift(Point vector)
Shift the point by a given vector.
|
java.util.List<Point> |
supertile(Point[] infl,
int[] edge)
Return a List of
Point s representing the inflation of this rhomb
by the given factor, with edges distorted according to the given
edge sequence. |
java.lang.String |
toString()
String representation of this.
|
SimpleRhomb |
transform(int rot,
Point move) |
SimpleRhomb |
translate(Point move)
Shift the point by a given vector.
|
public static final long serialVersionUID
public Point p
public final int type
public final int angle
public final SimpleRhomb[] adjacent
public SimpleRhomb(Point p, Point v1, Point v2, int type, int angle)
p
- A reference point indicating the corner of the rhomb with even angle and two outward-pointing arrows.v1
- A vector representation of the first outward-pointing edge from p.v2
- A vector representation of the second outward-pointing edge from p.type
- A number indicating the congruence class of the rhomb.angle
- An integer multiple of pi/Point.N()
representing the
angle the rhomb makes with the positive x-axis.public static SimpleRhomb createSimpleRhomb(Point p, Point v1, Point v2, int type, int angle)
p
- A reference point indicating the corner of the rhomb with even angle and two outward-pointing arrows.v1
- A vector representation of the first outward-pointing edge from p.v2
- A vector representation of the second outward-pointing edge from p.type
- A number indicating the congruence class of the rhomb.angle
- An integer multiple of pi/Point.N()
representing the
angle the rhomb makes with the positive x-axis.public SimpleRhomb createSimpleRhomb()
createSimpleRhomb
in interface Rhomb
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public int getType()
public Point getPoint()
public Point[] getVert()
public SimpleRhomb rotate(int rotationAngle)
rotationAngle
- public boolean onEdge()
public void collapse()
public void shift(Point vector)
public static java.util.List<Hex> flip(SimpleRhomb[] triple, boolean[] directions)
SimpleHex.flip()
. The rhombs aren't shifted here; we shift
them in that method instead.triple
- The three rhombs that we flip.directions
- For each rhomb in triple, do we shift it by the positive or the negative
of the direction vector common to the two other rhombs?SimpleHex
es created or destroyed by this flip.public void setScale(double s)
public double getScale()
public Point commonEdge(SimpleRhomb other)
other
- The other rhomb.public boolean shareEdge(SimpleRhomb other)
other
- The other rhomb.public SimplePolygon2D getRhomb()
public int getAngle()
public void addAdjacent(SimpleRhomb other, int a, boolean first)
other
- The rhomb we add.a
- The angle that other makes with the positive x-axis.first
- Tells us if other is listed before this in a Yarn.public java.lang.String postscriptString()
postscriptString
in interface Rhomb
public java.lang.String gapString()
public java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String adjacencyString()
public SimpleRhomb transform(int rot, Point move)
public SimpleRhomb translate(Point move)
move
- The vector by which we shift point.public java.util.List<Point> supertile(Point[] infl, int[] edge)
Point
s representing the inflation of this rhomb
by the given factor, with edges distorted according to the given
edge sequence.infl
- The inflation factor, represented as a matrix.edge
- The edge sequence used to distort the edges.public SimplePolygon2D outline(Point[] infl, int[] edge)
infl
- The inflation factor, represented as a matrix.edge
- The edge sequence used to distort the edges.