Threaded Pattern Generation Organised

Made numerous subclasses of Wave Patterns allowing easy
generation/regeneration of patterns. Use GenerateWavePatterns