quakeforge/ruamoko/lib/Rect.r
Jeff Teunissen 7713a539ca Okay, y'all...the Ruamoko root class, Object, has been replaced with another
class with the same name. This will break things. To support it, there are
three new classes, one of which is incomplete (AutoreleasePool). It'll get
finished soonish, but the rest of the class lib will need some updating to
work.
2003-07-29 18:02:03 +00:00

89 lines
1.2 KiB
R

#include "Object.h"
#include "Point.h"
#include "Size.h"
#include "Rect.h"
@implementation Rect
- (id) initWithComponents: (integer)x : (integer)y : (integer)w : (integer)h
{
self = [super init];
origin = [[Size alloc] initWithComponents: x : y];
size = [[Size alloc] initWithComponents: w : h];
return self;
}
- (id) initWithOrigin: (Point)anOrigin size: (Size)aSize
{
self = [super init];
if (!self || !anOrigin || !aSize)
return NIL;
origin = [anOrigin retain];
size = [aSize retain];
return self;
}
- (id) initWithRect: (Rect)aRect
{
self = [super init];
if (!self || !aRect)
return NIL;
[self setRect: aRect];
return self;
}
- (id) copy
{
local id myCopy = [super copy];
if (!myCopy)
myCopy = [[self class] alloc];
return [myCopy initWithOrigin: origin size: size];
}
- (Point) origin
{
return origin;
}
- (Size) size
{
return size;
}
- (void) setOrigin: (Point)aPoint
{
if (!aPoint)
return;
if (origin)
[origin release];
origin = [aPoint retain];
}
- (void) setSize: (Size)aSize
{
if (!aSize)
return;
if (size)
[size release];
size = [aSize retain];
}
- (void) setRect: (Rect)aRect
{
[self setOrigin: [aRect origin]];
[self setSize: [aRect size]];
}
@end