summaryrefslogtreecommitdiff
path: root/tikzit/src/common/GraphChange.m
diff options
context:
space:
mode:
Diffstat (limited to 'tikzit/src/common/GraphChange.m')
-rw-r--r--tikzit/src/common/GraphChange.m34
1 files changed, 34 insertions, 0 deletions
diff --git a/tikzit/src/common/GraphChange.m b/tikzit/src/common/GraphChange.m
index d09e732..3635383 100644
--- a/tikzit/src/common/GraphChange.m
+++ b/tikzit/src/common/GraphChange.m
@@ -142,6 +142,24 @@
}
}
+- (BasicMapTable*)oldEdgeTable { return oldEdgeTable; }
+
+- (void)setOldEdgeTable:(BasicMapTable*)tab {
+ if (oldEdgeTable != tab) {
+ [oldEdgeTable release];
+ oldEdgeTable = [tab retain];
+ }
+}
+
+- (BasicMapTable*)nwEdgeTable { return nwEdgeTable; }
+
+- (void)setNwEdgeTable:(BasicMapTable*)tab {
+ if (nwEdgeTable != tab) {
+ [nwEdgeTable release];
+ nwEdgeTable = [tab retain];
+ }
+}
+
- (NSRect)oldBoundingBox { return oldBoundingBox; }
- (void)setOldBoundingBox:(NSRect)bbox {
@@ -204,6 +222,11 @@
[inverse setOldEdge:[self nwEdge]];
[inverse setNwEdge:[self oldEdge]];
break;
+ case EdgesPropertyChange:
+ [inverse setChangeType:EdgesPropertyChange];
+ [inverse setOldEdgeTable:[self nwEdgeTable]];
+ [inverse setNwEdgeTable:[self oldEdgeTable]];
+ break;
case NodesShift:
[inverse setChangeType:NodesShift];
[inverse setAffectedNodes:[self affectedNodes]];
@@ -240,6 +263,8 @@
[oldEdge release];
[oldNodeTable release];
[nwNodeTable release];
+ [oldEdgeTable release];
+ [nwEdgeTable release];
[super dealloc];
}
@@ -287,6 +312,15 @@
return [gc autorelease];
}
++ (GraphChange*)propertyChangeOfEdgesFromOldCopies:(BasicMapTable*)oldC
+ toNewCopies:(BasicMapTable*)newC {
+ GraphChange *gc = [[GraphChange alloc] init];
+ [gc setChangeType:EdgesPropertyChange];
+ [gc setOldEdgeTable:oldC];
+ [gc setNwEdgeTable:newC];
+ return [gc autorelease];
+}
+
+ (GraphChange*)shiftNodes:(NSSet*)ns byPoint:(NSPoint)p {
GraphChange *gc = [[GraphChange alloc] init];
[gc setChangeType:NodesShift];