mirror of
https://github.com/TextureGroup/Texture.git
synced 2026-04-07 19:17:39 +00:00
* Do not expose tgmath.h to all clients of Texture - tgmath.h #undef the `log` macro for mathematical reasons. Code that may also use a log name (such as CocoaLumberjack) will get confused by this when they try to use `NS_SWIFT_NAME` with `log` as part of the name. - `ABS` from NSObjCRuntime.h is what is typically used for abs on `CGFloat`. - Note: removing tgmath.h from the Texture umbrella header may expose clients that implicitly depended upon it being imported. Sources may have to be updated after this to `#import <tgmath.h>` explicitly.
49 lines
1.1 KiB
Objective-C
49 lines
1.1 KiB
Objective-C
//
|
|
// CoreGraphics+ASConvenience.h
|
|
// Texture
|
|
//
|
|
// Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
|
|
// Changes after 4/13/2017 are: Copyright (c) Pinterest, Inc. All rights reserved.
|
|
// Licensed under Apache 2.0: http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
|
|
#import <Foundation/Foundation.h>
|
|
#import <CoreGraphics/CoreGraphics.h>
|
|
#import <AsyncDisplayKit/ASBaseDefines.h>
|
|
|
|
|
|
#ifndef CGFLOAT_EPSILON
|
|
#if CGFLOAT_IS_DOUBLE
|
|
#define CGFLOAT_EPSILON DBL_EPSILON
|
|
#else
|
|
#define CGFLOAT_EPSILON FLT_EPSILON
|
|
#endif
|
|
#endif
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
ASDISPLAYNODE_INLINE CGFloat ASCGFloatFromString(NSString *string)
|
|
{
|
|
#if CGFLOAT_IS_DOUBLE
|
|
return string.doubleValue;
|
|
#else
|
|
return string.floatValue;
|
|
#endif
|
|
}
|
|
|
|
ASDISPLAYNODE_INLINE CGFloat ASCGFloatFromNumber(NSNumber *number)
|
|
{
|
|
#if CGFLOAT_IS_DOUBLE
|
|
return number.doubleValue;
|
|
#else
|
|
return number.floatValue;
|
|
#endif
|
|
}
|
|
|
|
ASDISPLAYNODE_INLINE BOOL CGSizeEqualToSizeWithIn(CGSize size1, CGSize size2, CGFloat delta)
|
|
{
|
|
return ABS(size1.width - size2.width) < delta && ABS(size1.height - size2.height) < delta;
|
|
};
|
|
|
|
NS_ASSUME_NONNULL_END
|