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
scale_direct(float x,float y,BRect area)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
scale_direct(float x1,float x2,float y1,float y2,BRect area)167cae4a1eSAxel Dörfler scale_direct(float x1, float x2, float y1, float y2, BRect area)
177cae4a1eSAxel Dörfler {
18c0a4294eSKarsten Heimrich return BRect(area.Width() * x1 + area.left, area.Height() * y1 + area.top,
19c0a4294eSKarsten Heimrich area.Width()* x2 + area.left, area.Height() * y2 + area.top);
207cae4a1eSAxel Dörfler }
217cae4a1eSAxel Dörfler
22*23ca081aSJohn Scipione static const float kPositionalX[] = { 0, 0.1, 0.25, 0.3, 0.7, 0.75, 0.9, 1.0 };
23*23ca081aSJohn Scipione static const float kPositionalY[] = { 0, 0.1, 0.7, 0.8, 0.9, 1.0 };
247cae4a1eSAxel Dörfler
257cae4a1eSAxel Dörfler inline BPoint
scale(int x,int y,BRect area)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
scale(int x1,int x2,int y1,int y2,BRect area)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
39*23ca081aSJohn Scipione
407cae4a1eSAxel Dörfler #endif // UTILITY_H
41