1 //
2 //  KTMutableMatrix
3 //  KTMatrix collection class cluster
4 //
5 //  Extends the KTMatrix class cluster with mutator methods
6 //
7 //  Copyright (c) 2002 Chris Purcell. All rights reserved.
8 //
9 //  You may use this code for whatever purposes you wish.
10 //  This code comes with no warranties, implied or otherwise.
11 //  Using it may damage your data. It shouldn't, but save a copy first.
12 //  That's a good idea anyway, actually.
13 //
14 
15 #import <Foundation/Foundation.h>
16 #import "KTMatrix.h"
17 
18 @interface KTMutableMatrix : KTMatrix { }
19 
20 // Constructors
21 // Note: matrixWithLocationHash no longer primitive (calls WithCapacity:0)
22 //       Nor is initWithLocationCache (ditto)
23 + (id)matrixWithCapacity:(unsigned)numItems
24           locationHash:(id<KTLocationHash>)hash; // Primitive
25 + (id)matrixWithCapacity:(unsigned)numItems
26         cuboidBoundArray:(NSArray *)bounds;
27 + (id)matrixWithCapacity:(unsigned)numItems
28             cuboidBounds:(unsigned)bound1,...;
29 - (id)initWithCapacity:(unsigned)numItems
30           locationHash:(id<KTLocationHash>)hash; // Primitive
31 - (id)initWithCapacity:(unsigned)numItems
32       cuboidBoundArray:(NSArray *)bounds;
33 - (id)initWithCapacity:(unsigned)numItems
34           cuboidBounds:(unsigned)bound1,...;
35 
36 // Setters
37 - (void)setMatrix:(KTMatrix *)matrix; // Primitive
38 
39 - (void)setObject:(id)object
40        atLocation:(NSDictionary *)loc1;
41 - (void)setObject:(id)object
42        atLocation:(NSDictionary *)loc1
43        byLocation:(NSDictionary *)loc2; // Primitive
44 - (void)        setObject:(id)object
45         atCoordinateArray:(NSArray *)coords;
46 - (void)    setObject:(id)object
47         atCoordinates:(unsigned)x,...;
48 - (void)setObjects:(NSArray *)objects
49        atLocations:(NSArray *)locs;
50 - (void)setObjects:(NSArray *)objects
51        atLocations:(NSArray *)loc1s
52         byLocation:(NSDictionary *)loc2;
53 - (void)setObjects:(NSArray *)objects
54        atLocations:(NSArray *)loc1s
55        byLocations:(NSArray *)loc2s;
56 - (void)setObjectsAtLocations:(id)firstObject,...;
57 - (void)setObjectsAtLocationsByLocations:(id)firstObject,...;
58 - (void)        setObjects:(NSArray *)objects
59         atCoordinateArrays:(NSArray *)coordinateArrays;
60 - (void)setObjectsAtCoordinates:(id)firstObject,...;
61 
62 - (void)removeObjectAtLocation:(NSDictionary *)loc;
63 - (void)removeObjectAtLocation:(NSDictionary *)loc1
64                     byLocation:(NSDictionary *)loc2; // Primitive
65 - (void)removeObjectAtCoordinateArray:(NSArray *)coords;
66 - (void)removeObjectAtCoordinates:(unsigned)x,...;
67 - (void)removeObjectsAtLocations:(NSArray *)locs;
68 - (void)removeObjectsAtLocations:(NSArray *)loc1s
69                       byLocation:(NSDictionary *)loc2;
70 - (void)removeObjectsAtLocations:(NSArray *)loc1s
71                      byLocations:(NSArray *)loc2s;
72 - (void)removeObjectsAtCoordinateArrays:(NSArray *)coordinateArrays;
73 
74 - (void)removeAllObjects; // Primitive
75 
76 @end
77