Show / Hide Table of Contents

Class BoundingBoxD

Defines an axis-aligned box-shaped 3D volume.

Inheritance
System.Object
BoundingBoxD
Namespace: VRageMath
Assembly: VRage.Math.dll
Syntax
public sealed class BoundingBoxD : ValueType, IEquatable<BoundingBoxD>

Constructors

BoundingBoxD(Vector3D, Vector3D)

Creates an instance of BoundingBox.

Declaration
public BoundingBoxD(Vector3D min, Vector3D max)
Parameters
Type Name Description
Vector3D min

The minimum point the BoundingBox includes.

Vector3D max

The maximum point the BoundingBox includes.

Fields

Comparer

Declaration
public static readonly BoundingBoxD.ComparerType Comparer
Field Value
Type Description
BoundingBoxD.ComparerType

Max

The maximum point the BoundingBox contains.

Declaration
public Vector3D Max
Field Value
Type Description
Vector3D

Min

The minimum point the BoundingBox contains.

Declaration
public Vector3D Min
Field Value
Type Description
Vector3D

NUMBER_OF_CORNERS

Number of corners of the BB

Declaration
public static readonly int NUMBER_OF_CORNERS
Field Value
Type Description
System.Int32

Properties

Center

Calculates center

Declaration
public Vector3D Center { get; }
Property Value
Type Description
Vector3D

Extents

Declaration
public Vector3D Extents { get; }
Property Value
Type Description
Vector3D

HalfExtents

Declaration
public Vector3D HalfExtents { get; }
Property Value
Type Description
Vector3D

Matrix

Matrix of AABB, respecting center and size

Declaration
public MatrixD Matrix { get; }
Property Value
Type Description
MatrixD

Perimeter

return perimeter of edges

Declaration
public double Perimeter { get; }
Property Value
Type Description
System.Double

Size

Size

Declaration
public Vector3D Size { get; }
Property Value
Type Description
Vector3D

SurfaceArea

Declaration
public double SurfaceArea { get; }
Property Value
Type Description
System.Double

Valid

Declaration
public bool Valid { get; }
Property Value
Type Description
System.Boolean

Volume

Declaration
public double Volume { get; }
Property Value
Type Description
System.Double

Methods

AssertIsValid()

Declaration
public void AssertIsValid()

Centerize(Vector3D)

Declaration
public void Centerize(Vector3D center)
Parameters
Type Name Description
Vector3D center

Contains(BoundingBoxD)

Tests whether the BoundingBox contains another BoundingBox.

Declaration
public ContainmentType Contains(BoundingBoxD box)
Parameters
Type Name Description
BoundingBoxD box

The BoundingBox to test for overlap.

Returns
Type Description
ContainmentType

Contains(ref BoundingBoxD, out ContainmentType)

Tests whether the BoundingBox contains a BoundingBox.

Declaration
public void Contains(ref BoundingBoxD box, out ContainmentType result)
Parameters
Type Name Description
BoundingBoxD box

The BoundingBox to test for overlap.

ContainmentType result

[OutAttribute] Enumeration indicating the extent of overlap.

Contains(BoundingFrustumD)

Tests whether the BoundingBox contains a BoundingFrustum.

Declaration
public ContainmentType Contains(BoundingFrustumD frustum)
Parameters
Type Name Description
BoundingFrustumD frustum

The BoundingFrustum to test for overlap.

Returns
Type Description
ContainmentType

Contains(BoundingSphereD)

Tests whether the BoundingBox contains a BoundingSphere.

Declaration
public ContainmentType Contains(BoundingSphereD sphere)
Parameters
Type Name Description
BoundingSphereD sphere

The BoundingSphere to test for overlap.

Returns
Type Description
ContainmentType

Contains(ref BoundingSphereD, out ContainmentType)

Tests whether the BoundingBox contains a BoundingSphere.

Declaration
public void Contains(ref BoundingSphereD sphere, out ContainmentType result)
Parameters
Type Name Description
BoundingSphereD sphere

The BoundingSphere to test for overlap.

ContainmentType result

[OutAttribute] Enumeration indicating the extent of overlap.

Contains(Vector3D)

Tests whether the BoundingBox contains a point.

Declaration
public ContainmentType Contains(Vector3D point)
Parameters
Type Name Description
Vector3D point

The point to test for overlap.

Returns
Type Description
ContainmentType

Contains(ref Vector3D, out ContainmentType)

Tests whether the BoundingBox contains a point.

Declaration
public void Contains(ref Vector3D point, out ContainmentType result)
Parameters
Type Name Description
Vector3D point

The point to test for overlap.

ContainmentType result

[OutAttribute] Enumeration indicating the extent of overlap.

CreateFromPoints(IEnumerable<Vector3D>)

Creates the smallest BoundingBox that will contain a group of points.

Declaration
public static BoundingBoxD CreateFromPoints(IEnumerable<Vector3D> points)
Parameters
Type Name Description
System.Collections.Generic.IEnumerable<Vector3D> points

A list of points the BoundingBox should contain.

Returns
Type Description
BoundingBoxD

CreateFromSphere(BoundingSphereD)

Creates the smallest BoundingBox that will contain the specified BoundingSphere.

Declaration
public static BoundingBoxD CreateFromSphere(BoundingSphereD sphere)
Parameters
Type Name Description
BoundingSphereD sphere

The BoundingSphere to contain.

Returns
Type Description
BoundingBoxD

CreateFromSphere(ref BoundingSphereD, out BoundingBoxD)

Creates the smallest BoundingBox that will contain the specified BoundingSphere.

Declaration
public static void CreateFromSphere(ref BoundingSphereD sphere, out BoundingBoxD result)
Parameters
Type Name Description
BoundingSphereD sphere

The BoundingSphere to contain.

BoundingBoxD result

[OutAttribute] The created BoundingBox.

CreateInvalid()

Declaration
public static BoundingBoxD CreateInvalid()
Returns
Type Description
BoundingBoxD

CreateMerged(BoundingBoxD, BoundingBoxD)

Creates the smallest BoundingBox that contains the two specified BoundingBox instances.

Declaration
public static BoundingBoxD CreateMerged(BoundingBoxD original, BoundingBoxD additional)
Parameters
Type Name Description
BoundingBoxD original

One of the BoundingBoxs to contain.

BoundingBoxD additional

One of the BoundingBoxs to contain.

Returns
Type Description
BoundingBoxD

CreateMerged(ref BoundingBoxD, ref BoundingBoxD, out BoundingBoxD)

Creates the smallest BoundingBox that contains the two specified BoundingBox instances.

Declaration
public static void CreateMerged(ref BoundingBoxD original, ref BoundingBoxD additional, out BoundingBoxD result)
Parameters
Type Name Description
BoundingBoxD original

One of the BoundingBox instances to contain.

BoundingBoxD additional

One of the BoundingBox instances to contain.

BoundingBoxD result

[OutAttribute] The created BoundingBox.

Distance(ref BoundingBoxD)

Declaration
public double Distance(ref BoundingBoxD other)
Parameters
Type Name Description
BoundingBoxD other
Returns
Type Description
System.Double

Distance(Vector3D)

Declaration
public double Distance(Vector3D point)
Parameters
Type Name Description
Vector3D point
Returns
Type Description
System.Double

DistanceSquared(ref BoundingBoxD)

Declaration
public double DistanceSquared(ref BoundingBoxD other)
Parameters
Type Name Description
BoundingBoxD other
Returns
Type Description
System.Double

DistanceSquared(Vector3D)

Declaration
public double DistanceSquared(Vector3D point)
Parameters
Type Name Description
Vector3D point
Returns
Type Description
System.Double

DistanceSquared(ref Vector3D)

Declaration
public double DistanceSquared(ref Vector3D point)
Parameters
Type Name Description
Vector3D point
Returns
Type Description
System.Double

Equals(Object)

Determines whether two instances of BoundingBox are equal.

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
System.Object obj

The Object to compare with the current BoundingBox.

Returns
Type Description
System.Boolean

Equals(BoundingBoxD)

Determines whether two instances of BoundingBox are equal.

Declaration
public bool Equals(BoundingBoxD other)
Parameters
Type Name Description
BoundingBoxD other

The BoundingBox to compare with the current BoundingBox.

Returns
Type Description
System.Boolean

Equals(BoundingBoxD, Double)

Declaration
public bool Equals(BoundingBoxD other, double epsilon)
Parameters
Type Name Description
BoundingBoxD other
System.Double epsilon
Returns
Type Description
System.Boolean

GetCorner(Int32)

Gets corner of the BB by index

Declaration
public Vector3D GetCorner(int index)
Parameters
Type Name Description
System.Int32 index

index of the corner

Returns
Type Description
Vector3D

corner position

GetCorners()

Gets an array of points that make up the corners of the BoundingBox. ALLOCATION!

Declaration
public Vector3D[] GetCorners()
Returns
Type Description
Vector3D[]

GetCorners(Vector3D[])

Gets the array of points that make up the corners of the BoundingBox.

Declaration
public void GetCorners(Vector3D[] corners)
Parameters
Type Name Description
Vector3D[] corners

An existing array of at least 8 Vector3 points where the corners of the BoundingBox are written.

GetCornersUnsafe(Vector3D*)

Gets the array of points that make up the corners of the BoundingBox.

Declaration
public void GetCornersUnsafe(Vector3D*corners)
Parameters
Type Name Description
Vector3D* corners

An existing array of at least 8 Vector3 points where the corners of the BoundingBox are written.

GetHashCode()

Gets the hash code for this instance.

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32

GetInflated(Double)

Declaration
public BoundingBoxD GetInflated(double size)
Parameters
Type Name Description
System.Double size
Returns
Type Description
BoundingBoxD

GetInflated(Vector3)

Declaration
public BoundingBoxD GetInflated(Vector3 size)
Parameters
Type Name Description
Vector3 size
Returns
Type Description
BoundingBoxD

GetInflated(Vector3D)

Declaration
public BoundingBoxD GetInflated(Vector3D size)
Parameters
Type Name Description
Vector3D size
Returns
Type Description
BoundingBoxD

Include(BoundingBoxD)

Declaration
public BoundingBoxD Include(BoundingBoxD box)
Parameters
Type Name Description
BoundingBoxD box
Returns
Type Description
BoundingBoxD

Include(ref BoundingBoxD)

return expanded aabb (aabb include aabb)

Declaration
public BoundingBoxD Include(ref BoundingBoxD box)
Parameters
Type Name Description
BoundingBoxD box
Returns
Type Description
BoundingBoxD

Include(ref BoundingFrustumD)

Declaration
public BoundingBoxD Include(ref BoundingFrustumD frustum)
Parameters
Type Name Description
BoundingFrustumD frustum
Returns
Type Description
BoundingBoxD

Include(BoundingSphereD)

Declaration
public BoundingBoxD Include(BoundingSphereD sphere)
Parameters
Type Name Description
BoundingSphereD sphere
Returns
Type Description
BoundingBoxD

Include(ref BoundingSphereD)

Declaration
public BoundingBoxD Include(ref BoundingSphereD sphere)
Parameters
Type Name Description
BoundingSphereD sphere
Returns
Type Description
BoundingBoxD

Include(ref LineD)

Declaration
public void Include(ref LineD line)
Parameters
Type Name Description
LineD line

Include(Vector3D)

Declaration
public BoundingBoxD Include(Vector3D point)
Parameters
Type Name Description
Vector3D point
Returns
Type Description
BoundingBoxD

Include(Vector3D, Vector3D, Vector3D)

Declaration
public BoundingBoxD Include(Vector3D p0, Vector3D p1, Vector3D p2)
Parameters
Type Name Description
Vector3D p0
Vector3D p1
Vector3D p2
Returns
Type Description
BoundingBoxD

Include(ref Vector3D)

return expanded aabb (aabb include point)

Declaration
public BoundingBoxD Include(ref Vector3D point)
Parameters
Type Name Description
Vector3D point
Returns
Type Description
BoundingBoxD

Include(ref Vector3D, ref Vector3D, ref Vector3D)

Declaration
public BoundingBoxD Include(ref Vector3D p0, ref Vector3D p1, ref Vector3D p2)
Parameters
Type Name Description
Vector3D p0
Vector3D p1
Vector3D p2
Returns
Type Description
BoundingBoxD

Inflate(Double)

Declaration
public BoundingBoxD Inflate(double size)
Parameters
Type Name Description
System.Double size
Returns
Type Description
BoundingBoxD

Inflate(Vector3D)

Declaration
public BoundingBoxD Inflate(Vector3D size)
Parameters
Type Name Description
Vector3D size
Returns
Type Description
BoundingBoxD

InflateToMinimum(Double)

Declaration
public void InflateToMinimum(double minimumSize)
Parameters
Type Name Description
System.Double minimumSize

InflateToMinimum(Vector3D)

Declaration
public void InflateToMinimum(Vector3D minimumSize)
Parameters
Type Name Description
Vector3D minimumSize

Intersect(BoundingBoxD)

Returns bounding box which is intersection of this and box
Result is invalid box when there's no intersection (Min > Max)

Declaration
public BoundingBoxD Intersect(BoundingBoxD box)
Parameters
Type Name Description
BoundingBoxD box
Returns
Type Description
BoundingBoxD

Intersect(ref LineD, out Double, out Double)

Declaration
public bool Intersect(ref LineD line, out double t1, out double t2)
Parameters
Type Name Description
LineD line
System.Double t1
System.Double t2
Returns
Type Description
System.Boolean

Intersect(ref LineD, out LineD)

Declaration
public bool Intersect(ref LineD line, out LineD intersectedLine)
Parameters
Type Name Description
LineD line
LineD intersectedLine
Returns
Type Description
System.Boolean

Intersect(ref RayD, out Double, out Double)

Declaration
public bool Intersect(ref RayD ray, out double tmin, out double tmax)
Parameters
Type Name Description
RayD ray
System.Double tmin
System.Double tmax
Returns
Type Description
System.Boolean

Intersects(ref BoundingBox, out Boolean)

Declaration
public void Intersects(ref BoundingBox box, out bool result)
Parameters
Type Name Description
BoundingBox box
System.Boolean result

Intersects(BoundingBoxD)

Checks whether the current BoundingBox intersects another BoundingBox.

Declaration
public bool Intersects(BoundingBoxD box)
Parameters
Type Name Description
BoundingBoxD box

The BoundingBox to check for intersection with.

Returns
Type Description
System.Boolean

Intersects(ref BoundingBoxD)

Declaration
public bool Intersects(ref BoundingBoxD box)
Parameters
Type Name Description
BoundingBoxD box
Returns
Type Description
System.Boolean

Intersects(ref BoundingBoxD, out Boolean)

Checks whether the current BoundingBox intersects another BoundingBox.

Declaration
public void Intersects(ref BoundingBoxD box, out bool result)
Parameters
Type Name Description
BoundingBoxD box

The BoundingBox to check for intersection with.

System.Boolean result

[OutAttribute] true if the BoundingBox instances intersect; false otherwise.

Intersects(BoundingFrustumD)

Checks whether the current BoundingBox intersects a BoundingFrustum.

Declaration
public bool Intersects(BoundingFrustumD frustum)
Parameters
Type Name Description
BoundingFrustumD frustum

The BoundingFrustum to check for intersection with.

Returns
Type Description
System.Boolean

Intersects(BoundingSphereD)

Checks whether the current BoundingBox intersects a BoundingSphere.

Declaration
public bool Intersects(BoundingSphereD sphere)
Parameters
Type Name Description
BoundingSphereD sphere

The BoundingSphere to check for intersection with.

Returns
Type Description
System.Boolean

Intersects(ref BoundingSphereD)

Declaration
public bool Intersects(ref BoundingSphereD sphere)
Parameters
Type Name Description
BoundingSphereD sphere
Returns
Type Description
System.Boolean

Intersects(ref BoundingSphereD, out Boolean)

Checks whether the current BoundingBox intersects a BoundingSphere.

Declaration
public void Intersects(ref BoundingSphereD sphere, out bool result)
Parameters
Type Name Description
BoundingSphereD sphere

The BoundingSphere to check for intersection with.

System.Boolean result

[OutAttribute] true if the BoundingBox and BoundingSphere intersect; false otherwise.

Intersects(ref LineD)

Declaration
public bool Intersects(ref LineD line)
Parameters
Type Name Description
LineD line
Returns
Type Description
System.Boolean

Intersects(ref LineD, out Double)

Declaration
public bool Intersects(ref LineD line, out double distance)
Parameters
Type Name Description
LineD line
System.Double distance
Returns
Type Description
System.Boolean

Intersects(PlaneD)

Checks whether the current BoundingBox intersects a Plane.

Declaration
public PlaneIntersectionType Intersects(PlaneD plane)
Parameters
Type Name Description
PlaneD plane

The Plane to check for intersection with.

Returns
Type Description
PlaneIntersectionType

Intersects(ref PlaneD, out PlaneIntersectionType)

Checks whether the current BoundingBox intersects a Plane.

Declaration
public void Intersects(ref PlaneD plane, out PlaneIntersectionType result)
Parameters
Type Name Description
PlaneD plane

The Plane to check for intersection with.

PlaneIntersectionType result

[OutAttribute] An enumeration indicating whether the BoundingBox intersects the Plane.

Intersects(Ray)

Declaration
public Nullable<double> Intersects(Ray ray)
Parameters
Type Name Description
Ray ray
Returns
Type Description
System.Nullable<System.Double>

Intersects(RayD)

Checks whether the current BoundingBox intersects a Ray.

Declaration
public Nullable<double> Intersects(RayD ray)
Parameters
Type Name Description
RayD ray

The Ray to check for intersection with.

Returns
Type Description
System.Nullable<System.Double>

Intersects(ref RayD, out Nullable<Double>)

Checks whether the current BoundingBox intersects a Ray.

Declaration
public void Intersects(ref RayD ray, out Nullable<double> result)
Parameters
Type Name Description
RayD ray

The Ray to check for intersection with.

System.Nullable<System.Double> result

[OutAttribute] Distance at which the ray intersects the BoundingBox, or null if there is no intersection.

IntersectsTriangle(Vector3D, Vector3D, Vector3D)

Declaration
public bool IntersectsTriangle(Vector3D v0, Vector3D v1, Vector3D v2)
Parameters
Type Name Description
Vector3D v0
Vector3D v1
Vector3D v2
Returns
Type Description
System.Boolean

IntersectsTriangle(ref Vector3D, ref Vector3D, ref Vector3D)

Declaration
public bool IntersectsTriangle(ref Vector3D v0, ref Vector3D v1, ref Vector3D v2)
Parameters
Type Name Description
Vector3D v0
Vector3D v1
Vector3D v2
Returns
Type Description
System.Boolean

ProjectedArea(Vector3D)

Declaration
public double ProjectedArea(Vector3D viewDir)
Parameters
Type Name Description
Vector3D viewDir
Returns
Type Description
System.Double

Round()

Declaration
public BoundingBoxI Round()
Returns
Type Description
BoundingBoxI

Round(Int32)

Declaration
public BoundingBoxD Round(int decimals)
Parameters
Type Name Description
System.Int32 decimals
Returns
Type Description
BoundingBoxD

ToString()

Returns a String that represents the current BoundingBox.

Declaration
public override string ToString()
Returns
Type Description
System.String

TransformFast(MatrixD)

Transform this AABB by matrix. Matrix has to be only rotation and translation.

Declaration
public BoundingBoxD TransformFast(MatrixD m)
Parameters
Type Name Description
MatrixD m

transformation matrix

Returns
Type Description
BoundingBoxD

transformed aabb

TransformFast(ref MatrixD)

Transform this AABB by matrix. Matrix has to be only rotation and translation.

Declaration
public BoundingBoxD TransformFast(ref MatrixD m)
Parameters
Type Name Description
MatrixD m

transformation matrix

Returns
Type Description
BoundingBoxD

transformed aabb

TransformFast(ref MatrixD, ref BoundingBoxD)

Transform this AABB by matrix. Matrix has to be only rotation and translation.

Declaration
public void TransformFast(ref MatrixD m, ref BoundingBoxD bb)
Parameters
Type Name Description
MatrixD m

transformation matrix

BoundingBoxD bb

output transformed aabb

TransformSlow(MatrixD)

Transform this AABB by matrix.

Declaration
public BoundingBoxD TransformSlow(MatrixD m)
Parameters
Type Name Description
MatrixD m

transformation matrix

Returns
Type Description
BoundingBoxD

transformed aabb

TransformSlow(ref MatrixD)

Transform this AABB by matrix.

Declaration
public BoundingBoxD TransformSlow(ref MatrixD worldMatrix)
Parameters
Type Name Description
MatrixD worldMatrix

transformation matrix

Returns
Type Description
BoundingBoxD

transformed aabb

Translate(MatrixD)

Translate

Declaration
public BoundingBoxD Translate(MatrixD worldMatrix)
Parameters
Type Name Description
MatrixD worldMatrix
Returns
Type Description
BoundingBoxD

Translate(Vector3D)

Translate

Declaration
public BoundingBoxD Translate(Vector3D vctTranlsation)
Parameters
Type Name Description
Vector3D vctTranlsation
Returns
Type Description
BoundingBoxD

Operators

Addition(BoundingBoxD, Vector3D)

Declaration
public static BoundingBoxD operator +(BoundingBoxD a, Vector3D b)
Parameters
Type Name Description
BoundingBoxD a
Vector3D b
Returns
Type Description
BoundingBoxD

Equality(BoundingBoxD, BoundingBoxD)

Determines whether two instances of BoundingBox are equal.

Declaration
public static bool operator ==(BoundingBoxD a, BoundingBoxD b)
Parameters
Type Name Description
BoundingBoxD a

BoundingBox to compare.

BoundingBoxD b

BoundingBox to compare.

Returns
Type Description
System.Boolean

Explicit(BoundingBoxD to BoundingBox)

Declaration
public static explicit operator BoundingBox(BoundingBoxD b)
Parameters
Type Name Description
BoundingBoxD b
Returns
Type Description
BoundingBox

Implicit(BoundingBox to BoundingBoxD)

Declaration
public static implicit operator BoundingBoxD(BoundingBox box)
Parameters
Type Name Description
BoundingBox box
Returns
Type Description
BoundingBoxD

Implicit(BoundingBoxI to BoundingBoxD)

Declaration
public static implicit operator BoundingBoxD(BoundingBoxI box)
Parameters
Type Name Description
BoundingBoxI box
Returns
Type Description
BoundingBoxD

Inequality(BoundingBoxD, BoundingBoxD)

Determines whether two instances of BoundingBox are not equal.

Declaration
public static bool operator !=(BoundingBoxD a, BoundingBoxD b)
Parameters
Type Name Description
BoundingBoxD a

The object to the left of the inequality operator.

BoundingBoxD b

The object to the right of the inequality operator.

Returns
Type Description
System.Boolean
☀
☾
In This Article
Back to top
Generated by DocFX
☀
☾