Sketch.solve() returns solve result as integer
This commit is contained in:
parent
b95e8e8789
commit
409783d01f
20
Sketch.py
20
Sketch.py
@ -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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user