Center Placement Heuristic. More...
#include <rplacementcenter.h>
Public Member Functions | |
RPlacementCenter (size_t maxobjs, bool calc, bool use, RRandom &r, RParamStruct *dist, RParamStruct *area, bool firstrandom, bool ori) | |
virtual void | Init (RProblem2D *prob, RLayout *layout, RGrid *grid) |
virtual void | SearchValidPositions (RGeoInfo *info) |
virtual void | PostPlace (RGeoInfo *info, const RPoint &pos) |
virtual void | PostRun (void) |
virtual | ~RPlacementCenter (void) |
Public Member Functions inherited from RPlacementHeuristic | |
RPlacementHeuristic (size_t maxobjs, bool calc, bool use, RRandom &r, RParamStruct *dist, RParamStruct *area, bool firstrandom, bool ori) | |
RGeoInfo * | NextObject (void) |
void | Run (RProblem2D *prob, RLayout *layout, RGrid *grid) |
void | AddValidPosition (RPoint &pos) |
RRect | GetResult (void) |
double | GetDistances (void) |
bool | IsEnd (void) |
size_t | GetNbObjsOk (void) |
RFreePolygons * | GetFreePolygons (void) |
RLayout * | GetLayout (void) const |
virtual | ~RPlacementHeuristic (void) |
Private Attributes | |
RPolygons | Sol |
RPolygon | Union |
RPoint | Attraction |
Additional Inherited Members | |
Protected Member Functions inherited from RPlacementHeuristic | |
virtual RGeoInfo * | SelectNextObject (void) |
Protected Attributes inherited from RPlacementHeuristic | |
RRandom & | Random |
RGrid * | Grid |
RLayout * | Layout |
RSize | Limits |
bool | WeightedDistances |
size_t | NbObjs |
size_t | NbObjsOk |
RRect | Result |
double | Distances |
RGeoInfo ** | Order |
RGeoInfo * | CurInfo |
RFreePolygons | Free |
bool | CalcFree |
bool | UseFree |
bool | AllOri |
RContainer< ObjectPos, true, false > | ValidPos |
RPromKernel | Prom |
RPromCriterion * | Dist |
const RParam * | DistParams |
RPromCriterion * | Area |
const RParam * | AreaParams |
bool | FirstRandom |
Detailed Description
Center Placement Heuristic.
The RPlacementCenter class provides the center heuristic. The heuristic places the first object in the center of the rectangle representing the limits. After that, the objects are placed so that the resulting rectangle is proportional to the limits.
The heuristic doubles the limits of the result during the placement. The PostRun method make then a translation of the bottom-left coin of the resulting rectangle to (0,0).
Constructor & Destructor Documentation
RPlacementCenter | ( | size_t | maxobjs, |
bool | calc, | ||
bool | use, | ||
RRandom & | r, | ||
RParamStruct * | dist, | ||
RParamStruct * | area, | ||
bool | firstrandom, | ||
bool | ori | ||
) |
Construct the center heuristic.
- Parameters
-
maxobjs The maximal number of objects to place. calc Must free polygons be calculated. use Must free polygons be used. r The random generator to use. dist Distance criteria parameters. area Area criteria parameters. firstrandom Must the first object be placed randomly? ori Must all orientation be tested.
|
virtual |
Destruct the heuristic.
Member Function Documentation
|
virtual |
Initialise the heuristic.
- Parameters
-
prob The problem. layout Layout. grid Grid.
Reimplemented from RPlacementHeuristic.
|
virtual |
Calculate all the possible positions to place a given object. The method must register these valid positions with the 'AddValidPosition' method.
- Parameters
-
info Geometric information representing the object placed.
Implements RPlacementHeuristic.
This method is called each time a given object is placed at a given position. It can be used to make some specific computational updates.
This method must update Result, the rectangle bounding all placed objects.
- Parameters
-
info Geometric information representing the object placed. pos The position where it is placed.
Implements RPlacementHeuristic.
|
virtual |
Do some operations after the run.
Reimplemented from RPlacementHeuristic.
Member Data Documentation
|
private |
The list of all the polygons representing objects already placed.
|
private |
The union of the placed objects.
|
private |
The attraction point, the middle of the limits rectangle.