Archived
1

Model Redesign: Added Reference Frames

Added Inverse Functions
UI Redesign
Cleaned Code
This commit is contained in:
Kim Wittenburg
2014-10-07 20:25:54 +02:00
parent 8f2f773909
commit 82259f87e2
40 changed files with 1124 additions and 998 deletions

View File

@@ -31,6 +31,9 @@ static MPEvaluationContext *sharedContext;
self = [super init];
if (self) {
_stack = [[NSMutableArray alloc] init];
[self push];
[self defineVariable:@"e" withValue:[[NSDecimalNumber alloc] initWithDouble:M_E]];
[self defineVariable:@"π" withValue:[[NSDecimalNumber alloc] initWithDouble:M_PI]];
}
return self;
}
@@ -45,7 +48,7 @@ static MPEvaluationContext *sharedContext;
[self.stack removeLastObject];
}
- (void)defineVariable:(NSString *)variable withValue:(id)value
- (void)defineVariable:(NSString *)variable withValue:(NSDecimalNumber *)value
{
NSMutableDictionary *currentBindings = self.stack.lastObject;
currentBindings[variable] = value;
@@ -59,8 +62,14 @@ static MPEvaluationContext *sharedContext;
- (NSDecimalNumber *)valueForVariable:(NSString *)variable
{
NSMutableDictionary *currentBindings = self.stack.lastObject;
return currentBindings[variable];
NSUInteger currentIndex = self.stack.count;
NSDictionary *currentBindings;
NSDecimalNumber *value = nil;
while (!value && currentIndex > 0) {
currentBindings = self.stack[--currentIndex];
value = currentBindings[variable];
}
return value;
}
- (BOOL)isVariableDefined:(NSString *)variable