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

#import "LCChangeManagerAwareObject.h"

@interface LCTimelineAnimateableObject : LCChangeManagerAwareObject
{
}

- (NSDictionary*) propertyEditDictionaryForPropertyKey:(NSString*)key;

- (NSString*) composedDisplayNameInTimeLineToObject:(LCTimelineAnimateableObject*)stopObject;   //Composes a string from this object by traversing superObjectForAnimation

//For Subclassers
- (NSString*) displayNameInTimeline;
- (NSString*) displayNameInTimelineForPropertyKey:(NSString*)key;
- (id) objectToGroupByInTimeline;

- (NSArray*) propertyEditDictionaries;  //Used for value editing in timeline, if not animateable include IsAnimateable with Value NO

- (LCTimelineAnimateableObject*) superObjectForAnimation;   //Return the object to use as a super object for this animateable object. Should ultimately reach objectToGroupByInTimeline 
- (NSArray*) animateableSubObjects;     //Used to check for subobjects which are also animateable (for example, filters in the object or the shaded material in the fill with shaded material filter)

@end
