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

A generic 2D geometric constraint solver.
 
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.

 
Modules
       
math
re
sys
geosolver.vector

 
Classes
       
geosolver.clsolver.ClusterMethod(geosolver.multimethod.MultiMethod)
Derive
Balloon2Hog
Rigid2Hog
SubHog
Merge
BalloonFromHogs
BalloonMerge
BalloonRigidMerge
Merge1C
Merge2C
Merge3C
MergeBH
MergeCCH
MergeCH
MergeCHC
MergeHogs
geosolver.clsolver.ClusterSolver(geosolver.notify.Notifier)
ClusterSolver2D
geosolver.multimethod.MultiMethod(geosolver.method.Method)
PrototypeMethod

 
class Balloon2Hog(Derive)
    Represents a derivation of a hog from a balloon
 
 
Method resolution order:
Balloon2Hog
Derive
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, balloon, hog)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 BalloonFromHogs(Merge)
    Represent a balloon merged from two hogs
 
 
Method resolution order:
BalloonFromHogs
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, hog1, hog2, balloon)
Create a new balloon from two angles
 
keyword args:
 hog1 - a Hedghog 
 hog2 - a Hedehog
 balloon - a Balloon instance
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 BalloonMerge(Merge)
    Represents a merging of two balloons
 
 
Method resolution order:
BalloonMerge
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, in1, in2, out)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 BalloonRigidMerge(Merge)
    Represents a merging of a balloon and a cluster
 
 
Method resolution order:
BalloonRigidMerge
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, balloon, cluster, output)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 ClusterSolver2D(geosolver.clsolver.ClusterSolver)
    A generic 2D geometric constraint solver. 
 
Finds a geneneric solution for problems formulated by cluster-constraints.
 
Constraints are Clusers: Rigids, Hedgehogs and Balloons. 
Cluster are added and removed using the add and remove methods. 
After adding each Cluster, the solver tries to merge it with
other clusters, resulting in new Clusters and Methods.
 
For each Cluster a set of Configurations can be set using the
set method. Configurations are propagated via Methods and can
be retrieved with the get method.
 
 
Method resolution order:
ClusterSolver2D
geosolver.clsolver.ClusterSolver
geosolver.notify.Notifier

Methods defined here:
__init__(self)
Instantiate a ClusterSolver2D

Methods inherited from geosolver.clsolver.ClusterSolver:
__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 Derive(geosolver.clsolver.ClusterMethod)
    A merge is a method such that a single ouput cluster satisfies
all constraints in several input clusters. The output cluster
replaces the input clusters in the constriant problem
 
 
Method resolution order:
Derive
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 Merge(geosolver.clsolver.ClusterMethod)
    A derive is a method such that a single ouput cluster is a 
subconsraint of a single input cluster.
 
 
Method resolution order:
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 Merge1C(Merge)
    Represents a merging of a one-point cluster with any other cluster 
The first cluster determines the orientation of the resulting
cluster
 
 
Method resolution order:
Merge1C
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, in1, in2, out)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 Merge2C(Merge)
    Represents a merging of two clusters (overconstrained)
The first cluster determines the orientation of the resulting
cluster
 
 
Method resolution order:
Merge2C
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, in1, in2, out)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 Merge3C(Merge)
    Represents a merging of three clusters 
The first cluster determines the orientation of the resulting
cluster
 
 
Method resolution order:
Merge3C
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, c1, c2, c3, out)
__str__(self)
multi_execute(self, inmap)
prototype_constraints(self)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 MergeBH(Merge)
    Represents a merging of a balloon and a hog (where
the hog is absorbed by the balloon). Overconstrained.
 
 
Method resolution order:
MergeBH
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, balloon, hog, out)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 MergeCCH(Merge)
    Represents a merging of two clusters and a hedgehog
The first cluster determines the orientation of the resulting
cluster
 
 
Method resolution order:
MergeCCH
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, c1, c2, hog, out)
__str__(self)
multi_execute(self, inmap)
prototype_constraints(self)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 MergeCH(Merge)
    Represents a merging of a cluster and a hog (where
the hog is absorbed by the cluster). Overconstrained.
 
 
Method resolution order:
MergeCH
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, cluster, hog, out)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 MergeCHC(Merge)
    Represents a merging of two clusters and a hedgehog
The first cluster determines the orientation of the resulting
cluster
 
 
Method resolution order:
MergeCHC
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, c1, hog, c2, out)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 MergeHogs(Merge)
    Represents a merging of two hogs to form a new hog
 
 
Method resolution order:
MergeHogs
Merge
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, hog1, hog2, output)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 PrototypeMethod(geosolver.multimethod.MultiMethod)
    
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.

 
class Rigid2Hog(Derive)
    Represents a derivation of a hog from a c)luster
 
 
Method resolution order:
Rigid2Hog
Derive
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, cluster, hog)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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 SubHog(Derive)
    
Method resolution order:
SubHog
Derive
geosolver.clsolver.ClusterMethod
geosolver.multimethod.MultiMethod
geosolver.method.Method

Methods defined here:
__init__(self, hog, sub)
__str__(self)
multi_execute(self, inmap)

Methods inherited from geosolver.clsolver.ClusterMethod:
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.

 
Functions
       
solve_ada(a, b, c, a_cab, d_ab, a_abc)
solve_add(a, b, c, a_cab, d_ab, d_bc)
solve_dad(v1, v2, v3, d12, a123, d23)
solve_ddd(v1, v2, v3, d12, d23, d31)

 
Data
        NegInf = geosolver.tolerance.NegInf
PosInf = geosolver.tolerance.PosInf
default_tol = 9.9999999999999995e-07
diag_selector = <_sre.SRE_Pattern object at 0xb7ec9b60>
diag_stream = <open file '<stdout>', mode 'w' at 0xb7eb3068>