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...
|
| 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.
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].