Class: QgsBox3D¶
A 3-dimensional box composed of x, y, z coordinates.
A box composed of x/y/z minimum and maximum values. It is often used to return the 3D extent of a geometry or collection of geometries.
Note
In QGIS 3.34 this class was renamed from QgsBox3d to QgsBox3D. The old QgsBox3d name
remains available in PyQGIS for compatibility.
See also
- class qgis.core.QgsBox3D[source]¶
Bases:
object- __init__(x: QgsPoint | QgsVector3D | QgsRectangle | float | None = Py_None, y: QgsPoint | QgsVector3D | float | None = Py_None, z: bool | float | None = Py_None, x2: bool | float | None = Py_None, y2: float | None = Py_None, z2: float | None = Py_None, n: bool | None = Py_None)
Constructor for QgsBox3D which accepts the ranges of x/y/z coordinates. If
normalizeisFalsethen the normalization step will not be applied automatically.- Parameters:
x (Optional[Union[
QgsPoint,QgsVector3D,QgsRectangle, float]] = Py_None)y (Optional[
QgsPoint,QgsVector3D, float] = Py_None)z (Optional[Union[bool, float]] = Py_None)
x2 (Optional[Union[bool, float]] = Py_None)
y2 (Optional[float] = Py_None)
z2 (Optional[float] = Py_None)
n (Optional[bool] = Py_None)
- center(self) QgsVector3D[source]¶
Returns the center of the box as a vector.
Added in version 3.34.
- Return type:
- combineWith(self, box: QgsBox3D)[source]¶
Expands the bbox so that it covers both the original rectangle and the given rectangle.
Added in version 3.34.
combineWith(self, x: float, y: float, z: float) Expands the bbox so that it covers both the original rectangle and the given point.
Added in version 3.34.
- Parameters:
box (QgsBox3D)
- contains(self, other: QgsBox3D) bool[source]¶
Returns
Truewhen box contains other box.contains(self, point:
QgsPoint) -> bool ReturnsTruewhen box contains apoint.If the point is a 2D point (no z-coordinate), then the containment test will be performed on the x/y extent of the box only.
contains(self, x: float, y: float, z: float) -> bool Returns
Truewhen box contains a point (x,y,z). A point on the border of the box will also returnTrueIf the point is a 2D point (no z-coordinate), then the containment test will be performed on the x/y extent of the box only.
Added in version 3.34.
- Parameters:
other (QgsBox3D)
- Return type:
bool
- corners(self) List[QgsVector3D]¶
Returns an array of all box corners as 3D vectors.
- Return type:
- distanceTo(self, point: QVector3D) float[source]¶
Returns the smallest distance between the box and the point
point(returns 0 if the point is inside the box)Added in version 3.18.
Deprecated since version 3.42: Use
distanceTo()withQgsVector3Dinstead (QVector3D uses floats).distanceTo(self, point:
QgsVector3D) -> float Returns the smallest distance between the box and the pointpoint(returns 0 if the point is inside the box)Added in version 3.42.
- Parameters:
point (QVector3D)
- Return type:
float
- grow(self, delta: float)[source]¶
Grows the box in place by the specified amount in all dimensions.
Added in version 3.42.
- Parameters:
delta (float)
- intersect(self, other: QgsBox3D) QgsBox3D[source]¶
Returns the intersection of this box and another 3D box.
- intersects(self, other: QgsBox3D) bool[source]¶
Returns
Trueif box intersects with another box.- Parameters:
other (QgsBox3D)
- Return type:
bool
- is2d(self) bool[source]¶
Returns
Trueif the box can be considered a 2-dimensional box, i.e. it has equal minimum and maximum z values.- Return type:
bool
- is3D(self) bool[source]¶
Returns
Trueif the box can be considered a 3-dimensional box, i.e. it has valid minimum and maximum z values. If the box is not normalized, this returnsFalse.Added in version 3.34.
- Return type:
bool
- isEmpty(self) bool[source]¶
Returns
Trueif the box is empty. An empty box may still be non-null if it contains valid spatial information (e.g. bounding box of a point or of a vertical or horizontal segment).Added in version 3.34.
- Return type:
bool
- isNull(self) bool[source]¶
Test if the box is null (holding no spatial information).
A null box is also an empty box.
See also
Added in version 3.34.
- Return type:
bool
- scale(self, scaleFactor: float, center: QgsPoint = QgsPoint())[source]¶
Scale the rectangle around a
centerQgsPoint.If no
centerpoint is specified then the current center of the box will be used.Added in version 3.26.
scale(self, scaleFactor: float, centerX: float, centerY: float, centerZ: float) Scale the rectangle around a center coordinates.
Added in version 3.26.
- Parameters:
scaleFactor (float)
center (
QgsPoint= QgsPoint())
- set(self, xMin: float, yMin: float, zMin: float, xMax: float, yMax: float, zMax: float, normalize: bool = True)[source]¶
Sets the box from a set of (x,y,z) minimum and maximum coordinates.
Added in version 3.40.
- Parameters:
xMin (float)
yMin (float)
zMin (float)
xMax (float)
yMax (float)
zMax (float)
normalize (bool = True)
- setNull(self)[source]¶
Mark a box as being null (holding no spatial information).
Added in version 3.34.
- setXMaximum(self, x: float)[source]¶
Sets the maximum
xvalue.See also
See also
- Parameters:
x (float)
- setXMinimum(self, x: float)[source]¶
Sets the minimum
xvalue.See also
See also
- Parameters:
x (float)
- setYMaximum(self, y: float)[source]¶
Sets the maximum
yvalue.See also
See also
- Parameters:
y (float)
- setYMinimum(self, y: float)[source]¶
Sets the minimum
yvalue.See also
See also
- Parameters:
y (float)
- setZMaximum(self, z: float)[source]¶
Sets the maximum
zvalue.See also
See also
- Parameters:
z (float)
- setZMinimum(self, z: float)[source]¶
Sets the minimum
zvalue.See also
See also
- Parameters:
z (float)
- toRectangle(self) QgsRectangle[source]¶
Converts the box to a 2D rectangle.
- Return type:
- toString(self, precision: int = 16) str[source]¶
Returns a string representation of form xmin,ymin,zmin : xmax,ymax,zmax Coordinates will be truncated to the specified precision. If the specified precision is less than 0, a suitable minimum precision is used.
Added in version 3.34.
- Parameters:
precision (int = 16)
- Return type:
str