Show / Hide Table of Contents

Struct AABBd

Represents an axis aligned bounding box.

Inherited Members
System.ValueType.ToString()
System.Object.Equals(System.Object, System.Object)
System.Object.GetType()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: Fusee.Math.Core
Assembly: Fusee.Math.Core.dll
Syntax
public struct AABBd

Constructors

AABBd(double3, double3)

Create a new axis aligned bounding box.

Declaration
public AABBd(double3 min_, double3 max_)
Parameters
Type Name Description
double3 min_

the minimum x y and z values.

double3 max_

the maximum x y and z values.

AABBd(ReadOnlySpan<double3>)

Create a new axis aligned bounding box.

Declaration
public AABBd(ReadOnlySpan<double3> vertices)
Parameters
Type Name Description
System.ReadOnlySpan<double3> vertices

The list of vertices the bounding box is created for.

Fields

max

The maximum values of the axis aligned bounding box in x, y and z direction

Declaration
public double3 max
Field Value
Type Description
double3

min

The minimum values of the axis aligned bounding box in x, y and z direction

Declaration
public double3 min
Field Value
Type Description
double3

Properties

Center

Returns the center of the bounding box

Declaration
public readonly double3 Center { get; }
Property Value
Type Description
double3

Size

Returns the with, height and depth of the box in x, y and z

Declaration
public readonly double3 Size { get; }
Property Value
Type Description
double3

Methods

Equals(Object)

Indicates whether this AABBd is equal to another object.

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

The object. This method will throw an exception if the object isn't of type AABBd.

Returns
Type Description
System.Boolean
Overrides
System.ValueType.Equals(System.Object)

GetHashCode()

Generates a hash code for this AABBd.

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

InsideOrIntersectingFrustum(FrustumD)

Checks if a viewing frustum lies within or intersects this AABB.

Declaration
public bool InsideOrIntersectingFrustum(FrustumD frustum)
Parameters
Type Name Description
FrustumD frustum

The frustum to test against.

Returns
Type Description
System.Boolean

false if fully outside, true if inside or intersecting.

InsideOrIntersectingPlane(PlaneD)

Checks if a plane lies within or intersects this AABB.

Declaration
public bool InsideOrIntersectingPlane(PlaneD plane)
Parameters
Type Name Description
PlaneD plane

The plane to test against.

Returns
Type Description
System.Boolean

false if fully outside, true if inside or intersecting.

IntersectRay(RayD)

Checks if a given ray originates in, or intersects this AABB.

Declaration
public bool IntersectRay(RayD ray)
Parameters
Type Name Description
RayD ray

The ray to test against.

Returns
Type Description
System.Boolean

Intersects(AABBd)

Check if this AABB intersects with another

Declaration
public bool Intersects(AABBd b)
Parameters
Type Name Description
AABBd b
Returns
Type Description
System.Boolean

Intersects(AABBd, AABBd)

Check if two AABBs intersect each other

Declaration
public static bool Intersects(AABBd left, AABBd right)
Parameters
Type Name Description
AABBd left
AABBd right
Returns
Type Description
System.Boolean

Intersects(AABBd, double3)

Check if a point lies within a AABB

Declaration
public static bool Intersects(AABBd aabb, double3 point)
Parameters
Type Name Description
AABBd aabb
double3 point
Returns
Type Description
System.Boolean

Intersects(double3)

Check if point lies in this AABB

Declaration
public bool Intersects(double3 point)
Parameters
Type Name Description
double3 point
Returns
Type Description
System.Boolean

Union(AABBd, AABBd)

Calculates the bounding box around two existing bounding boxes.

Declaration
public static AABBd Union(AABBd a, AABBd b)
Parameters
Type Name Description
AABBd a

One of the bounding boxes to build the union from

AABBd b

The other bounding box to build the union from

Returns
Type Description
AABBd

The smallest axis aligned bounding box containing both input boxes

Union(AABBd, double3)

Calculates the bounding box around an existing bounding box and a single point.

Declaration
public static AABBd Union(AABBd a, double3 p)
Parameters
Type Name Description
AABBd a

The bounding boxes to build the union from.

double3 p

The point to be enclosed by the resulting bounding box

Returns
Type Description
AABBd

The smallest axis aligned bounding box containing the input box and the point.

Operators

BitwiseOr(AABBd, AABBd)

Calculates the bounding box around two existing bounding boxes.

Declaration
public static AABBd operator |(AABBd a, AABBd b)
Parameters
Type Name Description
AABBd a

One of the bounding boxes to build the union from

AABBd b

The other bounding box, to build the union from

Returns
Type Description
AABBd

The smallest axis aligned bounding box containing both input boxes

BitwiseOr(AABBd, double3)

Calculates the bounding box around an existing bounding box and a single point.

Declaration
public static AABBd operator |(AABBd a, double3 p)
Parameters
Type Name Description
AABBd a

The bounding boxes to build the union from.

double3 p

The point to be enclosed by the resulting bounding box

Returns
Type Description
AABBd

The smallest axis aligned bounding box containing the input box and the point.

Examples

Use this operator e.g. to calculate the bounding box for a given list of points.

  AABB box = new AABB(pointList.First(), pointList.First());
  foreach (double3 p in pointList)
      box |= p;

Equality(AABBd, AABBd)

Operator override for equality.

Declaration
public static bool operator ==(AABBd left, AABBd right)
Parameters
Type Name Description
AABBd left

The AABBd.

AABBd right

The scalar value.

Returns
Type Description
System.Boolean

Inequality(AABBd, AABBd)

Operator override for inequality.

Declaration
public static bool operator !=(AABBd left, AABBd right)
Parameters
Type Name Description
AABBd left

The AABBd.

AABBd right

The scalar value.

Returns
Type Description
System.Boolean

Multiply(double4x4, AABBd)

Applies a transformation on the bounding box. After the transformation another axis aligned bounding box results. This is done by transforming all eight vertices of the box and re-aligning to the axes afterwards.

Declaration
public static AABBd operator *(double4x4 m, AABBd box)
Parameters
Type Name Description
double4x4 m

The transformation matrix.

AABBd box

the box to transform.

Returns
Type Description
AABBd

A new axis aligned bounding box.

Generated by DocFX
GitHub Repo
Back to top