mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			420 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			420 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/qgsrange.h                                                  *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
template <T>
 | 
						|
class QgsRange
 | 
						|
{
 | 
						|
%Docstring
 | 
						|
A template based class for storing ranges (lower to upper values).
 | 
						|
 | 
						|
QgsRange classes represent a range of values of some element type. For instance,
 | 
						|
ranges of int might be used to represent integer ranges.
 | 
						|
 | 
						|
Ranges can indicate whether the upper and lower values are inclusive or exclusive.
 | 
						|
The inclusivity or exclusivity of bounds is considered when determining things like
 | 
						|
whether ranges overlap or during calculation of range intersections.
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDoubleRange`
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsIntRange`
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   not available in Python bindings (but class provided for template-based inheritance)
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgsrange.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    QgsRange( T lower, T upper, bool includeLower = true, bool includeUpper = true );
 | 
						|
%Docstring
 | 
						|
Constructor for QgsRange. The ``lower`` and ``upper`` bounds are specified,
 | 
						|
and optionally whether or not these bounds are included in the range.
 | 
						|
%End
 | 
						|
 | 
						|
    T lower() const;
 | 
						|
%Docstring
 | 
						|
Returns the lower bound of the range.
 | 
						|
 | 
						|
.. seealso:: :py:func:`upper`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeLower`
 | 
						|
%End
 | 
						|
 | 
						|
    T upper() const;
 | 
						|
%Docstring
 | 
						|
Returns the upper bound of the range.
 | 
						|
 | 
						|
.. seealso:: :py:func:`lower`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeUpper`
 | 
						|
%End
 | 
						|
 | 
						|
    bool includeLower() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the lower bound is inclusive, or ``False`` if the lower
 | 
						|
bound is exclusive.
 | 
						|
 | 
						|
.. seealso:: :py:func:`lower`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeUpper`
 | 
						|
%End
 | 
						|
 | 
						|
    bool includeUpper() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the upper bound is inclusive, or ``False`` if the upper
 | 
						|
bound is exclusive.
 | 
						|
 | 
						|
.. seealso:: :py:func:`upper`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeLower`
 | 
						|
%End
 | 
						|
 | 
						|
    bool isEmpty() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range is empty, ie the lower bound equals (or exceeds) the upper bound
 | 
						|
and either the bounds are exclusive.
 | 
						|
 | 
						|
.. seealso:: :py:func:`isSingleton`
 | 
						|
%End
 | 
						|
 | 
						|
    bool isSingleton() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range consists only of a single value or instant.
 | 
						|
 | 
						|
.. seealso:: :py:func:`isEmpty`
 | 
						|
%End
 | 
						|
 | 
						|
    bool contains( const QgsRange<T> &other ) const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if this range contains another range.
 | 
						|
 | 
						|
.. seealso:: :py:func:`overlaps`
 | 
						|
%End
 | 
						|
 | 
						|
    bool contains( T element ) const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if this range contains a specified ``element``.
 | 
						|
%End
 | 
						|
 | 
						|
    bool overlaps( const QgsRange<T> &other ) const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if this range overlaps another range.
 | 
						|
 | 
						|
.. seealso:: :py:func:`contains`
 | 
						|
%End
 | 
						|
 | 
						|
    bool operator==( const QgsRange<T> &other ) const;
 | 
						|
 | 
						|
    bool operator!=( const QgsRange<T> &other ) const;
 | 
						|
 | 
						|
  protected:
 | 
						|
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
typedef QgsRange<double> QgsRangedoubleBase;
 | 
						|
 | 
						|
class QgsDoubleRange : QgsRangedoubleBase
 | 
						|
{
 | 
						|
%Docstring
 | 
						|
QgsRange which stores a range of double values.
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsIntRange`
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDateRange`
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDateTimeRange`
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgsrange.h"
 | 
						|
typedef QgsRange<double> QgsRangedoubleBase;
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
 | 
						|
    QgsDoubleRange( double lower,
 | 
						|
                    double upper,
 | 
						|
                    bool includeLower = true, bool includeUpper = true );
 | 
						|
%Docstring
 | 
						|
Constructor for QgsDoubleRange. The ``lower`` and ``upper`` bounds are specified,
 | 
						|
and optionally whether or not these bounds are included in the range.
 | 
						|
%End
 | 
						|
 | 
						|
    QgsDoubleRange();
 | 
						|
%Docstring
 | 
						|
Constructor for QgsDoubleRange containing an infinite range (see :py:func:`~QgsDoubleRange.isInfinite`).
 | 
						|
 | 
						|
.. versionadded:: 3.18
 | 
						|
%End
 | 
						|
 | 
						|
    bool isInfinite() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range consists of all possible values.
 | 
						|
 | 
						|
.. versionadded:: 3.18
 | 
						|
%End
 | 
						|
 | 
						|
    SIP_PYOBJECT __repr__();
 | 
						|
%MethodCode
 | 
						|
    QString str = QStringLiteral( "<QgsDoubleRange: %1%2, %3%4>" ).arg( sipCpp->includeLower() ? QStringLiteral( "[" ) : QStringLiteral( "(" ) )
 | 
						|
                  .arg( sipCpp->lower() )
 | 
						|
                  .arg( sipCpp->upper() )
 | 
						|
                  .arg( sipCpp->includeUpper() ? QStringLiteral( "]" ) : QStringLiteral( ")" ) );
 | 
						|
    sipRes = PyUnicode_FromString( str.toUtf8().constData() );
 | 
						|
%End
 | 
						|
 | 
						|
    bool operator==( const QgsDoubleRange &other ) const;
 | 
						|
 | 
						|
    bool operator!=( const QgsDoubleRange &other ) const;
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
 | 
						|
typedef QgsRange<int> QgsRangeintBase;
 | 
						|
 | 
						|
class QgsIntRange : QgsRangeintBase
 | 
						|
{
 | 
						|
%Docstring
 | 
						|
QgsRange which stores a range of integer values.
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDoubleRange`
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDateRange`
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDateTimeRange`
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgsrange.h"
 | 
						|
typedef QgsRange<int> QgsRangeintBase;
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
 | 
						|
    QgsIntRange( int lower,
 | 
						|
                 int upper,
 | 
						|
                 bool includeLower = true, bool includeUpper = true );
 | 
						|
%Docstring
 | 
						|
Constructor for QgsIntRange. The ``lower`` and ``upper`` bounds are specified,
 | 
						|
and optionally whether or not these bounds are included in the range.
 | 
						|
%End
 | 
						|
 | 
						|
    QgsIntRange();
 | 
						|
%Docstring
 | 
						|
Constructor for QgsIntRange containing an infinite range (see :py:func:`~QgsIntRange.isInfinite`).
 | 
						|
 | 
						|
.. versionadded:: 3.18
 | 
						|
%End
 | 
						|
 | 
						|
    bool isInfinite() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range consists of all possible values.
 | 
						|
 | 
						|
.. versionadded:: 3.18
 | 
						|
%End
 | 
						|
 | 
						|
    SIP_PYOBJECT __repr__();
 | 
						|
%MethodCode
 | 
						|
    QString str = QStringLiteral( "<QgsIntRange: %1%2, %3%4>" ).arg( sipCpp->includeLower() ? QStringLiteral( "[" ) : QStringLiteral( "(" ) )
 | 
						|
                  .arg( sipCpp->lower() )
 | 
						|
                  .arg( sipCpp->upper() )
 | 
						|
                  .arg( sipCpp->includeUpper() ? QStringLiteral( "]" ) : QStringLiteral( ")" ) );
 | 
						|
    sipRes = PyUnicode_FromString( str.toUtf8().constData() );
 | 
						|
%End
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
template <T>
 | 
						|
class QgsTemporalRange
 | 
						|
{
 | 
						|
%Docstring
 | 
						|
A template based class for storing temporal ranges (beginning to end values).
 | 
						|
 | 
						|
QgsTemporalRange classes represent a range of values of some temporal type. For instance,
 | 
						|
ranges of QDateTime might be used to represent datetime ranges.
 | 
						|
 | 
						|
Ranges can indicate whether the upper and lower values are inclusive or exclusive.
 | 
						|
The inclusivity or exclusivity of bounds is considered when determining things like
 | 
						|
whether ranges overlap or during calculation of range intersections.
 | 
						|
 | 
						|
.. seealso:: :py:class:`QgsDateRange`
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   not available in Python bindings (but class provided for template-based inheritance)
 | 
						|
 | 
						|
.. versionadded:: 3.0
 | 
						|
%End
 | 
						|
 | 
						|
%TypeHeaderCode
 | 
						|
#include "qgsrange.h"
 | 
						|
%End
 | 
						|
  public:
 | 
						|
 | 
						|
    QgsTemporalRange( const T &begin, const T &end, bool includeBeginning = true, bool includeEnd = true );
 | 
						|
%Docstring
 | 
						|
Constructor for QgsTemporalRange. The ``begin`` and ``end`` are specified,
 | 
						|
and optionally whether or not these bounds are included in the range.
 | 
						|
 | 
						|
.. note::
 | 
						|
 | 
						|
   in Python ``begin`` and ``end`` must be provided.
 | 
						|
%End
 | 
						|
    // default constructor as default value for templates is not handled in SIP
 | 
						|
 | 
						|
    T begin() const;
 | 
						|
%Docstring
 | 
						|
Returns the beginning of the range.
 | 
						|
 | 
						|
.. seealso:: :py:func:`end`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeBeginning`
 | 
						|
%End
 | 
						|
 | 
						|
    T end() const;
 | 
						|
%Docstring
 | 
						|
Returns the upper bound of the range.
 | 
						|
 | 
						|
.. seealso:: :py:func:`begin`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeEnd`
 | 
						|
%End
 | 
						|
 | 
						|
    bool includeBeginning() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the beginning is inclusive, or ``False`` if the beginning
 | 
						|
is exclusive.
 | 
						|
 | 
						|
.. seealso:: :py:func:`begin`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeEnd`
 | 
						|
%End
 | 
						|
 | 
						|
    bool includeEnd() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the end is inclusive, or ``False`` if the end is exclusive.
 | 
						|
 | 
						|
.. seealso:: :py:func:`end`
 | 
						|
 | 
						|
.. seealso:: :py:func:`includeBeginning`
 | 
						|
%End
 | 
						|
 | 
						|
    bool isInstant() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range consists only of a single instant.
 | 
						|
 | 
						|
.. seealso:: :py:func:`isEmpty`
 | 
						|
 | 
						|
.. seealso:: :py:func:`isInfinite`
 | 
						|
%End
 | 
						|
 | 
						|
    bool isInfinite() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range consists of all possible values.
 | 
						|
 | 
						|
.. seealso:: :py:func:`isEmpty`
 | 
						|
 | 
						|
.. seealso:: :py:func:`isInstant`
 | 
						|
%End
 | 
						|
 | 
						|
    bool isEmpty() const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if the range is empty, ie the beginning equals (or exceeds) the end
 | 
						|
and either of the bounds are exclusive.
 | 
						|
A range with both invalid beginning and end is considered infinite and not empty.
 | 
						|
%End
 | 
						|
 | 
						|
    bool contains( const QgsTemporalRange<T> &other ) const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if this range contains another range.
 | 
						|
%End
 | 
						|
 | 
						|
    bool contains( const T &element ) const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if this range contains a specified ``element``.
 | 
						|
%End
 | 
						|
 | 
						|
    bool overlaps( const QgsTemporalRange<T> &other ) const;
 | 
						|
%Docstring
 | 
						|
Returns ``True`` if this range overlaps another range.
 | 
						|
%End
 | 
						|
 | 
						|
    bool extend( const QgsTemporalRange<T> &other );
 | 
						|
%Docstring
 | 
						|
Extends the range in place by extending this range out to include an ``other`` range.
 | 
						|
If ``other`` is empty the range is not changed.
 | 
						|
If the range is empty and ``other`` is not, the range is changed and set to ``other``.
 | 
						|
 | 
						|
.. seealso:: :py:func:`isEmpty`
 | 
						|
 | 
						|
:return: ``True`` if the range was extended
 | 
						|
 | 
						|
.. versionadded:: 3.12
 | 
						|
%End
 | 
						|
 | 
						|
    bool operator==( const QgsTemporalRange<T> &other ) const;
 | 
						|
 | 
						|
    bool operator!=( const QgsTemporalRange<T> &other ) const;
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
typedef QgsTemporalRange< QDate > QgsDateRange;
 | 
						|
@DOCSTRINGSTEMPLATE@%Docstring
 | 
						|
@DOCSTRINGSTEMPLATE@QgsRange which stores a range of dates.
 | 
						|
@DOCSTRINGSTEMPLATE@
 | 
						|
@DOCSTRINGSTEMPLATE@Invalid QDates as the beginning or end are permitted. In this case,
 | 
						|
@DOCSTRINGSTEMPLATE@the bound is considered to be infinite. E.g. QgsDateRange(QDate(),QDate(2017,1,1))
 | 
						|
@DOCSTRINGSTEMPLATE@is treated as a range containing all dates before 2017-1-1.
 | 
						|
@DOCSTRINGSTEMPLATE@QgsDateRange(QDate(2017,1,1),QDate()) is treated as a range containing all dates after 2017-1-1.
 | 
						|
@DOCSTRINGSTEMPLATE@
 | 
						|
@DOCSTRINGSTEMPLATE@.. seealso:: :py:class:`QgsDateTimeRange`
 | 
						|
@DOCSTRINGSTEMPLATE@
 | 
						|
@DOCSTRINGSTEMPLATE@.. versionadded:: 3.0
 | 
						|
@DOCSTRINGSTEMPLATE@%End
 | 
						|
 | 
						|
typedef QgsTemporalRange< QDateTime > QgsDateTimeRange;
 | 
						|
@DOCSTRINGSTEMPLATE@%Docstring
 | 
						|
@DOCSTRINGSTEMPLATE@QgsRange which stores a range of date times.
 | 
						|
@DOCSTRINGSTEMPLATE@
 | 
						|
@DOCSTRINGSTEMPLATE@Invalid QDateTimes as the beginning or end are permitted. In this case,
 | 
						|
@DOCSTRINGSTEMPLATE@the bound is considered to be infinite. E.g. QgsDateTimeRange(QDateTime(),QDateTime(2017,1,1))
 | 
						|
@DOCSTRINGSTEMPLATE@is treated as a range containing all dates before 2017-1-1.
 | 
						|
@DOCSTRINGSTEMPLATE@QgsDateTimeRange(QDateTime(2017,1,1),QDateTime()) is treated as a range containing all dates after 2017-1-1.
 | 
						|
@DOCSTRINGSTEMPLATE@
 | 
						|
@DOCSTRINGSTEMPLATE@.. seealso:: :py:class:`QgsDateRange`
 | 
						|
@DOCSTRINGSTEMPLATE@
 | 
						|
@DOCSTRINGSTEMPLATE@.. versionadded:: 3.0
 | 
						|
@DOCSTRINGSTEMPLATE@%End
 | 
						|
 | 
						|
/************************************************************************
 | 
						|
 * This file has been generated automatically from                      *
 | 
						|
 *                                                                      *
 | 
						|
 * src/core/qgsrange.h                                                  *
 | 
						|
 *                                                                      *
 | 
						|
 * Do not edit manually ! Edit header and run scripts/sipify.pl again   *
 | 
						|
 ************************************************************************/
 |