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