Open CASCADE Technology 7.8.2.dev
|
This class describes a range in 1D space restricted by two real values. A range can be void indicating there is no point included in the range. More...
#include <Bnd_Range.hxx>
Public Member Functions | |
Bnd_Range () | |
Default constructor. Creates VOID range. | |
Bnd_Range (const Standard_Real theMin, const Standard_Real theMax) | |
Constructor. Never creates VOID range. | |
void | Common (const Bnd_Range &theOther) |
Replaces <this> with common-part of <this> and theOther. | |
Standard_Boolean | Union (const Bnd_Range &theOther) |
Joins *this and theOther to one interval. Replaces *this to the result. Returns false if the operation cannot be done (e.g. input arguments are empty or separated). | |
void | Split (const Standard_Real theVal, NCollection_List< Bnd_Range > &theList, const Standard_Real thePeriod=0.0) const |
Splits <this> to several sub-ranges by theVal value (e.g. range [3, 15] will be split by theVal==5 to the two ranges: [3, 5] and [5, 15]). New ranges will be pushed to theList (theList must be initialized correctly before calling this method). If thePeriod != 0.0 then at least one boundary of new ranges (if <*this> intersects theVal+k*thePeriod) will be equal to theVal+thePeriod*k, where k is an integer number (k = 0, +/-1, +/-2, ...). (let thePeriod in above example be 4 ==> we will obtain four ranges: [3, 5], [5, 9], [9, 13] and [13, 15]. | |
Standard_Integer | IsIntersected (const Standard_Real theVal, const Standard_Real thePeriod=0.0) const |
Checks if <this> intersects values like theVal+k*thePeriod, where k is an integer number (k = 0, +/-1, +/-2, ...). Returns: 0 - if <this> does not intersect the theVal+k*thePeriod. 1 - if <this> intersects theVal+k*thePeriod. 2 - if myFirst or/and myLast are equal to theVal+k*thePeriod. | |
void | Add (const Standard_Real theParameter) |
Extends <this> to include theParameter. | |
void | Add (const Bnd_Range &theRange) |
Extends this range to include both ranges. | |
Standard_Boolean | GetMin (Standard_Real &thePar) const |
Obtain MIN boundary of <this>. If <this> is VOID the method returns false. | |
Standard_Boolean | GetMax (Standard_Real &thePar) const |
Obtain MAX boundary of <this>. If <this> is VOID the method returns false. | |
Standard_Boolean | GetBounds (Standard_Real &theFirstPar, Standard_Real &theLastPar) const |
Obtain first and last boundary of <this>. If <this> is VOID the method returns false. | |
Standard_Boolean | GetIntermediatePoint (const Standard_Real theLambda, Standard_Real &theParameter) const |
Obtain theParameter satisfied to the equation (theParameter-MIN)/(MAX-MIN) == theLambda. | |
Standard_Real | Delta () const |
Returns range value (MAX-MIN). Returns negative value for VOID range. | |
Standard_Boolean | IsVoid () const |
Is <this> initialized. | |
void | SetVoid () |
Initializes <this> by default parameters. Makes <this> VOID. | |
void | Enlarge (const Standard_Real theDelta) |
Extends this to the given value (in both side) | |
Bnd_Range | Shifted (const Standard_Real theVal) const |
Returns the copy of <*this> shifted by theVal. | |
void | Shift (const Standard_Real theVal) |
Shifts <*this> by theVal. | |
void | TrimFrom (const Standard_Real theValLower) |
Trims the First value in range by the given lower limit. Marks range as Void if the given Lower value is greater than range Max. | |
void | TrimTo (const Standard_Real theValUpper) |
Trim the Last value in range by the given Upper limit. Marks range as Void if the given Upper value is smaller than range Max. | |
Standard_Boolean | IsOut (Standard_Real theValue) const |
Returns True if the value is out of this range. | |
Standard_Boolean | IsOut (const Bnd_Range &theRange) const |
Returns True if the given range is out of this range. | |
Standard_Boolean | operator== (const Bnd_Range &theOther) const |
Returns TRUE if theOther is equal to <*this> | |
void | DumpJson (Standard_OStream &theOStream, Standard_Integer theDepth=-1) const |
Dumps the content of me into the stream. | |
This class describes a range in 1D space restricted by two real values. A range can be void indicating there is no point included in the range.
|
inline |
Default constructor. Creates VOID range.
|
inline |
Constructor. Never creates VOID range.
|
inline |
Extends this range to include both ranges.
|
inline |
Extends <this> to include theParameter.
void Bnd_Range::Common | ( | const Bnd_Range & | theOther | ) |
Replaces <this> with common-part of <this> and theOther.
|
inline |
Returns range value (MAX-MIN). Returns negative value for VOID range.
void Bnd_Range::DumpJson | ( | Standard_OStream & | theOStream, |
Standard_Integer | theDepth = -1 ) const |
Dumps the content of me into the stream.
|
inline |
Extends this to the given value (in both side)
|
inline |
Obtain first and last boundary of <this>. If <this> is VOID the method returns false.
|
inline |
Obtain theParameter satisfied to the equation (theParameter-MIN)/(MAX-MIN) == theLambda.
|
inline |
Obtain MAX boundary of <this>. If <this> is VOID the method returns false.
|
inline |
Obtain MIN boundary of <this>. If <this> is VOID the method returns false.
Standard_Integer Bnd_Range::IsIntersected | ( | const Standard_Real | theVal, |
const Standard_Real | thePeriod = 0.0 ) const |
Checks if <this> intersects values like theVal+k*thePeriod, where k is an integer number (k = 0, +/-1, +/-2, ...). Returns: 0 - if <this> does not intersect the theVal+k*thePeriod. 1 - if <this> intersects theVal+k*thePeriod. 2 - if myFirst or/and myLast are equal to theVal+k*thePeriod.
ATTENTION!!! If (myFirst == myLast) then this function will return only either 0 or 2.
|
inline |
Returns True if the given range is out of this range.
|
inline |
Returns True if the value is out of this range.
|
inline |
Is <this> initialized.
|
inline |
Returns TRUE if theOther is equal to <*this>
|
inline |
Initializes <this> by default parameters. Makes <this> VOID.
|
inline |
Shifts <*this> by theVal.
|
inline |
Returns the copy of <*this> shifted by theVal.
void Bnd_Range::Split | ( | const Standard_Real | theVal, |
NCollection_List< Bnd_Range > & | theList, | ||
const Standard_Real | thePeriod = 0.0 ) const |
Splits <this> to several sub-ranges by theVal value (e.g. range [3, 15] will be split by theVal==5 to the two ranges: [3, 5] and [5, 15]). New ranges will be pushed to theList (theList must be initialized correctly before calling this method). If thePeriod != 0.0 then at least one boundary of new ranges (if <*this> intersects theVal+k*thePeriod) will be equal to theVal+thePeriod*k, where k is an integer number (k = 0, +/-1, +/-2, ...). (let thePeriod in above example be 4 ==> we will obtain four ranges: [3, 5], [5, 9], [9, 13] and [13, 15].
|
inline |
Trims the First value in range by the given lower limit. Marks range as Void if the given Lower value is greater than range Max.
|
inline |
Trim the Last value in range by the given Upper limit. Marks range as Void if the given Upper value is smaller than range Max.
Standard_Boolean Bnd_Range::Union | ( | const Bnd_Range & | theOther | ) |
Joins *this and theOther to one interval. Replaces *this to the result. Returns false if the operation cannot be done (e.g. input arguments are empty or separated).