1/*
2 * Copyright 2006-2008, Haiku.
3 * Distributed under the terms of the MIT License.
4 *
5 * Authors:
6 *		Artur Wyszynski <harakash@gmail.com>
7 */
8
9#include <Point.h>
10#include <Gradient.h>
11#include <GradientRadialFocus.h>
12
13
14// constructor
15BGradientRadialFocus::BGradientRadialFocus()
16{
17	fData.radial_focus.cx = 0.0f;
18	fData.radial_focus.cy = 0.0f;
19	fData.radial_focus.fx = 0.0f;
20	fData.radial_focus.fy = 0.0f;
21	fData.radial_focus.radius = 0.0f;
22	fType = TYPE_RADIAL_FOCUS;
23}
24
25
26// constructor
27BGradientRadialFocus::BGradientRadialFocus(const BPoint& center, float radius,
28	const BPoint& focal)
29{
30	fData.radial_focus.cx = center.x;
31	fData.radial_focus.cy = center.y;
32	fData.radial_focus.fx = focal.x;
33	fData.radial_focus.fy = focal.y;
34	fData.radial_focus.radius = radius;
35	fType = TYPE_RADIAL_FOCUS;
36}
37
38
39// constructor
40BGradientRadialFocus::BGradientRadialFocus(float cx, float cy, float radius,
41	float fx, float fy)
42{
43	fData.radial_focus.cx = cx;
44	fData.radial_focus.cy = cy;
45	fData.radial_focus.fx = fx;
46	fData.radial_focus.fy = fy;
47	fData.radial_focus.radius = radius;
48	fType = TYPE_RADIAL_FOCUS;
49}
50
51
52// Center
53BPoint
54BGradientRadialFocus::Center() const
55{
56	return BPoint(fData.radial_focus.cx, fData.radial_focus.cy);
57}
58
59
60// SetCenter
61void
62BGradientRadialFocus::SetCenter(const BPoint& center)
63{
64	fData.radial_focus.cx = center.x;
65	fData.radial_focus.cy = center.y;
66}
67
68
69// SetCenter
70void
71BGradientRadialFocus::SetCenter(float cx, float cy)
72{
73	fData.radial_focus.cx = cx;
74	fData.radial_focus.cy = cy;
75}
76
77
78// Focal
79BPoint
80BGradientRadialFocus::Focal() const
81{
82	return BPoint(fData.radial_focus.fx, fData.radial_focus.fy);
83}
84
85
86// SetFocal
87void
88BGradientRadialFocus::SetFocal(const BPoint& focal)
89{
90	fData.radial_focus.fx = focal.x;
91	fData.radial_focus.fy = focal.y;
92}
93
94
95// SetFocal
96void
97BGradientRadialFocus::SetFocal(float fx, float fy)
98{
99	fData.radial_focus.fx = fx;
100	fData.radial_focus.fy = fy;
101}
102
103
104// Radius
105float
106BGradientRadialFocus::Radius() const
107{
108	return fData.radial_focus.radius;
109}
110
111
112// SetRadius
113void
114BGradientRadialFocus::SetRadius(float radius)
115{
116	fData.radial_focus.radius = radius;
117}
118