1#ifndef UTILITY_H
2#define UTILITY_H
3
4
5#include <Rect.h>
6
7
8inline BPoint
9scale_direct(float x, float y, BRect area)
10{
11	return BPoint(area.Width() * x + area.left, area.Height() * y + area.top);
12}
13
14
15inline BRect
16scale_direct(float x1, float x2, float y1, float y2, BRect area)
17{
18	return BRect(area.Width() * x1 + area.left, area.Height() * y1 + area.top,
19		area.Width()* x2 + area.left, area.Height() * y2 + area.top);
20}
21
22static const float kPositionalX[] = { 0, 0.1, 0.25, 0.3, 0.7, 0.75, 0.9, 1.0 };
23static const float kPositionalY[] = { 0, 0.1, 0.7, 0.8, 0.9, 1.0 };
24
25inline BPoint
26scale(int x, int y,BRect area)
27{
28	return scale_direct(kPositionalX[x], kPositionalY[y], area);
29}
30
31
32inline BRect
33scale(int x1, int x2, int y1, int y2,BRect area)
34{
35	return scale_direct(kPositionalX[x1], kPositionalX[x2],
36		kPositionalY[y1], kPositionalY[y2], area);
37}
38
39
40#endif	// UTILITY_H
41