#ifndef Heuristics_H #define Heuristics_H /* Last edited on 2007-02-03 18:39:53 by stolfi */ /* A couple of complex-3D-regularization heuristics. */ #include #include void EquaAngle(Place_t p, Coords_t *c, bool_vec_t *variable, ElemTableRec_t *top); /* Move the neighbors of {u==OrgV(a)}, so as to equalize the diedral angles between walls incidents to @{edge->?} {u v} with {v==OrgV(Clock(a))}. Only moves knots that are marked {variable}. */ void FlattenKnot(Place_t p, Coords_t *c, bool_vec_t *variable, rand_t *coins); /* [COMMENTED OUT IN THE M3 SOURCE !!!] Positions {v==OrgV(a)} at the barycenter of its neighbors, displaced along the normal by an amount that hopefully minimizes the bending energy between the walls incident to {v} and the walls adjacent to them. A no-op if {v} is not marked variable. */ */ #endif