Class Parallelogram
Implements the parallelogram primitive for reconfiguration.
See https://doi.org/10.4230/LIPIcs.SAND.2026.11.
The reconfiguration of an parallelogram where only the two sides incident to an obtuse corner are occupied by amoebots to a configuration
where the other two sides of the parallelogram are occupied.
The algorithm applies two shearing operations on the first (shorter side length + 1) amoebots starting from the outer ends and requires two rounds to complete.
Inheritance
object
Parallelogram
Assembly: .dll
Syntax
public class Parallelogram : Suboracle<Parallelogram>
Constructors
|
Edit this page
View Source
Parallelogram(Particle)
Declaration
public Parallelogram(Particle rep)
Parameters
Fields
|
Edit this page
View Source
allMembers
Declaration
private List<ParticleAlgorithm> allMembers
Field Value
|
Edit this page
View Source
anchor
Declaration
private ParticleAlgorithm anchor
Field Value
|
Edit this page
View Source
anchor2
Declaration
private ParticleAlgorithm anchor2
Field Value
|
Edit this page
View Source
line
Declaration
private List<ParticleAlgorithm> line
Field Value
|
Edit this page
View Source
line2
Declaration
private List<ParticleAlgorithm> line2
Field Value
|
Edit this page
View Source
lineDir
Declaration
private Direction lineDir
Field Value
|
Edit this page
View Source
lineDir2
Declaration
private Direction lineDir2
Field Value
|
Edit this page
View Source
round
Declaration
private ParticleAttribute<int> round
Field Value
|
Edit this page
View Source
shearSuboracle
Declaration
private Shear shearSuboracle
Field Value
|
Edit this page
View Source
shearSuboracle2
Declaration
private Shear shearSuboracle2
Field Value
Methods
|
Edit this page
View Source
GetMembers()
Declaration
public List<ParticleAlgorithm> GetMembers()
Returns
|
Edit this page
View Source
Init(List<Parallelogram>, Direction, ParticleAlgorithm)
Initializes the suboracle with the given members and direction
Declaration
public void Init(List<Parallelogram> memberParticles, Direction startDir = Direction.NONE, ParticleAlgorithm anchor = null)
Parameters
| Type |
Name |
Description |
| List<Parallelogram> |
memberParticles |
particles that are part of the parallelogram
|
| Direction |
startDir |
(optional) direction for the first line of the parallelogram
|
| ParticleAlgorithm |
anchor |
(optional) starting point of the parallelogram, connection point
|
|
Edit this page
View Source
OnActivate()
Activates the parallelogram suboracle, performing initialization and two shearing operations
Declaration
protected override bool OnActivate()
Returns
| Type |
Description |
| bool |
true if the algorithm is finished, false otherwise
|
Overrides
|
Edit this page
View Source
removeBonds()
Removes bonds from members (except for the connection points) to non-member particles
Declaration
private void removeBonds()