xref: /trunk/main/basegfx/inc/basegfx/range/b1drange.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
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