Math.Geometry


Frame2D Module

Functions and values

Function or value Description

atOrigin

Full Usage: atOrigin

Returns: Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

atPoint point

Full Usage: atPoint point

Parameters:
    point : Point2D<'Units, 'Coordinates>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>
point : Point2D<'Units, 'Coordinates>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

copy properties

Full Usage: copy properties

Parameters:
    properties : Frame2D<'Units, 'Coordinates, 'Defines1>

Returns: Frame2D<'Units, 'Coordinates, 'Defines2>

Create a 'fresh copy' of a frame: one with the same origin point and X/Y directions, but that can be used to define a different local coordinate system. Sometimes useful in generic/library code. Despite the name, this is efficient: it really just returns the value you passed in, but with a different type.

properties : Frame2D<'Units, 'Coordinates, 'Defines1>
Returns: Frame2D<'Units, 'Coordinates, 'Defines2>

fromXAxis givenAxis

Full Usage: fromXAxis givenAxis

Parameters:
    givenAxis : Axis2D<'Units, 'Coordinates>

Returns: Frame2D<'Units, 'Coordinates, 'c>

Construct a `Frame2d` given its X axis `Frame2d.fromXAxis axis` is equivalent to `Frame2d.withXDirection (Axis2d.direction axis) (Axis2d.originPoint axis)`

givenAxis : Axis2D<'Units, 'Coordinates>
Returns: Frame2D<'Units, 'Coordinates, 'c>

fromYAxis givenAxis

Full Usage: fromYAxis givenAxis

Parameters:
    givenAxis : Axis2D<'Units, 'Coordinates>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Construct a `Frame2d` given its Y axis; `Frame2d.fromYAxis axis` is equivalent to `Frame2d.withYDirection (Axis2d.direction axis) (Axis2d.originPoint axis)`

givenAxis : Axis2D<'Units, 'Coordinates>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

isRightHanded frame

Full Usage: isRightHanded frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: bool

Check if a frame is [right-handed](https://en.wikipedia.org/wiki/Cartesian_coordinate_system#Orientation_and_handedness). All predefined frames are right-handed, and most operations on frames preserve handedness, so about the only ways to end up with a left-handed frame are by constructing one explicitly with `unsafe` or by mirroring a right-handed frame.

frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: bool

mirrorAcross axis frame

Full Usage: mirrorAcross axis frame

Parameters:
    axis : Axis2D<'Units, 'Coordinates>
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Mirror a frame across an axis. Note that this will switch the [handedness](https://en.wikipedia.org/wiki/Cartesian_coordinate_system#Orientation_and_handedness) of the frame.

axis : Axis2D<'Units, 'Coordinates>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

moveTo newOrigin frame

Full Usage: moveTo newOrigin frame

Parameters:
    newOrigin : Point2D<'Units, 'Coordinates>
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Move a frame so that it has the given origin point.

newOrigin : Point2D<'Units, 'Coordinates>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

originPoint frame

Full Usage: originPoint frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Point2D<'Units, 'Coordinates>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Point2D<'Units, 'Coordinates>

placeIn reference frame

Full Usage: placeIn reference frame

Parameters:
    reference : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
    frame : Frame2D<'Units, 'LocalCoordinates, 'GlobalCoordinates>

Returns: Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>

Take one frame defined in global coordinates and a second frame defined in local coordinates relative to the first frame, and return the second frame expressed in global coordinates.

reference : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
frame : Frame2D<'Units, 'LocalCoordinates, 'GlobalCoordinates>
Returns: Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>

relativeTo otherFrame frame

Full Usage: relativeTo otherFrame frame

Parameters:
    otherFrame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
    frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>

Returns: Frame2D<'Units, 'LocalCoordinates, 'GlobalCoordinates>

Take two frames defined in global coordinates, and return the second one expressed in local coordinates relative to the first.

otherFrame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
frame : Frame2D<'Units, 'GlobalCoordinates, 'LocalCoordinates>
Returns: Frame2D<'Units, 'LocalCoordinates, 'GlobalCoordinates>

reverseX frame

Full Usage: reverseX frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Reverse the X direction of a frame, leaving its Y direction and origin point the same. Note that this will switch the [handedness](https://en.wikipedia.org/wiki/Cartesian_coordinate_system#Orientation_and_handedness) of the frame.

frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

reverseY frame

Full Usage: reverseY frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Reverse the Y direction of a frame, leaving its X direction and origin point the same. Note that this will switch the [handedness](https://en.wikipedia.org/wiki/Cartesian_coordinate_system#Orientation_and_handedness) of the frame.

frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

rotateAround centerPoint angle frame

Full Usage: rotateAround centerPoint angle frame

Parameters:
    centerPoint : Point2D<'Units, 'Coordinates>
    angle : Angle
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Rotate a frame counterclockwise around a given point by a given angle. The frame's origin point will be rotated around the given point by the given angle, and its X and Y basis directions will be rotated by the given angle.

centerPoint : Point2D<'Units, 'Coordinates>
angle : Angle
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

rotateBy angle frame

Full Usage: rotateBy angle frame

Parameters:
    angle : Angle
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Rotate a frame counterclockwise by a given angle around the frame's own origin point. The resulting frame will have the same origin point, and its X and Y directions will be rotated by the given angle.

angle : Angle
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

translateAlongOwn axis distance frame

Full Usage: translateAlongOwn axis distance frame

Parameters:
    axis : Frame2D<'Units, 'Coordinates, 'Defines1> -> Axis2D<'Units, 'Coordinates>
    distance : Quantity<'Units>
    frame : Frame2D<'Units, 'Coordinates, 'Defines1>

Returns: Frame2D<'Units, 'Coordinates, 'Defines2>

Translate a frame along one of its own axes by a given distance. The first argument is a function that returns the axis to translate along, given the current frame. The majority of the time this argument will be either `Frame2d.xAxis` or `Frame2d.yAxis`. The second argument is the distance to translate along the given axis.

axis : Frame2D<'Units, 'Coordinates, 'Defines1> -> Axis2D<'Units, 'Coordinates>
distance : Quantity<'Units>
frame : Frame2D<'Units, 'Coordinates, 'Defines1>
Returns: Frame2D<'Units, 'Coordinates, 'Defines2>

translateBy vector frame

Full Usage: translateBy vector frame

Parameters:
    vector : Vector2D<'Units, 'Coordinates>
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Translate a frame by a given displacement.

vector : Vector2D<'Units, 'Coordinates>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

translateIn direction distance frame

Full Usage: translateIn direction distance frame

Parameters:
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Translate a frame in a given direction by a given distance.

direction : Direction2D<'Coordinates>
distance : Quantity<'Units>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

withAngle angle origin

Full Usage: withAngle angle origin

Parameters:
    angle : Angle
    origin : Point2D<'Units, 'Coordinates>

Returns: Frame2D<'Units, 'Coordinates, 'Defines>
angle : Angle
origin : Point2D<'Units, 'Coordinates>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

withXDirection xDirection origin

Full Usage: withXDirection xDirection origin

Parameters:
Returns: Frame2D<'b, 'a, 'c>

Construct a frame with the given Y axis direction, having the given origin point. The X axis direction will be constructed by rotating the given direction 90 degrees clockwise.

xDirection : Direction2D<'a>
origin : Point2D<'b, 'a>
Returns: Frame2D<'b, 'a, 'c>

withYDirection givenDirection givenOrigin

Full Usage: withYDirection givenDirection givenOrigin

Parameters:
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

Construct a frame with the given Y axis direction, having the given origin point. The X axis direction will be constructed by rotating the given Y direction 90 degrees clockwise.

givenDirection : Direction2D<'Coordinates>
givenOrigin : Point2D<'Units, 'Coordinates>
Returns: Frame2D<'Units, 'Coordinates, 'Defines>

xAxis frame

Full Usage: xAxis frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Axis2D<'Units, 'Coordinates>

Get the X axis of a given frame (the axis formed from the frame's origin point and X direction).

frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Axis2D<'Units, 'Coordinates>

xDirection frame

Full Usage: xDirection frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Direction2D<'Coordinates>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Direction2D<'Coordinates>

yAxis frame

Full Usage: yAxis frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Axis2D<'Units, 'Coordinates>

Get the Y axis of a given frame (the axis formed from the frame's origin point and Y direction).

frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Axis2D<'Units, 'Coordinates>

yDirection frame

Full Usage: yDirection frame

Parameters:
    frame : Frame2D<'Units, 'Coordinates, 'Defines>

Returns: Direction2D<'Coordinates>
frame : Frame2D<'Units, 'Coordinates, 'Defines>
Returns: Direction2D<'Coordinates>