//
//  MPPowerFunctionLayout.h
//  MathKit
//
//  Created by Kim Wittenburg on 30.09.14.
//  Copyright (c) 2014 Kim Wittenburg. All rights reserved.
//

#import "MPFunctionLayout.h"


/*!
 @header
 This file contains the <code>MPPowerFunctionLayout</code> class.
 */



@class MPPowerFunctionLayout, MPPowerFunction;


/*!
    @class      MPPowerFunctionLayout
    @abstract   A power function layout displays a <code>@link
                //apple_ref/occ/cl/MPPowerFunction@/link</code>.
 
    @discussion A power function layout draws its child at the top right of the
                base. Because of this the power function layout has a special
                property that gets set during the drawing of an expression:
                <code>@link
                //apple_ref/occ/instp/MPPowerFunctionLayout/baseBounds@/link</code>.
 */
@interface MPPowerFunctionLayout : MPFunctionLayout

/*!
    @property   baseBounds
    @abstract   The bounds of the expression that is the base of the receiving
                power function layout.
 
    @discussion This value should be considered very volatile. It may change even
                if the power function itself didn't. This value is guaranteed to
                stay the same only during a single cycle of drawing.
 */
@property (nonatomic) NSRect baseBounds;

/*!
    @method     powerFunction
    @abstract   Returns the <code>@link
                //apple_ref/occ/cl/MPPowerFunction@/link</code> represented by
                the receiver.
 */
- (MPPowerFunction *)powerFunction;

@end
