Logo Euclid

Box Type

A struct of 9 floats representing an immutable 3D box with any rotation in 3D space. Described by z, y and z of the Origin and x, y and z for each of the three Edge vectors. Similar to PPlane, however the three vectors are not unitized. This implementation guarantees the box to be always valid. That means the Min X, Y and Z axes cannot be flipped individually. However the length of one of these axes might still be zero.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Record fields

Record Field Description

OriginX

Full Usage: OriginX

Field type: float

The X coordinate of the Origin Corner of the Box.

Field type: float

OriginY

Full Usage: OriginY

Field type: float

The Y coordinate of the Origin Corner of the Box.

Field type: float

OriginZ

Full Usage: OriginZ

Field type: float

The Z coordinate of the Origin Corner of the Box.

Field type: float

XaxisX

Full Usage: XaxisX

Field type: float

The X component of the edge vector representing the X-axis of the Box.

Field type: float

XaxisY

Full Usage: XaxisY

Field type: float

The Y component of the edge vector representing the X-axis of the Box.

Field type: float

XaxisZ

Full Usage: XaxisZ

Field type: float

The Z component of the edge vector representing the X-axis of the Box.

Field type: float

YaxisX

Full Usage: YaxisX

Field type: float

The X component of the edge vector representing the Y-axis of the Box.

Field type: float

YaxisY

Full Usage: YaxisY

Field type: float

The Y component of the edge vector representing the Y-axis of the Box.

Field type: float

YaxisZ

Full Usage: YaxisZ

Field type: float

The Z component of the edge vector representing the Y-axis of the Box.

Field type: float

ZaxisX

Full Usage: ZaxisX

Field type: float

The X component of the edge vector representing the Z-axis of the Box.

Field type: float

ZaxisY

Full Usage: ZaxisY

Field type: float

The Y component of the edge vector representing the Z-axis of the Box.

Field type: float

ZaxisZ

Full Usage: ZaxisZ

Field type: float

The Z component of the edge vector representing the Z-axis of the Box.

Field type: float

Instance members

Instance member Description

this.AreaOfBiggestFace

Full Usage: this.AreaOfBiggestFace

Returns: float

Returns the Area of the biggest face of the box. This is the biggest of the three faces X*Y, X*Z and Y*Z.

Returns: float

this.AreaOfSmallestFace

Full Usage: this.AreaOfSmallestFace

Returns: float

Returns the Area of the smallest face of the box. This is the smallest of the three faces X*Y, X*Z and Y*Z.

Returns: float

this.AsFSharpCode

Full Usage: this.AsFSharpCode

Returns: string

Format box into an F# code string that can be used to recreate the box.

Returns: string

this.AsString

Full Usage: this.AsString

Returns: string

Format box into string with nice floating point number formatting of X, Y and Z size only. But without type name as in v.ToString()

Returns: string

this.BackFace

Full Usage: this.BackFace

Returns: Rect3D

Returns the back face of the box in counter-clockwise order, looking from front. Returns Origin at point 3, X-axis to point 2, Y-axis to point 7. The normal of the Rect3D points into the Box.

            local      (back)
            Z-axis     (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- (right)
            |   |           |   |
    (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                    (bottom)
                    (front)

Returns: Rect3D

this.BottomFace

Full Usage: this.BottomFace

Returns: Rect3D

Returns the bottom face of the box in counter-clockwise order, looking from above. Returns Origin at point 0, X-axis to point 1, Y-axis to point 3. The normal of the Rect3D points into the Box.

            local      (back)
            Z-axis     (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- (right)
            |   |           |   |
    (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                    (bottom)
                    (front)

Returns: Rect3D

this.Center

Full Usage: this.Center

Returns: Pnt
Modifiers: inline

The center of the Box.

Returns: Pnt

this.Contains

Full Usage: this.Contains

Parameters:
Returns: bool

Check for point containment in the Box. By doing six dot products with the box axes to test its six faces. A point exactly on the edge of the box is considered inside.

p : Pnt
Returns: bool

this.ContainsXYZ

Full Usage: this.ContainsXYZ

Parameters:
    x : float
    y : float
    z : float

Returns: bool

Check for point containment in the Box. By doing six dot products with the box axes to test its six faces. A point exactly on the edge of the box is considered inside.

x : float
y : float
z : float
Returns: bool

this.CountZeroSides

Full Usage: this.CountZeroSides

Returns: int
Modifiers: inline

Counts the amount of sides that are smaller than the zeroLength tolerance. This is 0, 1, 2 or 3.

Returns: int

this.Diagonal

Full Usage: this.Diagonal

Returns: Vec
Modifiers: inline

The diagonal vector of the Box.

Returns: Vec

this.DoesIntersectPlane

Full Usage: this.DoesIntersectPlane

Parameters:
    pl : NPlane - The plane to test for intersection.

Returns: bool TRUE if the plane intersects or touches this box, FALSE otherwise.
Modifiers: inline

Checks if an infinite plane intersects this oriented 3D box. Projects the box's three half-axis vectors onto the plane normal and compares their sum with the distance from the box center to the plane. (center-extents test) A plane that only touches a corner, an edge or a face of the box counts as intersecting too.

pl : NPlane

The plane to test for intersection.

Returns: bool

TRUE if the plane intersects or touches this box, FALSE otherwise.

this.Edge01

Full Usage: this.Edge01

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 0 to 1.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge03

Full Usage: this.Edge03

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 0 to 3.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge04

Full Usage: this.Edge04

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 0 to 4.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge10

Full Usage: this.Edge10

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 1 to 0. This is the reverse of Edge01.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge12

Full Usage: this.Edge12

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 1 to 2.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge15

Full Usage: this.Edge15

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 1 to 5.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge21

Full Usage: this.Edge21

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 2 to 1. This is the reverse of Edge12.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge23

Full Usage: this.Edge23

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 2 to 3. This is the reverse of Edge32.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge26

Full Usage: this.Edge26

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 2 to 6.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge30

Full Usage: this.Edge30

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 3 to 0. This is the reverse of Edge03.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge32

Full Usage: this.Edge32

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 3 to 2.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge37

Full Usage: this.Edge37

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 3 to 7.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge40

Full Usage: this.Edge40

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 4 to 0. This is the reverse of Edge04.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge45

Full Usage: this.Edge45

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 4 to 5.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge47

Full Usage: this.Edge47

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 4 to 7.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge51

Full Usage: this.Edge51

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 5 to 1. This is the reverse of Edge15.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge54

Full Usage: this.Edge54

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 5 to 4. This is the reverse of Edge45.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge56

Full Usage: this.Edge56

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 5 to 6.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge62

Full Usage: this.Edge62

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 6 to 2. This is the reverse of Edge26.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge65

Full Usage: this.Edge65

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 6 to 5. This is the reverse of Edge56.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge67

Full Usage: this.Edge67

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 6 to 7. This is the reverse of Edge76.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge73

Full Usage: this.Edge73

Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 7 to 3. This is the reverse of Edge37.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge74

Full Usage: this.Edge74

Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 7 to 4. This is the reverse of Edge47.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edge76

Full Usage: this.Edge76

Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 7 to 6.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

Returns: Line3D

this.Edges

Full Usage: this.Edges

Returns: Line3D[]

Returns the 12 edges of this box as an array of 12 Lines. Pairs in this order: 0-1, 1-2, 3-2, 0-3, 0-4, 1-5, 2-6, 3-7, 4-5, 5-6, 7-6, 4-7

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Line3D[]

this.EvaluateAt

Full Usage: this.EvaluateAt

Parameters:
    xParameter : float
    yParameter : float
    zParameter : float

Returns: Pnt
Modifiers: inline
 Evaluate an X, Y and Z parameter of the box.
  0.0, 0.0, 0.0 returns the Origin.
  1.0, 1.0, 1.0 returns the FarCorner.
xParameter : float
yParameter : float
zParameter : float
Returns: Pnt

this.Faces

Full Usage: this.Faces

Returns: Rect3D[]

Returns the six faces of the box. The normals of the Rect3Ds are oriented with the X-axis, Y-axis, or Z-axis. The order of the Rect3D is: BottomFace, FrontFace, RightFace, BackFace, LeftFace, TopFace.

            local      3 (back)
            Z-axis     5 (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- 2 (right)
            |   |           |   |
  4 (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                   0 (bottom)
                   1 (front)

Returns: Rect3D[]

this.FarCorner

Full Usage: this.FarCorner

Returns: Pnt
Modifiers: inline

The corner diagonally opposite of corner from Origin.

Returns: Pnt

this.FrontFace

Full Usage: this.FrontFace

Returns: Rect3D

Returns the front face of the box in counter-clockwise order, looking from front. Returns Origin at point 0, X-axis to point 1, Y-axis to point 4. The normal of the Rect3D points away from the Box.

            local      (back)
            Z-axis     (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- (right)
            |   |           |   |
    (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                    (bottom)
                    (front)

Returns: Rect3D

this.GetEdge

Full Usage: this.GetEdge

Parameters:
    edgeIndex : int

Returns: Line3D

Returns the edge of the box at the specified index. The order of the edges is: 0-1, 1-2, 3-2, 0-3, 0-4, 1-5, 2-6, 3-7, 4-5, 5-6, 7-6, 4-7

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

edgeIndex : int
Returns: Line3D

this.GetFace

Full Usage: this.GetFace

Parameters:
    faceIndex : int - The index of the face to retrieve. Valid range is 0 to 5.

Returns: Rect3D The Rect3D representing the specified face of the Box.

Returns the face of the box at the specified index. The order of the faces is: BottomFace, FrontFace, RightFace, BackFace, LeftFace, TopFace.

            local      3 (back)
            Z-axis     5 (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- 2 (right)
            |   |           |   |
  4 (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                   0 (bottom)
                   1 (front)

faceIndex : int

The index of the face to retrieve. Valid range is 0 to 5.

Returns: Rect3D

The Rect3D representing the specified face of the Box.

this.GetPoint

Full Usage: this.GetPoint

Parameters:
    pointIndex : int

Returns: Pnt

Returns the point of the box at the specified index. The order of the points is: Pt0, Pt1, Pt2, Pt3, Pt4, Pt5, Pt6, Pt7.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

pointIndex : int
Returns: Pnt

this.HasVolume

Full Usage: this.HasVolume

Returns: bool
Modifiers: inline

Tests if none of the X, Y, and Z axes is smaller than the zeroLength tolerance. Same as .IsValid

Returns: bool

this.IntersectPlane

Full Usage: this.IntersectPlane

Parameters:
    pl : NPlane - The plane to intersect with this box.

Returns: ResizeArray<Pnt> A ResizeArray of 1 to 6 points, or an empty ResizeArray if the plane does not intersect this box.

Intersects an infinite plane with this oriented 3D box. The intersection of a plane with a box is a convex polygon with 3 to 6 vertices. The returned points are sorted counter-clockwise around the plane normal. (right-hand rule) Box corners lying on the plane (within a tolerance of 1e-12) are returned as intersection points too. So if the plane touches the box in just a corner or an edge, a ResizeArray of only 1 or 2 points is returned. If the plane coincides with one of the box's faces, the 4 corners of that face are returned. A degenerate box (with a size of zero in one or more axes) may return duplicate points.

pl : NPlane

The plane to intersect with this box.

Returns: ResizeArray<Pnt>

A ResizeArray of 1 to 6 points, or an empty ResizeArray if the plane does not intersect this box.

this.IntersectRay

Full Usage: this.IntersectRay

Parameters:
    ray : Line3D - The ray (Line3D) to intersect with the box.

Returns: (float * float) voption ValueNone if there is no intersection; otherwise, ValueSome(tEntry, tExit).

Intersects an infinite ray (Line3D extended infinitely in both directions) with this Box. Uses the slab intersection method in the box's local coordinate system. Returns ValueNone if the ray does not intersect the box or if the ray direction is too short. Returns ValueSome with entry and exit parameters on the ray if it intersects. A parameter of 0.0 corresponds to the ray's From point, 1.0 to its To point.

ray : Line3D

The ray (Line3D) to intersect with the box.

Returns: (float * float) voption

ValueNone if there is no intersection; otherwise, ValueSome(tEntry, tExit).

this.IsFlat

Full Usage: this.IsFlat

Returns: bool
Modifiers: inline

Tests if one of the X, Y, and Z axes is smaller than the zeroLength tolerance.

Returns: bool

this.IsLine

Full Usage: this.IsLine

Returns: bool
Modifiers: inline

Tests if two of the X, Y, and Z axes are smaller than the zeroLength tolerance.

Returns: bool

this.IsPoint

Full Usage: this.IsPoint

Returns: bool
Modifiers: inline

Tests if all sides are smaller than the zeroLength tolerance. Same as b.IsZero.

Returns: bool

this.IsValid

Full Usage: this.IsValid

Returns: bool
Modifiers: inline

Tests if none of the X, Y, and Z axes are smaller than the zeroLength tolerance. Same as .HasVolume

Returns: bool

this.IsZero

Full Usage: this.IsZero

Returns: bool
Modifiers: inline

Tests if all sides are smaller than the zeroLength tolerance. Same as b.IsPoint.

Returns: bool

this.LeftFace

Full Usage: this.LeftFace

Returns: Rect3D

Returns the left face of the box in counter-clockwise order, looking from right. Returns Origin at point 0, X-axis to point 3, Y-axis to point 4. The normal of the Rect3D points into the Box.

            local      (back)
            Z-axis     (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- (right)
            |   |           |   |
    (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                    (bottom)
                    (front)

Returns: Rect3D

this.LongestEdge

Full Usage: this.LongestEdge

Returns: float
Modifiers: inline

Returns the longest edge of the Box.

Returns: float

this.LongestEdgeSq

Full Usage: this.LongestEdgeSq

Returns: float
Modifiers: inline

Returns the square length of longest edge of the Box.

Returns: float

this.Move

Full Usage: this.Move

Parameters:
Returns: Box
Modifiers: inline

Returns a 3D box moved by a vector in world space. The box's axes are unchanged.

v : Vec
Returns: Box

this.MoveX

Full Usage: this.MoveX

Parameters:
    distance : float

Returns: Box
Modifiers: inline

Returns a 3D box moved by a given distance along the world X-axis. This is not the box's own (possibly rotated) local X-axis, use Box.translateLocalX for that.

distance : float
Returns: Box

this.MoveY

Full Usage: this.MoveY

Parameters:
    distance : float

Returns: Box
Modifiers: inline

Returns a 3D box moved by a given distance along the world Y-axis. This is not the box's own (possibly rotated) local Y-axis, use Box.translateLocalY for that.

distance : float
Returns: Box

this.MoveZ

Full Usage: this.MoveZ

Parameters:
    distance : float

Returns: Box
Modifiers: inline

Returns a 3D box moved by a given distance along the world Z-axis. This is not the box's own (possibly rotated) local Z-axis, use Box.translateLocalZ for that.

distance : float
Returns: Box

this.Origin

Full Usage: this.Origin

Returns: Pnt

Creates a 3D Point from b.OriginX, b.OriginY and b.OriginZ

Returns: Pnt

this.Plane

Full Usage: this.Plane

Returns: PPlane
Modifiers: inline

Gets the Plane that this box is based on.

Returns: PPlane

this.Points

Full Usage: this.Points

Returns: Pnt[]

Returns the bottom corners of the box in counter-clockwise order, starting at Origin. Then the top corners starting above Origin. Returns an array of 8 Points.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt[]

this.Pt0

Full Usage: this.Pt0

Returns: Pnt
Modifiers: inline

Returns point 0 of the box, same box.Origin.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt1

Full Usage: this.Pt1

Returns: Pnt
Modifiers: inline

Returns point 1 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt2

Full Usage: this.Pt2

Returns: Pnt
Modifiers: inline

Returns point 2 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt3

Full Usage: this.Pt3

Returns: Pnt
Modifiers: inline

Returns point 3 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt4

Full Usage: this.Pt4

Returns: Pnt
Modifiers: inline

Returns point 4 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt5

Full Usage: this.Pt5

Returns: Pnt
Modifiers: inline

Returns point 5 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt6

Full Usage: this.Pt6

Returns: Pnt
Modifiers: inline

Returns point 6 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.Pt7

Full Usage: this.Pt7

Returns: Pnt
Modifiers: inline

Returns point 7 of the box.

   local        local
   Z-axis       Y-axis
   ^           /
   |   7      /        6
   |   +---------------+
   |  /|    /         /|
   | / |   /         / |
 4 |/  |  /       5 /  |
   +---------------+   |
   |   |/          |   |
   |   +-----------|---+
   |  / 3          |  / 2
   | /             | /
   |/              |/     local
   +---------------+----> X-axis
   0               1

Returns: Pnt

this.RightFace

Full Usage: this.RightFace

Returns: Rect3D

Returns the right face of the box in counter-clockwise order, looking from right. Returns Origin at point 1, X-axis to point 2, Y-axis to point 5. The normal of the Rect3D points away from the Box.

            local      (back)
            Z-axis     (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- (right)
            |   |           |   |
    (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                    (bottom)
                    (front)

Returns: Rect3D

this.Rotate

Full Usage: this.Rotate

Parameters:
Returns: Box
Modifiers: inline

Multiplies (or applies) a Quaternion to a 3D box. The box is rotated around the World Origin.

q : Quaternion
Returns: Box

this.RotateWithCenter

Full Usage: this.RotateWithCenter

Parameters:
Returns: Box
Modifiers: inline

Multiplies (or applies) a Quaternion to a 3D box around a given center point.

cen : Pnt
q : Quaternion
Returns: Box

this.Scale

Full Usage: this.Scale

Parameters:
    factor : float

Returns: Box
Modifiers: inline

Scales the box by a given factor. Scale center is World Origin 0,0

factor : float
Returns: Box

this.ScaleOn

Full Usage: this.ScaleOn

Parameters:
    cen : Pnt
    factor : float

Returns: Box
Modifiers: inline

Scales the box by a given factor on a given center point

cen : Pnt
factor : float
Returns: Box

this.ShortestEdge

Full Usage: this.ShortestEdge

Returns: float
Modifiers: inline

Returns the shortest edge of the Box.

Returns: float

this.ShortestEdgeSq

Full Usage: this.ShortestEdgeSq

Returns: float
Modifiers: inline

Returns the square length of shortest edge of the Box.

Returns: float

this.SizeX

Full Usage: this.SizeX

Returns: float
Modifiers: inline

The size in X direction.

Returns: float

this.SizeXSq

Full Usage: this.SizeXSq

Returns: float
Modifiers: inline

The size in X direction squared.

Returns: float

this.SizeY

Full Usage: this.SizeY

Returns: float
Modifiers: inline

The size in Y direction.

Returns: float

this.SizeYSq

Full Usage: this.SizeYSq

Returns: float
Modifiers: inline

The size in Y direction squared.

Returns: float

this.SizeZ

Full Usage: this.SizeZ

Returns: float
Modifiers: inline

The size in Z direction.

Returns: float

this.SizeZSq

Full Usage: this.SizeZSq

Returns: float
Modifiers: inline

The size in Z direction squared.

Returns: float

this.TopFace

Full Usage: this.TopFace

Returns: Rect3D

Returns the top face of the box in counter-clockwise order, looking from above. Returns Origin at point 4, X-axis to point 5, Y-axis to point 7. The normal of the Rect3D points away from the Box.

            local      (back)
            Z-axis     (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- (right)
            |   |           |   |
    (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                    (bottom)
                    (front)

Returns: Rect3D

this.TransformRigid

Full Usage: this.TransformRigid

Parameters:
Returns: Box
Modifiers: inline

Multiplies (or applies) a RigidMatrix to a 3D box. The returned box is guaranteed to have still orthogonal vectors.

m : RigidMatrix
Returns: Box

this.Volume

Full Usage: this.Volume

Returns: float
Modifiers: inline

Calculates the volume of the Box.

Returns: float

this.Xaxis

Full Usage: this.Xaxis

Returns: Vec

Creates a 3D Vector from b.XaxisX, b.XaxisY and b.XaxisZ

Returns: Vec

this.XaxisUnit

Full Usage: this.XaxisUnit

Returns: UnitVec
Modifiers: inline

Creates a unitized version of the local X-axis.

Returns: UnitVec

this.Yaxis

Full Usage: this.Yaxis

Returns: Vec

Creates a 3D Vector from b.YaxisX, b.YaxisY and b.YaxisZ

Returns: Vec

this.YaxisUnit

Full Usage: this.YaxisUnit

Returns: UnitVec
Modifiers: inline

Creates a unitized version of the local Y-axis.

Returns: UnitVec

this.Zaxis

Full Usage: this.Zaxis

Returns: Vec

Creates a 3D Vector from b.ZaxisX, b.ZaxisY and b.ZaxisZ

Returns: Vec

this.ZaxisUnit

Full Usage: this.ZaxisUnit

Returns: UnitVec
Modifiers: inline

Creates a unitized version of the local Z-axis.

Returns: UnitVec

Static members

Static member Description

Box.areBoxesAligned cosineTolerance a b

Full Usage: Box.areBoxesAligned cosineTolerance a b

Parameters:
Returns: bool

Checks if the axes of both boxes are aligned, meaning they are parallel and have the same orientation

cosineTolerance : float<MeasureProduct<cosine, MeasureOne>>
a : Box
b : Box
Returns: bool

Box.areaOfBiggestFace b

Full Usage: Box.areaOfBiggestFace b

Parameters:
Returns: float
Modifiers: inline

Returns the area of the biggest face of the box.

b : Box
Returns: float

Box.areaOfSmallestFace b

Full Usage: Box.areaOfSmallestFace b

Parameters:
Returns: float
Modifiers: inline

Returns the area of the smallest face of the box.

b : Box
Returns: float

Box.asFSharpCode b

Full Usage: Box.asFSharpCode b

Parameters:
Returns: string
Modifiers: inline

Format box into an F# code string that can be used to recreate it.

b : Box
Returns: string

Box.asString b

Full Usage: Box.asString b

Parameters:
Returns: string
Modifiers: inline

Format box into string with nice floating point number formatting of X, Y and Z size only.

b : Box
Returns: string

Box.backFace b

Full Usage: Box.backFace b

Parameters:
Returns: Rect3D
Modifiers: inline

Returns the back face of the box.

b : Box
Returns: Rect3D

Box.bottomFace b

Full Usage: Box.bottomFace b

Parameters:
Returns: Rect3D
Modifiers: inline

Returns the bottom face of the box.

b : Box
Returns: Rect3D

Box.center b

Full Usage: Box.center b

Parameters:
Returns: Pnt
Modifiers: inline

The center of the box.

b : Box
Returns: Pnt

Box.contains p b

Full Usage: Box.contains p b

Parameters:
Returns: bool
Modifiers: inline

Check for point containment in the Box. By doing six dot products with the box axes to test its six faces. A point exactly on the edge of the box is considered inside.

p : Pnt
b : Box
Returns: bool

Box.containsXYZ x y z b

Full Usage: Box.containsXYZ x y z b

Parameters:
    x : float
    y : float
    z : float
    b : Box

Returns: bool
Modifiers: inline

Check for point containment in the Box. By doing six dot products with the box axes to test its six faces. A point exactly on the edge of the box is considered inside.

x : float
y : float
z : float
b : Box
Returns: bool

Box.countZeroSides b

Full Usage: Box.countZeroSides b

Parameters:
Returns: int
Modifiers: inline

Counts the amount of sides that are smaller than the zeroLength tolerance.

b : Box
Returns: int

Box.create (origin, xAxis, yAxis, zAxis)

Full Usage: Box.create (origin, xAxis, yAxis, zAxis)

Parameters:
Returns: Box

Creates a box from an origin and three non-zero, mutually perpendicular, right-handed edge vectors. Fails if any coordinate is non-finite or the axes do not form valid box geometry.

origin : Pnt
xAxis : Vec
yAxis : Vec
zAxis : Vec
Returns: Box

Box.createFromBounds (minX, minY, minZ, maxX, maxY, maxZ)

Full Usage: Box.createFromBounds (minX, minY, minZ, maxX, maxY, maxZ)

Parameters:
    minX : float
    minY : float
    minZ : float
    maxX : float
    maxY : float
    maxZ : float

Returns: Box
Modifiers: inline

Creates a 3D box from the bounds (minX, minY, minZ) and (maxX, maxY, maxZ).

minX : float
minY : float
minZ : float
maxX : float
maxY : float
maxZ : float
Returns: Box

Box.createFromDirsAndPoints dirX dirY pts

Full Usage: Box.createFromDirsAndPoints dirX dirY pts

Parameters:
Returns: Box

Finds the oriented bounding box in 3D of a set of points. The orientation of the X-axis is defined by the dirX vector. The orientation of the Y-axis is defined by the dirY vector.

dirX : Vec
dirY : Vec
pts : IList<Pnt>
Returns: Box

Box.createFromPlane x y z pl

Full Usage: Box.createFromPlane x y z pl

Parameters:
    x : float
    y : float
    z : float
    pl : PPlane

Returns: Box
Modifiers: inline

Creates a 3D box from PPlane and x, y and Z size.

x : float
y : float
z : float
pl : PPlane
Returns: Box

Box.createFromPlaneAndPoints pl pts

Full Usage: Box.createFromPlaneAndPoints pl pts

Parameters:
Returns: Box

Finds the oriented bounding box in 3D of a set of points. The orientation of the X-axis is defined by the dirX vector. The orientation of the Y-axis is defined by the dirY vector.

pl : PPlane
pts : IList<Pnt>
Returns: Box

Box.createFromRect2D zLow zHigh r

Full Usage: Box.createFromRect2D zLow zHigh r

Parameters:
    zLow : float
    zHigh : float
    r : Rect2D

Returns: Box

Creates a 3D box from a 2D rectangle and Z lower and upper position.

zLow : float
zHigh : float
r : Rect2D
Returns: Box

Box.createFromRect3D zLow zHigh r

Full Usage: Box.createFromRect3D zLow zHigh r

Parameters:
    zLow : float
    zHigh : float
    r : Rect3D

Returns: Box
Modifiers: inline

Creates a 3D box from a 3D rectangle and a Z lower and upper offset. Both zLow and zHigh offsets are applied along the normal of the rectangle in the same direction from the Origin.

zLow : float
zHigh : float
r : Rect3D
Returns: Box

Box.createUnchecked (originX, originY, originZ, xAxisX, xAxisY, xAxisZ, yAxisX, yAxisY, yAxisZ, zAxisX, zAxisY, zAxisZ)

Full Usage: Box.createUnchecked (originX, originY, originZ, xAxisX, xAxisY, xAxisZ, yAxisX, yAxisY, yAxisZ, zAxisX, zAxisY, zAxisZ)

Parameters:
    originX : float
    originY : float
    originZ : float
    xAxisX : float
    xAxisY : float
    xAxisZ : float
    yAxisX : float
    yAxisY : float
    yAxisZ : float
    zAxisX : float
    zAxisY : float
    zAxisZ : float

Returns: Box
Modifiers: inline

Create a box from origin coordinates and X-, Y-, and Z-axis vector components. It does NOT verify the orientation of vectors. When compiled in DEBUG mode or with the CHECKED_EUCLID symbol defined the input is verified.

originX : float
originY : float
originZ : float
xAxisX : float
xAxisY : float
xAxisZ : float
yAxisX : float
yAxisY : float
yAxisZ : float
zAxisX : float
zAxisY : float
zAxisZ : float
Returns: Box

Box.createUncheckedVec (origin, xAxis, yAxis, zAxis)

Full Usage: Box.createUncheckedVec (origin, xAxis, yAxis, zAxis)

Parameters:
Returns: Box
Modifiers: inline

Unsafe constructor that creates a box from origin point and three axis vectors. It does NOT verify the orientation of vectors.

origin : Pnt
xAxis : Vec
yAxis : Vec
zAxis : Vec
Returns: Box

Box.diagonal b

Full Usage: Box.diagonal b

Parameters:
Returns: Vec
Modifiers: inline

The diagonal vector of the box.

b : Box
Returns: Vec

Box.doesIntersectPlane pl b

Full Usage: Box.doesIntersectPlane pl b

Parameters:
Returns: bool
Modifiers: inline

Same as b.DoesIntersectPlane(pl).

pl : NPlane
b : Box
Returns: bool

Box.edge01 b

Full Usage: Box.edge01 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 0 to 1.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge03 b

Full Usage: Box.edge03 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 0 to 3.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge04 b

Full Usage: Box.edge04 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 0 to 4.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge10 b

Full Usage: Box.edge10 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 1 to 0. This is the reverse of Edge01.

b : Box
Returns: Line3D

Box.edge12 b

Full Usage: Box.edge12 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 1 to 2.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge15 b

Full Usage: Box.edge15 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 1 to 5.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge21 b

Full Usage: Box.edge21 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 2 to 1. This is the reverse of Edge12.

b : Box
Returns: Line3D

Box.edge23 b

Full Usage: Box.edge23 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 2 to 3. This is the reverse of Edge32.

b : Box
Returns: Line3D

Box.edge26 b

Full Usage: Box.edge26 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 2 to 6.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge30 b

Full Usage: Box.edge30 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 3 to 0. This is the reverse of Edge03.

b : Box
Returns: Line3D

Box.edge32 b

Full Usage: Box.edge32 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 3 to 2.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge37 b

Full Usage: Box.edge37 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 3 to 7.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge40 b

Full Usage: Box.edge40 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 4 to 0. This is the reverse of Edge04.

b : Box
Returns: Line3D

Box.edge45 b

Full Usage: Box.edge45 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 4 to 5.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge47 b

Full Usage: Box.edge47 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 4 to 7.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge51 b

Full Usage: Box.edge51 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 5 to 1. This is the reverse of Edge15.

b : Box
Returns: Line3D

Box.edge54 b

Full Usage: Box.edge54 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 5 to 4. This is the reverse of Edge45.

b : Box
Returns: Line3D

Box.edge56 b

Full Usage: Box.edge56 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 5 to 6.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edge62 b

Full Usage: Box.edge62 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 6 to 2. This is the reverse of Edge26.

b : Box
Returns: Line3D

Box.edge65 b

Full Usage: Box.edge65 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 6 to 5. This is the reverse of Edge56.

b : Box
Returns: Line3D

Box.edge67 b

Full Usage: Box.edge67 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 6 to 7. This is the reverse of Edge76.

b : Box
Returns: Line3D

Box.edge73 b

Full Usage: Box.edge73 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Z-aligned edge from point 7 to 3. This is the reverse of Edge37.

b : Box
Returns: Line3D

Box.edge74 b

Full Usage: Box.edge74 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the Y-aligned edge from point 7 to 4. This is the reverse of Edge47.

b : Box
Returns: Line3D

Box.edge76 b

Full Usage: Box.edge76 b

Parameters:
Returns: Line3D
Modifiers: inline

Returns the X-aligned edge from point 7 to 6.

   7------6
  /|     /|
 4------5 |
 | |    | |
 | 3----|-2
 |/     |/
 0------1

b : Box
Returns: Line3D

Box.edges b

Full Usage: Box.edges b

Parameters:
Returns: Line3D[]
Modifiers: inline

Returns all 12 edges of the box.

b : Box
Returns: Line3D[]

Box.equals tol a b

Full Usage: Box.equals tol a b

Parameters:
Returns: bool

Checks if two 3D-boxes are equal within tolerance. Does not recognize congruent boxes with different rotation as equal. Use a tolerance of 0.0 to check for an exact match.

tol : float
a : Box
b : Box
Returns: bool

Box.evaluateAt xParameter yParameter zParameter b

Full Usage: Box.evaluateAt xParameter yParameter zParameter b

Parameters:
    xParameter : float
    yParameter : float
    zParameter : float
    b : Box

Returns: Pnt
Modifiers: inline

Evaluate an X, Y and Z parameter of the box.

xParameter : float
yParameter : float
zParameter : float
b : Box
Returns: Pnt

Box.expand dist b

Full Usage: Box.expand dist b

Parameters:
    dist : float
    b : Box

Returns: Box

Returns box expanded by distance on all six sides. Does check for underflow if distance is negative and raises EuclidException.

dist : float
b : Box
Returns: Box

Box.expandRel factor b

Full Usage: Box.expandRel factor b

Parameters:
    factor : float
    b : Box

Returns: Box

Returns the 3D box expanded by a relative factor on all six sides. Values between 0.0 and 1.0 shrink the box. Values larger than 1.0 expand the box. Does check for underflow if factor is negative and raises EuclidException.

factor : float
b : Box
Returns: Box

Box.expandRelXYZ factorX factorY factorZ b

Full Usage: Box.expandRelXYZ factorX factorY factorZ b

Parameters:
    factorX : float
    factorY : float
    factorZ : float
    b : Box

Returns: Box

Returns the 3D box expanded by a relative factor on all six sides, separately for X, Y, Z. Values between 0.0 and 1.0 shrink the box. Values larger than 1.0 expand the box. Does check for underflow if any factor is negative and raises EuclidException.

factorX : float
factorY : float
factorZ : float
b : Box
Returns: Box

Box.expandXYZ distX distY distZ b

Full Usage: Box.expandXYZ distX distY distZ b

Parameters:
    distX : float
    distY : float
    distZ : float
    b : Box

Returns: Box

Returns box expanded by respective distances on all six sides. Does check for overflow if distance is negative and fails. distX, distY and distZ are for X-, Y-, and Z-axis respectively.

distX : float
distY : float
distZ : float
b : Box
Returns: Box

Box.faces b

Full Usage: Box.faces b

Parameters:
Returns: Rect3D[]
Modifiers: inline

Returns the six faces of the box in documented order.

b : Box
Returns: Rect3D[]

Box.failIfBoxesNotAlignedTo a msg b

Full Usage: Box.failIfBoxesNotAlignedTo a msg b

Parameters:
    a : Box
    msg : string
    b : Box

Returns: Box

when used in F# pipe returns the box before the pipe operator.

a : Box
msg : string
b : Box
Returns: Box

Box.farCorner b

Full Usage: Box.farCorner b

Parameters:
Returns: Pnt
Modifiers: inline

The corner diagonally opposite of corner from Origin.

b : Box
Returns: Pnt

Box.frontFace b

Full Usage: Box.frontFace b

Parameters:
Returns: Rect3D
Modifiers: inline

Returns the front face of the box.

b : Box
Returns: Rect3D

Box.getBoxBetween a b

Full Usage: Box.getBoxBetween a b

Parameters:
Returns: Box

Gets the space between two boxes, Boxes need to have aligned and parallel axes. Fails if not The resulting box is touching both input boxes and has the same orientation as them.

a : Box
b : Box
Returns: Box

Box.getBoxesAlignment a b

Full Usage: Box.getBoxesAlignment a b

Parameters:
Returns: float

Gets the maximum angular deviation in degrees between the corresponding axes (X, Y, Z) of two boxes.

a : Box
b : Box
Returns: float

Box.getEdge edgeIndex b

Full Usage: Box.getEdge edgeIndex b

Parameters:
    edgeIndex : int
    b : Box

Returns: Line3D
Modifiers: inline

Returns the edge of the box at the specified index.

edgeIndex : int
b : Box
Returns: Line3D

Box.getFace faceIndex b

Full Usage: Box.getFace faceIndex b

Parameters:
    faceIndex : int
    b : Box

Returns: Rect3D
Modifiers: inline

Returns the face of the box at the specified index. The order of the faces is: BottomFace, FrontFace, RightFace, BackFace, LeftFace, TopFace.

            local      3 (back)
            Z-axis     5 (top)
            ^          |
            |   7      |        6
            |   +---------------+
            |  /|      |       /|
            | / |             / |
          4 |/  |          5 /  |
            +---------------+  -|-- 2 (right)
            |   |           |   |
  4 (left)--|-  +-----------|---+
            |  / 3          |  / 2
            | /             | /
            |/      |       |/     local
            +---------------+----> X-axis
            0       |       1
                    |
                   0 (bottom)
                   1 (front)

faceIndex : int
b : Box
Returns: Rect3D

Box.getPoint pointIndex b

Full Usage: Box.getPoint pointIndex b

Parameters:
    pointIndex : int
    b : Box

Returns: Pnt
Modifiers: inline

Returns the point of the box at the specified index.

pointIndex : int
b : Box
Returns: Pnt

Box.hasVolume b

Full Usage: Box.hasVolume b

Parameters:
Returns: bool
Modifiers: inline

Tests if none of the X, Y, and Z axes is smaller than the zeroLength tolerance.

b : Box
Returns: bool

Box.intersectPlane pl b

Full Usage: Box.intersectPlane pl b

Parameters:
Returns: ResizeArray<Pnt>
Modifiers: inline

Same as b.IntersectPlane(pl).

pl : NPlane
b : Box
Returns: ResizeArray<Pnt>

Box.intersectRay ray box

Full Usage: Box.intersectRay ray box

Parameters:
    ray : Line3D - The ray (Line3D) to intersect with the box.
    box : Box - The box to intersect with.

Returns: (float * float) voption ValueNone if there is no intersection; otherwise, ValueSome(tEntry, tExit).
Modifiers: inline

Intersects an infinite ray (Line3D extended infinitely in both directions) with the Box. Uses the slab intersection method in the box's local coordinate system. Returns ValueNone if the ray does not intersect the box or if the ray direction is too short. Returns ValueSome with entry and exit parameters on the ray if it intersects. A parameter of 0.0 corresponds to the ray's From point, 1.0 to its To point.

ray : Line3D

The ray (Line3D) to intersect with the box.

box : Box

The box to intersect with.

Returns: (float * float) voption

ValueNone if there is no intersection; otherwise, ValueSome(tEntry, tExit).

Box.isFlat b

Full Usage: Box.isFlat b

Parameters:
Returns: bool
Modifiers: inline

Tests if one of the X, Y, and Z axes is smaller than the zeroLength tolerance.

b : Box
Returns: bool

Box.isLine b

Full Usage: Box.isLine b

Parameters:
Returns: bool
Modifiers: inline

Tests if two of the X, Y, and Z axes are smaller than the zeroLength tolerance.

b : Box
Returns: bool

Box.isPoint b

Full Usage: Box.isPoint b

Parameters:
Returns: bool
Modifiers: inline

Tests if all sides are smaller than the zeroLength tolerance. Same as Box.isZero.

b : Box
Returns: bool

Box.isValid b

Full Usage: Box.isValid b

Parameters:
Returns: bool
Modifiers: inline

Tests if none of the X, Y, and Z axes are smaller than the zeroLength tolerance.

b : Box
Returns: bool

Box.isZero b

Full Usage: Box.isZero b

Parameters:
Returns: bool
Modifiers: inline

Tests if all sides are smaller than the zeroLength tolerance. Same as Box.isPoint.

b : Box
Returns: bool

Box.leftFace b

Full Usage: Box.leftFace b

Parameters:
Returns: Rect3D
Modifiers: inline

Returns the left face of the box.

b : Box
Returns: Rect3D

Box.longestEdge b

Full Usage: Box.longestEdge b

Parameters:
Returns: float
Modifiers: inline

Returns the longest edge of the box.

b : Box
Returns: float

Box.longestEdgeSq b

Full Usage: Box.longestEdgeSq b

Parameters:
Returns: float
Modifiers: inline

Returns the square length of longest edge of the box.

b : Box
Returns: float

Box.move v b

Full Usage: Box.move v b

Parameters:
Returns: Box
Modifiers: inline

Creates a 3D box moved by a vector in world space. The box's axes are unchanged.

v : Vec
b : Box
Returns: Box

Box.moveX distance b

Full Usage: Box.moveX distance b

Parameters:
    distance : float
    b : Box

Returns: Box
Modifiers: inline

Returns the 3D box moved by a given distance along the world X-axis. This is not the box's own (possibly rotated) local X-axis, use Box.translateLocalX for that.

distance : float
b : Box
Returns: Box

Box.moveY distance b

Full Usage: Box.moveY distance b

Parameters:
    distance : float
    b : Box

Returns: Box
Modifiers: inline

Returns the 3D box moved by a given distance along the world Y-axis. This is not the box's own (possibly rotated) local Y-axis, use Box.translateLocalY for that.

distance : float
b : Box
Returns: Box

Box.moveZ distance b

Full Usage: Box.moveZ distance b

Parameters:
    distance : float
    b : Box

Returns: Box
Modifiers: inline

Returns the 3D box moved by a given distance along the world Z-axis. This is not the box's own (possibly rotated) local Z-axis, use Box.translateLocalZ for that.

distance : float
b : Box
Returns: Box

Box.notEquals tol a b

Full Usage: Box.notEquals tol a b

Parameters:
Returns: bool

Check if two 3D-boxes are not equal within a given tolerance. Use a tolerance of 0.0 to check if the two 3D-boxes are not exactly equal.

tol : float
a : Box
b : Box
Returns: bool

Box.origin b

Full Usage: Box.origin b

Parameters:
Returns: Pnt
Modifiers: inline

Creates a 3D Point from b.OriginX, b.OriginY and b.OriginZ

b : Box
Returns: Pnt

Box.plane b

Full Usage: Box.plane b

Parameters:
Returns: PPlane
Modifiers: inline

Gets the plane that this box is based on.

b : Box
Returns: PPlane

Box.points b

Full Usage: Box.points b

Parameters:
Returns: Pnt[]
Modifiers: inline

Returns the corners of the box in the documented order.

b : Box
Returns: Pnt[]

Box.pt0 b

Full Usage: Box.pt0 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 0 of the box, same as Origin.

b : Box
Returns: Pnt

Box.pt1 b

Full Usage: Box.pt1 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 1 of the box.

b : Box
Returns: Pnt

Box.pt2 b

Full Usage: Box.pt2 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 2 of the box.

b : Box
Returns: Pnt

Box.pt3 b

Full Usage: Box.pt3 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 3 of the box.

b : Box
Returns: Pnt

Box.pt4 b

Full Usage: Box.pt4 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 4 of the box.

b : Box
Returns: Pnt

Box.pt5 b

Full Usage: Box.pt5 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 5 of the box.

b : Box
Returns: Pnt

Box.pt6 b

Full Usage: Box.pt6 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 6 of the box.

b : Box
Returns: Pnt

Box.pt7 b

Full Usage: Box.pt7 b

Parameters:
Returns: Pnt
Modifiers: inline

Returns point 7 of the box.

b : Box
Returns: Pnt

Box.rightFace b

Full Usage: Box.rightFace b

Parameters:
Returns: Rect3D
Modifiers: inline

Returns the right face of the box.

b : Box
Returns: Rect3D

Box.rotate q b

Full Usage: Box.rotate q b

Parameters:
Returns: Box
Modifiers: inline

Multiplies (or applies) a Quaternion to a 3D box. The box IsRotated around the World Origin.

q : Quaternion
b : Box
Returns: Box

Box.rotateWithCenter cen q b

Full Usage: Box.rotateWithCenter cen q b

Parameters:
Returns: Box
Modifiers: inline

Multiplies (or applies) a Quaternion to a 3D box around a given center point.

cen : Pnt
q : Quaternion
b : Box
Returns: Box

Box.scale factor b

Full Usage: Box.scale factor b

Parameters:
    factor : float
    b : Box

Returns: Box
Modifiers: inline

Scales the 3D box by a given factor. Scale center is World Origin 0,0,0

factor : float
b : Box
Returns: Box

Box.scaleOn cen factor b

Full Usage: Box.scaleOn cen factor b

Parameters:
    cen : Pnt
    factor : float
    b : Box

Returns: Box
Modifiers: inline

Scales the box by a given factor around a given center point.

cen : Pnt
factor : float
b : Box
Returns: Box

Box.shortestEdge b

Full Usage: Box.shortestEdge b

Parameters:
Returns: float
Modifiers: inline

Returns the shortest edge of the box.

b : Box
Returns: float

Box.shortestEdgeSq b

Full Usage: Box.shortestEdgeSq b

Parameters:
Returns: float
Modifiers: inline

Returns the square length of shortest edge of the box.

b : Box
Returns: float

Box.sizeX b

Full Usage: Box.sizeX b

Parameters:
Returns: float
Modifiers: inline

The size in X direction.

b : Box
Returns: float

Box.sizeXSq b

Full Usage: Box.sizeXSq b

Parameters:
Returns: float
Modifiers: inline

The size in X direction squared.

b : Box
Returns: float

Box.sizeY b

Full Usage: Box.sizeY b

Parameters:
Returns: float
Modifiers: inline

The size in Y direction.

b : Box
Returns: float

Box.sizeYSq b

Full Usage: Box.sizeYSq b

Parameters:
Returns: float
Modifiers: inline

The size in Y direction squared.

b : Box
Returns: float

Box.sizeZ b

Full Usage: Box.sizeZ b

Parameters:
Returns: float
Modifiers: inline

The size in Z direction.

b : Box
Returns: float

Box.sizeZSq b

Full Usage: Box.sizeZSq b

Parameters:
Returns: float
Modifiers: inline

The size in Z direction squared.

b : Box
Returns: float

Box.topFace b

Full Usage: Box.topFace b

Parameters:
Returns: Rect3D
Modifiers: inline

Returns the top face of the box.

b : Box
Returns: Rect3D

Box.transformRigid m b

Full Usage: Box.transformRigid m b

Parameters:
Returns: Box
Modifiers: inline

Transforms the box by the given RigidMatrix. The returned box is guaranteed to have still orthogonal vectors.

m : RigidMatrix
b : Box
Returns: Box

Box.translateLocalX distX b

Full Usage: Box.translateLocalX distX b

Parameters:
    distX : float
    b : Box

Returns: Box

Creates a 3D box translated along the local X-axis of the Box.

distX : float
b : Box
Returns: Box

Box.translateLocalY distY b

Full Usage: Box.translateLocalY distY b

Parameters:
    distY : float
    b : Box

Returns: Box

Creates a 3D box translated along the local Y-axis of the Box.

distY : float
b : Box
Returns: Box

Box.translateLocalZ distZ b

Full Usage: Box.translateLocalZ distZ b

Parameters:
    distZ : float
    b : Box

Returns: Box

Creates a 3D box translated along the local Z-axis of the Box.

distZ : float
b : Box
Returns: Box

Box.tryGetBoxBetween a b

Full Usage: Box.tryGetBoxBetween a b

Parameters:
Returns: Box option

Gets the space between two boxes, Boxes need to have aligned and parallel axes. Fails if not The resulting box is touching both input boxes and has the same orientation as them. Returns None if the Boxes are overlapping or too far apart so that no in between box exists.

a : Box
b : Box
Returns: Box option

Box.volume b

Full Usage: Box.volume b

Parameters:
Returns: float
Modifiers: inline

Calculates the volume of the box.

b : Box
Returns: float

Box.withOrigin origin b

Full Usage: Box.withOrigin origin b

Parameters:
Returns: Box

Returns a new Box with the same orientation and size as the input box, but with the specified origin

origin : Pnt
b : Box
Returns: Box

Box.withSizeX sizeX b

Full Usage: Box.withSizeX sizeX b

Parameters:
    sizeX : float
    b : Box

Returns: Box

Returns a new Box with the same orientation and origin as the input box, but with the specified size in X direction

sizeX : float
b : Box
Returns: Box

Box.withSizeY sizeY b

Full Usage: Box.withSizeY sizeY b

Parameters:
    sizeY : float
    b : Box

Returns: Box

Returns a new Box with the same orientation and origin as the input box, but with the specified size in Y direction

sizeY : float
b : Box
Returns: Box

Box.withSizeZ sizeZ b

Full Usage: Box.withSizeZ sizeZ b

Parameters:
    sizeZ : float
    b : Box

Returns: Box

Returns a new Box with the same orientation and origin as the input box, but with the specified size in Z direction

sizeZ : float
b : Box
Returns: Box

Box.xAxis b

Full Usage: Box.xAxis b

Parameters:
Returns: Vec
Modifiers: inline

Creates a 3D Vector from b.XaxisX, b.XaxisY and b.XaxisZ

b : Box
Returns: Vec

Box.xAxisUnit b

Full Usage: Box.xAxisUnit b

Parameters:
Returns: UnitVec
Modifiers: inline

Creates a unitized version of the local X-axis.

b : Box
Returns: UnitVec

Box.yAxis b

Full Usage: Box.yAxis b

Parameters:
Returns: Vec
Modifiers: inline

Creates a 3D Vector from b.YaxisX, b.YaxisY and b.YaxisZ

b : Box
Returns: Vec

Box.yAxisUnit b

Full Usage: Box.yAxisUnit b

Parameters:
Returns: UnitVec
Modifiers: inline

Creates a unitized version of the local Y-axis.

b : Box
Returns: UnitVec

Box.zAxis b

Full Usage: Box.zAxis b

Parameters:
Returns: Vec
Modifiers: inline

Creates a 3D Vector from b.ZaxisX, b.ZaxisY and b.ZaxisZ

b : Box
Returns: Vec

Box.zAxisUnit b

Full Usage: Box.zAxisUnit b

Parameters:
Returns: UnitVec
Modifiers: inline

Creates a unitized version of the local Z-axis.

b : Box
Returns: UnitVec

Type something to start searching.