17cae4a1eSAxel Dörfler #ifndef UTILITY_H 27cae4a1eSAxel Dörfler #define UTILITY_H 37cae4a1eSAxel Dörfler 47cae4a1eSAxel Dörfler 57cae4a1eSAxel Dörfler #include <Rect.h> 67cae4a1eSAxel Dörfler 77cae4a1eSAxel Dörfler 87cae4a1eSAxel Dörfler inline BPoint 97cae4a1eSAxel Dörfler scale_direct(float x, float y, BRect area) 107cae4a1eSAxel Dörfler { 117cae4a1eSAxel Dörfler return BPoint(area.Width() * x + area.left, area.Height() * y + area.top); 127cae4a1eSAxel Dörfler } 137cae4a1eSAxel Dörfler 147cae4a1eSAxel Dörfler 157cae4a1eSAxel Dörfler inline BRect 167cae4a1eSAxel Dörfler scale_direct(float x1, float x2, float y1, float y2, BRect area) 177cae4a1eSAxel Dörfler { 18*c0a4294eSKarsten Heimrich return BRect(area.Width() * x1 + area.left, area.Height() * y1 + area.top, 19*c0a4294eSKarsten Heimrich area.Width()* x2 + area.left, area.Height() * y2 + area.top); 207cae4a1eSAxel Dörfler } 217cae4a1eSAxel Dörfler 227cae4a1eSAxel Dörfler static const float kPositionalX[] = { 0, .1, .25, .3, .7, .75, .9, 1.0 }; 237cae4a1eSAxel Dörfler static const float kPositionalY[] = { 0, .1, .7, .8, .9, 1.0 }; 247cae4a1eSAxel Dörfler 257cae4a1eSAxel Dörfler inline BPoint 267cae4a1eSAxel Dörfler scale(int x, int y,BRect area) 277cae4a1eSAxel Dörfler { 287cae4a1eSAxel Dörfler return scale_direct(kPositionalX[x], kPositionalY[y], area); 297cae4a1eSAxel Dörfler } 307cae4a1eSAxel Dörfler 317cae4a1eSAxel Dörfler 327cae4a1eSAxel Dörfler inline BRect 337cae4a1eSAxel Dörfler scale(int x1, int x2, int y1, int y2,BRect area) 347cae4a1eSAxel Dörfler { 357cae4a1eSAxel Dörfler return scale_direct(kPositionalX[x1], kPositionalX[x2], 367cae4a1eSAxel Dörfler kPositionalY[y1], kPositionalY[y2], area); 377cae4a1eSAxel Dörfler } 387cae4a1eSAxel Dörfler 397cae4a1eSAxel Dörfler #endif // UTILITY_H 40