geosolver.clsolver
index
/home/rick/Programming/Python/GeoSolver/geosolver/clsolver.py

A generic geometric constraint solver. 
 
This module provides basic functionality for 
ClusterSolver2D and ClusterSolver3D.
 
The solver finds a generic solution
for problems formulated by Clusters. The generic solution 
is a directed acyclic graph of Clusters and Methods. Particilar problems
and solutions are represented by a Configuration for each cluster.

 
Classes
       
geosolver.multimethod.MultiMethod(geosolver.method.Method)
ClusterMethod
PrototypeMethod
geosolver.notify.Notifier
ClusterSolver

 
class ClusterMethod(geosolver.multimethod.MultiMethod)
    A derive is a method such that a single ouput cluster is a 
subconsraint of a single input cluster.
 
 
Method resolution order:
ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self)
prototype_constraints(self)
status_str(self)

Methods inherited from geosolver.multimethod.MultiMethod:
execute(self, inmap)
calls multi_execute for each permutation of multi-valued input variables and collects
result in multi-valued ouput variables. Subclasses should implement multi_execute.

Methods inherited from geosolver.method.Method:
inputs(self)
return a list of input variables
 
If an attribute '_inputs' has been defined, a new list
with the contents of that attribute will be returned. 
Subclasses may choose to initialise this variable or to 
override this function.
outputs(self)
return a list of output variables
 
If an attribute '_outputs' has been defined, a new list
with the contents of that attribute will be returned. 
Subclasses may choose to initialise this variable or to 
override this function.

 
class ClusterSolver(geosolver.notify.Notifier)
    Constraints are Clusers: Rigids, Hedgehogs and Balloons. 
After adding each cluster, the solver tries to merge
clusters, adding new clusters and methods between clusters.
 
  Methods defined here:
__init__(self, dimension)
Create a new empty solver
__str__(self)
add(self, cluster)
Add a cluster. 
 
arguments:
   cluster: A Rigid
angles(self)
get list of angles
balloons(self)
get list of balloons
contains(self, obj)
distances(self)
get list of distances
find_dependend(self, object)
Return a list of objects that depend on given object directly.
find_depends(self, object)
Return a list of objects that the given object depends on directly
get(self, cluster)
Return a set of configurations associated with a cluster
hedgehogs(self)
get list of hedgehogs
is_top_level(self, object)
methods(self)
get list of methods
remove(self, cluster)
Remove a cluster. 
All dependend objects are also removed.
rigids(self)
get list of rigids
set(self, cluster, configurations)
Associate a list of configurations with a cluster
set_root(self, rigid)
Make given rigid cluster the root cluster
 
arguments:
   cluster: A Rigid
top_level(self)
get top-level objects
variables(self)
get list of variables

Methods inherited from geosolver.notify.Notifier:
add_listener(self, listener)
add a listener to the list (and self to listers' list)
rem_listener(self, listener)
remove a listener from the list (and self from listers' list)
send_notify(self, message)
send a message to all listeners

 
class PrototypeMethod(geosolver.multimethod.MultiMethod)
    PrototypeMethod selects those solutions of a cluster for which
the protoype and the solution satisfy the same constraints.
 
 
Method resolution order:
PrototypeMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, incluster, selclusters, outcluster, constraints)
multi_execute(self, inmap)

Methods inherited from geosolver.multimethod.MultiMethod:
execute(self, inmap)
calls multi_execute for each permutation of multi-valued input variables and collects
result in multi-valued ouput variables. Subclasses should implement multi_execute.

Methods inherited from geosolver.method.Method:
inputs(self)
return a list of input variables
 
If an attribute '_inputs' has been defined, a new list
with the contents of that attribute will be returned. 
Subclasses may choose to initialise this variable or to 
override this function.
outputs(self)
return a list of output variables
 
If an attribute '_outputs' has been defined, a new list
with the contents of that attribute will be returned. 
Subclasses may choose to initialise this variable or to 
override this function.

 
Functions
       
is_information_increasing(method)