62 lines
1.1 KiB
Mathematica
62 lines
1.1 KiB
Mathematica
|
/**
|
||
|
* Copyright (c) 2015-present, Horcrux.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the MIT-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree.
|
||
|
*/
|
||
|
|
||
|
#import "RNSVGEllipse.h"
|
||
|
#import <React/RCTLog.h>
|
||
|
|
||
|
@implementation RNSVGEllipse
|
||
|
|
||
|
- (void)setCx:(NSString *)cx
|
||
|
{
|
||
|
if (cx == _cx) {
|
||
|
return;
|
||
|
}
|
||
|
[self invalidate];
|
||
|
_cx = cx;
|
||
|
}
|
||
|
|
||
|
- (void)setCy:(NSString *)cy
|
||
|
{
|
||
|
if (cy == _cy) {
|
||
|
return;
|
||
|
}
|
||
|
[self invalidate];
|
||
|
_cy = cy;
|
||
|
}
|
||
|
|
||
|
- (void)setRx:(NSString *)rx
|
||
|
{
|
||
|
if (rx == _rx) {
|
||
|
return;
|
||
|
}
|
||
|
[self invalidate];
|
||
|
_rx = rx;
|
||
|
}
|
||
|
|
||
|
- (void)setRy:(NSString *)ry
|
||
|
{
|
||
|
if (ry == _ry) {
|
||
|
return;
|
||
|
}
|
||
|
[self invalidate];
|
||
|
_ry = ry;
|
||
|
}
|
||
|
|
||
|
- (CGPathRef)getPath:(CGContextRef)context
|
||
|
{
|
||
|
CGMutablePathRef path = CGPathCreateMutable();
|
||
|
CGFloat cx = [self relativeOnWidth:self.cx];
|
||
|
CGFloat cy = [self relativeOnHeight:self.cy];
|
||
|
CGFloat rx = [self relativeOnWidth:self.rx];
|
||
|
CGFloat ry = [self relativeOnHeight:self.ry];
|
||
|
CGPathAddEllipseInRect(path, nil, CGRectMake(cx - rx, cy - ry, rx * 2, ry * 2));
|
||
|
return (CGPathRef)CFAutorelease(path);
|
||
|
}
|
||
|
|
||
|
@end
|