|
Open Graph Drawing Framework |
v. 2023.09 (Elderberry)
|
|
|
Go to the documentation of this file.
41 namespace energybased {
59 double& aspect_ratio_area,
double& bounding_rectangles_area);
84 PQueue& total_width_of_row);
Helping data structure for MAARPacking.
The namespace for all OGDF objects.
Priority queue interface wrapping various heaps.
Rectangle tipp_over(ListIterator< Rectangle > rect_item)
Tipps *rect_item over, by newly calculatting its width, height, and old_dlc values (Coordinates of th...
PreSort
Specifies how connected components are sorted before the packing algorithm is applied.
Declaration of class PackingRowInfo.
ListIterator< PackingRowInfo > find_Best_Fit_insert_position(ListIterator< Rectangle > rect_item, FMMMOptions::TipOver allow_tipping_over, double aspect_ratio, double &aspect_ratio_area, PQueue &total_width_of_row)
Finds the Best Fit insert positions of *rect_item and returns the corresp. ListIterator in P or nullp...
void presort_rectangles_by_width(List< Rectangle > &R)
Sorts elemets of R with momotonously decreasing width.
Defines a queue for handling prioritized elements.
double calculate_bounding_rectangles_area(List< Rectangle > &R)
Returns the area of the bounding rectangles in R.
Helping data structure for packing rectangles; The width, height and the position of the down left co...
TipOver
Specifies in which case it is allowed to tip over drawings of connected components.
bool better_tipp_rectangle_in_new_row(Rectangle r, double aspect_ratio, FMMMOptions::TipOver allow_tipping_over, double &best_area)
Returns true if the aspect_ratio_area of the acual packing becomes better, when tipping r over bevore...
Doubly linked lists (maintaining the length of the list).
Declaration of class Rectangle.
void B_F_insert_rectangle(Rectangle r, List< PackingRowInfo > &P, List< ListIterator< PackingRowInfo >> &row_of_rectangle, ListIterator< PackingRowInfo > B_F_item, PQueue &total_width_of_row)
Inserts r into the row with corresponding ListIterator B_F_item and updates total_width_of_row.
void presort_rectangles_by_height(List< Rectangle > &R)
Sorts elemets of R with momotonously dedreasing height.
double area_width
total width of the packing area
Declaration of doubly linked lists and iterators.
bool better_tipp_rectangle_in_this_row(Rectangle r, double aspect_ratio, FMMMOptions::TipOver allow_tipping_over, PackingRowInfo B_F_row, double &best_area)
Returns true if the aspect_ratio_area of the acual packing becomes better, when tipping r over bevore...
Encapsulates a pointer to a list element.
void export_new_rectangle_positions(List< PackingRowInfo > &P, List< ListIterator< PackingRowInfo >> &row_of_rectangle, List< ListIterator< Rectangle >> &rectangle_order)
The information in P and row_of_rectangle are used to generate the new down left coordinates of the r...
double calculate_aspect_ratio_area(double w, double h, double r)
Calculate the aspect ratio area of a rectangle with width w and height h and the given aspect ratio r...
void B_F_insert_rectangle_in_new_row(Rectangle r, List< PackingRowInfo > &P, List< ListIterator< PackingRowInfo >> &row_of_rectangle, PQueue &total_width_of_row)
Creates a new empty row in P and inserts r into this row (by updating P, row_of_rectangle and total_w...
data structure for packing rectangles within an area of a desired aspect ratio without overlappings; ...
double area_height
total height of the packing area
Declaration of Fast Multipole Multilevel Method (FM^3) options.
void pack_rectangles_using_Best_Fit_strategy(List< Rectangle > &R, double aspect_ratio, FMMMOptions::PreSort presort, FMMMOptions::TipOver allow_tipping_over, double &aspect_ratio_area, double &bounding_rectangles_area)
The rectangles in R are packed using the First Fit tiling stratey (precisely the new down left corner...