1 /**************************************************************
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  *   http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20  *************************************************************/
21 
22 
23 
24 #ifndef _BGFX_RANGE_B1DRANGE_HXX
25 #define _BGFX_RANGE_B1DRANGE_HXX
26 
27 #include <basegfx/range/basicrange.hxx>
28 
29 
30 namespace basegfx
31 {
32     class B1IRange;
33 
34 	class B1DRange
35 	{
36 		::basegfx::BasicRange< double, DoubleTraits >	maRange;
37 
38 	public:
B1DRange()39 		B1DRange()
40 		{
41 		}
42 
B1DRange(double fStartValue)43 		explicit B1DRange(double fStartValue)
44 		:	maRange(fStartValue)
45 		{
46 		}
47 
B1DRange(double fStartValue1,double fStartValue2)48 		B1DRange(double fStartValue1, double fStartValue2)
49 		:	maRange(fStartValue1)
50 		{
51             expand(fStartValue2);
52 		}
53 
B1DRange(const B1DRange & rRange)54 		B1DRange(const B1DRange& rRange)
55 		:	maRange(rRange.maRange)
56 		{
57 		}
58 
59         explicit B1DRange( const B1IRange& rRange );
60 
isEmpty() const61 		bool isEmpty() const
62 		{
63 			return maRange.isEmpty();
64 		}
65 
reset()66 		void reset()
67 		{
68 			maRange.reset();
69 		}
70 
operator ==(const B1DRange & rRange) const71 		bool operator==( const B1DRange& rRange ) const
72 		{
73 			return (maRange == rRange.maRange);
74 		}
75 
operator !=(const B1DRange & rRange) const76 		bool operator!=( const B1DRange& rRange ) const
77 		{
78 			return (maRange != rRange.maRange);
79 		}
80 
operator =(const B1DRange & rRange)81 		B1DRange& operator=(const B1DRange& rRange)
82 		{
83 			maRange = rRange.maRange;
84 			return *this;
85 		}
86 
equal(const B1DRange & rRange) const87 		bool equal(const B1DRange& rRange) const
88         {
89 			return (maRange.equal(rRange.maRange));
90         }
91 
getMinimum() const92 		double getMinimum() const
93 		{
94 			return maRange.getMinimum();
95 		}
96 
getMaximum() const97 		double getMaximum() const
98 		{
99 			return maRange.getMaximum();
100 		}
101 
getRange() const102 		double getRange() const
103 		{
104 			return maRange.getRange();
105 		}
106 
getCenter() const107 		double getCenter() const
108 		{
109 			return maRange.getCenter();
110 		}
111 
isInside(double fValue) const112 		bool isInside(double fValue) const
113 		{
114 			return maRange.isInside(fValue);
115 		}
116 
isInside(const B1DRange & rRange) const117 		bool isInside(const B1DRange& rRange) const
118 		{
119 			return maRange.isInside(rRange.maRange);
120 		}
121 
overlaps(const B1DRange & rRange) const122 		bool overlaps(const B1DRange& rRange) const
123 		{
124 			return maRange.overlaps(rRange.maRange);
125 		}
126 
overlapsMore(const B1DRange & rRange) const127 		bool overlapsMore(const B1DRange& rRange) const
128 		{
129 			return maRange.overlapsMore(rRange.maRange);
130 		}
131 
expand(double fValue)132 		void expand(double fValue)
133 		{
134 			maRange.expand(fValue);
135 		}
136 
expand(const B1DRange & rRange)137 		void expand(const B1DRange& rRange)
138 		{
139 			maRange.expand(rRange.maRange);
140 		}
141 
intersect(const B1DRange & rRange)142 		void intersect(const B1DRange& rRange)
143 		{
144 			maRange.intersect(rRange.maRange);
145 		}
146 
grow(double fValue)147 		void grow(double fValue)
148 		{
149 			maRange.grow(fValue);
150 		}
151 	};
152 
153 	/** Round double to nearest integer for 1D range
154 
155 		@return the nearest integer for this range
156 	*/
157 	B1IRange fround(const B1DRange& rRange);
158 } // end of namespace basegfx
159 
160 
161 #endif /* _BGFX_RANGE_B1DRANGE_HXX */
162