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 #include <basegfx/basegfxdllapi.h>
29 
30 
31 namespace basegfx
32 {
33     class B1IRange;
34 
35 	class BASEGFX_DLLPUBLIC B1DRange
36 	{
37 		::basegfx::BasicRange< double, DoubleTraits >	maRange;
38 
39 	public:
B1DRange()40 		B1DRange()
41 		{
42 		}
43 
B1DRange(double fStartValue)44 		explicit B1DRange(double fStartValue)
45 		:	maRange(fStartValue)
46 		{
47 		}
48 
B1DRange(double fStartValue1,double fStartValue2)49 		B1DRange(double fStartValue1, double fStartValue2)
50 		:	maRange(fStartValue1)
51 		{
52             expand(fStartValue2);
53 		}
54 
B1DRange(const B1DRange & rRange)55 		B1DRange(const B1DRange& rRange)
56 		:	maRange(rRange.maRange)
57 		{
58 		}
59 
60         explicit B1DRange( const B1IRange& rRange );
61 
isEmpty() const62 		bool isEmpty() const
63 		{
64 			return maRange.isEmpty();
65 		}
66 
reset()67 		void reset()
68 		{
69 			maRange.reset();
70 		}
71 
operator ==(const B1DRange & rRange) const72 		bool operator==( const B1DRange& rRange ) const
73 		{
74 			return (maRange == rRange.maRange);
75 		}
76 
operator !=(const B1DRange & rRange) const77 		bool operator!=( const B1DRange& rRange ) const
78 		{
79 			return (maRange != rRange.maRange);
80 		}
81 
operator =(const B1DRange & rRange)82 		B1DRange& operator=(const B1DRange& rRange)
83 		{
84 			maRange = rRange.maRange;
85 			return *this;
86 		}
87 
equal(const B1DRange & rRange) const88 		bool equal(const B1DRange& rRange) const
89         {
90 			return (maRange.equal(rRange.maRange));
91         }
92 
getMinimum() const93 		double getMinimum() const
94 		{
95 			return maRange.getMinimum();
96 		}
97 
getMaximum() const98 		double getMaximum() const
99 		{
100 			return maRange.getMaximum();
101 		}
102 
getRange() const103 		double getRange() const
104 		{
105 			return maRange.getRange();
106 		}
107 
getCenter() const108 		double getCenter() const
109 		{
110 			return maRange.getCenter();
111 		}
112 
isInside(double fValue) const113 		bool isInside(double fValue) const
114 		{
115 			return maRange.isInside(fValue);
116 		}
117 
isInside(const B1DRange & rRange) const118 		bool isInside(const B1DRange& rRange) const
119 		{
120 			return maRange.isInside(rRange.maRange);
121 		}
122 
overlaps(const B1DRange & rRange) const123 		bool overlaps(const B1DRange& rRange) const
124 		{
125 			return maRange.overlaps(rRange.maRange);
126 		}
127 
overlapsMore(const B1DRange & rRange) const128 		bool overlapsMore(const B1DRange& rRange) const
129 		{
130 			return maRange.overlapsMore(rRange.maRange);
131 		}
132 
expand(double fValue)133 		void expand(double fValue)
134 		{
135 			maRange.expand(fValue);
136 		}
137 
expand(const B1DRange & rRange)138 		void expand(const B1DRange& rRange)
139 		{
140 			maRange.expand(rRange.maRange);
141 		}
142 
intersect(const B1DRange & rRange)143 		void intersect(const B1DRange& rRange)
144 		{
145 			maRange.intersect(rRange.maRange);
146 		}
147 
grow(double fValue)148 		void grow(double fValue)
149 		{
150 			maRange.grow(fValue);
151 		}
152 	};
153 
154 	/** Round double to nearest integer for 1D range
155 
156 		@return the nearest integer for this range
157 	*/
158 	B1IRange fround(const B1DRange& rRange);
159 } // end of namespace basegfx
160 
161 
162 #endif /* _BGFX_RANGE_B1DRANGE_HXX */
163