//
//  LCShadedMaterialFilter.h
//  LogoistCore
//
//  Created by Mendel Kucharzeck on 27.12.11.
//  Copyright 2011 AvisNocturna Software. All rights reserved.
//

#import "LCBaseFilter.h"
#import <AvisNocturnaCrossCore/ANImageHelper-Bevel.h>

@class LCShadedMaterial;

enum _LCShadedMaterialFilter_Surface
{
    LCShadedMaterialFilter_Surface_Clean = 0,
    LCShadedMaterialFilter_Surface_Bumps = 1,
    LCShadedMaterialFilter_Surface_Waves = 2,
    LCShadedMaterialFilter_Surface_Raster = 3
    
}typedef LCShadedMaterialFilter_Surface;

@interface LCShadedMaterialFilter : LCBaseFilter
{
    ANBevelType bevelType;
    LCShadedMaterial *shadedMaterial;
    
    float radius;
    float furtherRoundingFactor;
    float distributionFactor;
    float rotation;
    
    LCShadedMaterialFilter_Surface surface;
    float surfaceStrength;
    float surfaceSize;

    BOOL disableUpdatesFromShadedMaterial;
}

@property (assign) ANBevelType bevelType;
@property (retain) LCShadedMaterial *shadedMaterial;

@property (assign) float radius;
@property (assign) float furtherRoundingFactor;
@property (assign) float distributionFactor;
@property (assign) float rotation;

@property (assign) LCShadedMaterialFilter_Surface surface;
@property (assign) float surfaceStrength;
@property (assign) float surfaceSize;

//Disables updates from shadedMaterial notifications, useful when batch-atlering the shadedmaterial
@property (assign) BOOL disableUpdatesFromShadedMaterial;

@end
