//
//  LCBaseSpriteBasedGeneratedPattern.h
//  LogoistCore
//
//  Created by Mendel Kucharzeck on 20.06.12.
//  Copyright (c) 2012 AvisNocturna Software. All rights reserved.
//

#import "LCBaseGeneratedPattern.h"

enum _LCGeneratedPattern_PositionsMode
{
    LCGeneratedPattern_PositionsMode_Random = 0,
    LCGeneratedPattern_PositionsMode_Grid
}typedef LCGeneratedPattern_PositionsMode;

@interface LCBaseSpriteBasedGeneratedPattern : LCBaseGeneratedPattern
{
    LCGeneratedPattern_PositionsMode positionsMode;
    
    float blur;
        
    float rotation;
    float size;
    float sizeVariation;
    
    id backgroundColor;
    
    ANGeometry_PathMode pathMode;
    float strokeLineWidth;

    //For Random Mode
    NSInteger count;

    //For Grid Mode
    float spacing;
}

@property (assign) LCGeneratedPattern_PositionsMode positionsMode;

@property (assign) float blur;

@property (assign) float rotation;      //0..1
@property (assign) float size;
@property (assign) float sizeVariation;

@property (retain) id backgroundColor;

@property (assign) ANGeometry_PathMode pathMode;
@property (assign) float strokeLineWidth;

@property (assign) NSInteger count;
@property (assign) float spacing;

//For Subclassers
- (void) beginDrawingSprites;
- (void) drawSpriteInContext:(CGContextRef)context atPoint:(CGPoint)point withRotation:(float)rot andSize:(float)sizeInEachDirection andZoomFactor:(float)zoomFactor;
- (void) endDrawingSprites;

- (float) aspectSpriteRatio;    //Default is 1

@end
