Class MooreGen

java.lang.Object
net.paulhertz.pixelaudio.PixelMapGen
net.paulhertz.pixelaudio.MooreGen

public class MooreGen extends PixelMapGen
Generates a Moore curve over a square bitmap starting at (width/2 - 1, 0) and ending at (width/2, 0). Width and height must be equal powers of 2. You can also call MooreGen(int depth) and width and height will equal Math.pow(2, depth). The Moore curve is generated by rotating and reflecting 4 copies of a Hilbert curve with a depth of recursion one level lower.
See Also:
  • Field Details

  • Constructor Details

    • MooreGen

      public MooreGen(int width, int height, AffineTransformType type)
    • MooreGen

      public MooreGen(int width, int height)
    • MooreGen

      public MooreGen(int depth)
    • MooreGen

      public MooreGen(int depth, AffineTransformType type)
  • Method Details

    • describe

      public String describe()
      Specified by:
      describe in class PixelMapGen
      Returns:
      A String describing the mapping generated by your class and any initialization requirements.
    • validate

      public boolean validate(int width, int height)
      Specified by:
      validate in class PixelMapGen
      Returns:
      true if the width and height parameters are valid for creating a mapping with this generator, otherwise, false.
    • generate

      public int[] generate()
      Description copied from class: PixelMapGen

      Initialization method that sets this.coords, and then this.pixelMap and this.sampleMap: this.coords is a list of coordinate pairs representing the signal path, the (x,y) pixel locations along a path that visits every pixel in a bitmap exactly once. Once you have created it, you can call setMapsFromCoords() to set this.pixelMap and this.sampleMap automatically.

      generate() must be called from your class, so that you can initialize any local variables before generating coordinates and LUTs. The best place to call it is typically on the last line of the constructor for your class, after calling super() on the first line and after initializing any local variables needed to generate your coordinates and LUTs. You must initialize this.coords, this.pixelMap, and this.sampleMap within generate(). See DiagonalZigzagGen or HilbertGen for sample code.

      Specified by:
      generate in class PixelMapGen
      Returns:
      this.pixelMap, the value for PixelAudioMapper.signalToImageLUT.