Sketch.solve() returns solve result as integer

This commit is contained in:
Josh Holtrop 2011-07-27 18:27:11 -04:00
parent b95e8e8789
commit 409783d01f

View File

@ -2,6 +2,11 @@
from numpy import * from numpy import *
from FuncDesigner import * from FuncDesigner import *
UNDERCONSTRAINED = 0
OVERCONSTRAINED = 1
SOLVED = 2
NO_SOLUTION = 3
class Sketch(object): class Sketch(object):
def __init__(self): def __init__(self):
self.shapes = [] self.shapes = []
@ -35,7 +40,10 @@ class Sketch(object):
dim = self.num_constraints dim = self.num_constraints
if self.num_variables > dim: if self.num_variables > dim:
dim = self.num_variables dim = self.num_variables
if self.num_variables == self.num_constraints: if self.num_variables < self.num_constraints:
return OVERCONSTRAINED
elif self.num_variables > self.num_constraints:
return UNDERCONSTRAINED
sle_equs = [] sle_equs = []
variables = oovars(dim) variables = oovars(dim)
for e in equations: for e in equations:
@ -47,11 +55,11 @@ class Sketch(object):
s = sle(sle_equs) s = sle(sle_equs)
r = s.solve() r = s.solve()
if r.ff != float('inf'): if r.ff != float('inf'):
print "SOLVED: ", r(variables) # print "SOLVED: ", r(variables)
for i in range(len(variables)): for i in range(len(variables)):
varid_to_shape_var[i][0].setVar(varid_to_shape_var[i][1], varid_to_shape_var[i][0].setVar(varid_to_shape_var[i][1],
r(variables[i])) r(variables[i]))
for s in self.shapes: # for s in self.shapes:
print 'shape:', repr(s.vars) # print 'shape:', repr(s.vars)
return True return SOLVED
return False return NO_SOLUTION