Header menu logo Euclid

AutoOpenPt Module

When Euclid is opened this module will be auto-opened. It only contains extension members for type Pt.

Type extensions

Type extension Description

this.Angle2PiTo

Full Usage: this.Angle2PiTo

Parameters:
Returns: float
Modifiers: inline

Returns the angle in Radians from this point to another point. 0.0 = Xaxis, going Counter-Clockwise till two Pi.

Extended Type: Pt

o : Pt
Returns: float

this.Angle360To

Full Usage: this.Angle360To

Parameters:
Returns: float
Modifiers: inline

Returns the angle in Degrees from this point to another point. 0.0 = Xaxis, going Counter-Clockwise till 360.

Extended Type: Pt

o : Pt
Returns: float

this.AsPnt

Full Usage: this.AsPnt

Parameters:
    () : unit

Returns: Pnt
Modifiers: inline

Returns the 2D point as 3D point. Using 0.0 for Z. Use the member pt.WithZ to set Z to a different value.

Extended Type: Pt

() : unit
Returns: Pnt

this.AsPnt

Full Usage: this.AsPnt

Returns: Pnt
Modifiers: inline

Returns the 2D point as 3D point. Using 0.0 for Z. Use the member pt.WithZ to set Z to a different value.

Extended Type: Pt

Returns: Pnt

this.AsVc

Full Usage: this.AsVc

Parameters:
    () : unit

Returns: Vc
Modifiers: inline

Returns the 2D point as 2D vector.

Extended Type: Pt

() : unit
Returns: Vc

this.AsVc

Full Usage: this.AsVc

Returns: Vc
Modifiers: inline

Returns the 2D point as 2D vector.

Extended Type: Pt

Returns: Vc

this.AsVec

Full Usage: this.AsVec

Parameters:
    () : unit

Returns: Vec
Modifiers: inline

Returns the 2D point as 3D vector. Using 0.0 for Z.

Extended Type: Pt

() : unit
Returns: Vec

this.AsVec

Full Usage: this.AsVec

Returns: Vec
Modifiers: inline

Returns the 2D point as 3D vector. Using 0.0 for Z.

Extended Type: Pt

Returns: Vec

this.ClosestPointOnLine

Full Usage: this.ClosestPointOnLine

Parameters:
    fromPt : Pt
    toPt : Pt

Returns: Pt
Modifiers: inline

Get closest point on finite line to test point.

Extended Type: Pt

fromPt : Pt
toPt : Pt
Returns: Pt

this.ClosestPointOnLine

Full Usage: this.ClosestPointOnLine

Parameters:
Returns: Pt
Modifiers: inline

Get closest point on finite line to test point.

Extended Type: Pt

fromPt : Pt
uv : UnitVc
len : float
Returns: Pt

this.DirectionDiamondTo

Full Usage: this.DirectionDiamondTo

Parameters:
Returns: float
Modifiers: inline

Returns the Diamond Angle from this point to another point. Calculates the proportion of X to Y component. It is always positive and in the range of 0.0 to 4.0 (for 360 Degrees) 0.0 = Xaxis, going Counter-Clockwise. It is the fastest angle calculation since it does not involve Cosine or ArcTangent functions.

Extended Type: Pt

o : Pt
Returns: float

this.DistanceFromOrigin

Full Usage: this.DistanceFromOrigin

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the distance from Origin (0, 0)

Extended Type: Pt

() : unit
Returns: float

this.DistanceFromOrigin

Full Usage: this.DistanceFromOrigin

Returns: float
Modifiers: inline

Returns the distance from Origin (0, 0)

Extended Type: Pt

Returns: float

this.DistanceFromOriginSquare

Full Usage: this.DistanceFromOriginSquare

Parameters:
    () : unit

Returns: float
Modifiers: inline

Returns the squared distance from Origin (0, 0)

Extended Type: Pt

() : unit
Returns: float

this.DistanceFromOriginSquare

Full Usage: this.DistanceFromOriginSquare

Returns: float
Modifiers: inline

Returns the squared distance from Origin (0, 0)

Extended Type: Pt

Returns: float

this.DistanceTo

Full Usage: this.DistanceTo

Parameters:
Returns: float
Modifiers: inline

Returns the distance between two 2D points.

Extended Type: Pt

b : Pt
Returns: float

this.DistanceToLine

Full Usage: this.DistanceToLine

Parameters:
Returns: float
Modifiers: inline

Returns the distance between point and finite line segment defined by start, direction and length.

Extended Type: Pt

fromPt : Pt
uv : UnitVc
len : float
Returns: float

this.DistanceToLine

Full Usage: this.DistanceToLine

Parameters:
    fromPt : Pt
    toPt : Pt

Returns: float
Modifiers: inline

Returns the distance between point and finite line segment defined by start and end.

Extended Type: Pt

fromPt : Pt
toPt : Pt
Returns: float

this.DistanceToLineSquare

Full Usage: this.DistanceToLineSquare

Parameters:
Returns: float
Modifiers: inline

Returns the squared distance between point and finite line segment.

Extended Type: Pt

fromPt : Pt
uv : UnitVc
len : float
Returns: float

this.DistanceToLineSquare

Full Usage: this.DistanceToLineSquare

Parameters:
Returns: float
Modifiers: inline

Returns the squared distance between point and finite line segment defined by start, end, direction and length. The last two parameters help speed up calculations.

Extended Type: Pt

fromPt : Pt
toPt : Pt
uv : UnitVc
len : float
Returns: float

this.DistanceToSquare

Full Usage: this.DistanceToSquare

Parameters:
Returns: float
Modifiers: inline

Returns the squared distance between two 2D points. This operation is slightly faster than the distance function, and sufficient for many algorithms like finding closest points.

Extended Type: Pt

b : Pt
Returns: float

this.IsAlmostOrigin

Full Usage: this.IsAlmostOrigin

Parameters:
    tol : float

Returns: bool
Modifiers: inline

Returns a boolean indicating wether the absolute value of X and Y is each less than the given tolerance.

Extended Type: Pt

tol : float
Returns: bool

this.IsNotOrigin

Full Usage: this.IsNotOrigin

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Returns a boolean indicating if any of X and Y is not exactly 0.0.

Extended Type: Pt

() : unit
Returns: bool

this.IsNotOrigin

Full Usage: this.IsNotOrigin

Returns: bool
Modifiers: inline

Returns a boolean indicating if any of X and Y is not exactly 0.0.

Extended Type: Pt

Returns: bool

this.IsOrigin

Full Usage: this.IsOrigin

Parameters:
    () : unit

Returns: bool
Modifiers: inline

Returns a boolean indicating wether X and Y are exactly 0.0.

Extended Type: Pt

() : unit
Returns: bool

this.IsOrigin

Full Usage: this.IsOrigin

Returns: bool
Modifiers: inline

Returns a boolean indicating wether X and Y are exactly 0.0.

Extended Type: Pt

Returns: bool

this.WithDistanceFromOrigin

Full Usage: this.WithDistanceFromOrigin

Parameters:
    l : float

Returns: Pt
Modifiers: inline

Returns new 2D point with given distance from Origin by scaling it up or down.

Extended Type: Pt

l : float
Returns: Pt

this.WithX

Full Usage: this.WithX

Parameters:
    x : float

Returns: Pt
Modifiers: inline

Returns new 2D point with new X coordinate, Y stays the same.

Extended Type: Pt

x : float
Returns: Pt

this.WithY

Full Usage: this.WithY

Parameters:
    y : float

Returns: Pt
Modifiers: inline

Returns new 2D point with new Y coordinate, X stays the same.

Extended Type: Pt

y : float
Returns: Pt

this.WithZ

Full Usage: this.WithZ

Parameters:
    z : float

Returns: Pnt
Modifiers: inline

Returns new 3D point with Z coordinate, X and Y stay the same. If you want Z to be 0.0 you can use pt.AsPnt too.

Extended Type: Pt

z : float
Returns: Pnt

Pt.add a b

Full Usage: Pt.add a b

Parameters:
Returns: Pt
Modifiers: inline

Adds two 2D points. Returns a new 2D point.

Extended Type: Pt

a : Pt
b : Pt
Returns: Pt

Pt.addVc v a

Full Usage: Pt.addVc v a

Parameters:
Returns: Pt
Modifiers: inline

Add a 2D point to a 2D vector. Returns a new 2D point.

Extended Type: Pt

v : Vc
a : Pt
Returns: Pt

Pt.angle180Pts (ptPrev, ptThis, ptNext)

Full Usage: Pt.angle180Pts (ptPrev, ptThis, ptNext)

Parameters:
    ptPrev : Pt
    ptThis : Pt
    ptNext : Pt

Returns: float
Modifiers: inline

Returns angle between three 2D Points in Degrees. Range 0.0 to 180

Extended Type: Pt

ptPrev : Pt
ptThis : Pt
ptNext : Pt
Returns: float

Pt.angleInCorner (prevPt, thisPt, nextPt)

Full Usage: Pt.angleInCorner (prevPt, thisPt, nextPt)

Parameters:
    prevPt : Pt
    thisPt : Pt
    nextPt : Pt

Returns: float

Returns angle in Degrees at mid point (thisPt).

Extended Type: Pt

prevPt : Pt
thisPt : Pt
nextPt : Pt
Returns: float

Pt.anglePiPts (ptPrev, ptThis, ptNext)

Full Usage: Pt.anglePiPts (ptPrev, ptThis, ptNext)

Parameters:
    ptPrev : Pt
    ptThis : Pt
    ptNext : Pt

Returns: float
Modifiers: inline

Returns angle between three 2D Points in Radians. Range 0.0 to Pi.

Extended Type: Pt

ptPrev : Pt
ptThis : Pt
ptNext : Pt
Returns: float

Pt.bisector (ptPrev, ptThis, ptNext)

Full Usage: Pt.bisector (ptPrev, ptThis, ptNext)

Parameters:
    ptPrev : Pt
    ptThis : Pt
    ptNext : Pt

Returns: Vc
Modifiers: inline

Returns a (not unitized) bisector vector in the middle direction from ptThis. Code : (ptPrev-ptThis).Unitized + (ptNext-ptThis).Unitized ptPrev * ptThis * ptNext -> bisector vector

Extended Type: Pt

ptPrev : Pt
ptThis : Pt
ptNext : Pt
Returns: Vc

Pt.create (x, y)

Full Usage: Pt.create (x, y)

Parameters:
    x : float
    y : float

Returns: Pt
Modifiers: inline

Create 3D point from X and Y components.

Extended Type: Pt

x : float
y : float
Returns: Pt

Pt.createFromMembersXY pt

Full Usage: Pt.createFromMembersXY pt

Parameters:
    pt : ^T

Returns: Pt
Modifiers: inline
Type parameters: ^T, ^a, ^b

Accepts any type that has a X and Y (UPPERCASE) member that can be converted to a float. Internally this is not using reflection at runtime but F# Statically Resolved Type Parameters at compile time.

Extended Type: Pt

pt : ^T
Returns: Pt

Pt.createFromMembersxy pt

Full Usage: Pt.createFromMembersxy pt

Parameters:
    pt : ^T

Returns: Pt
Modifiers: inline
Type parameters: ^T, ^a, ^b

Accepts any type that has a x and y (lowercase) member that can be converted to a float. Internally this is not using reflection at runtime but F# Statically Resolved Type Parameters at compile time.

Extended Type: Pt

pt : ^T
Returns: Pt

Pt.createFromPnt p

Full Usage: Pt.createFromPnt p

Parameters:
Returns: Pt
Modifiers: inline

Create 2D point from 3D point. Ignoring Z component.

Extended Type: Pt

p : Pnt
Returns: Pt

Pt.createFromUnitVc v

Full Usage: Pt.createFromUnitVc v

Parameters:
Returns: Pt
Modifiers: inline

Create 2D point from 2D unit-vector.

Extended Type: Pt

v : UnitVc
Returns: Pt

Pt.createFromVc v

Full Usage: Pt.createFromVc v

Parameters:
Returns: Pt
Modifiers: inline

Create 2D point from 2D vector.

Extended Type: Pt

v : Vc
Returns: Pt

Pt.distPt (fromPt, dirPt, distance)

Full Usage: Pt.distPt (fromPt, dirPt, distance)

Parameters:
    fromPt : Pt
    dirPt : Pt
    distance : float

Returns: Pt
Modifiers: inline

Returns a point that is at a given distance from a 2D point in the direction of another point.

Extended Type: Pt

fromPt : Pt
dirPt : Pt
distance : float
Returns: Pt

Pt.distance a b

Full Usage: Pt.distance a b

Parameters:
Returns: float
Modifiers: inline

Returns the distance between two 2D points.

Extended Type: Pt

a : Pt
b : Pt
Returns: float

Pt.distanceFromOrigin pt

Full Usage: Pt.distanceFromOrigin pt

Parameters:
Returns: float
Modifiers: inline

Returns the distance from World Origin.

Extended Type: Pt

pt : Pt
Returns: float

Pt.distanceFromOriginSquare pt

Full Usage: Pt.distanceFromOriginSquare pt

Parameters:
Returns: float
Modifiers: inline

Returns the square distance from World Origin.

Extended Type: Pt

pt : Pt
Returns: float

Pt.distanceSq a b

Full Usage: Pt.distanceSq a b

Parameters:
Returns: float
Modifiers: inline

Returns the squared distance between two 2D points. This operation is slightly faster than the distance function, and sufficient for many algorithms like finding closest points.

Extended Type: Pt

a : Pt
b : Pt
Returns: float

Pt.divPt (fromPt, toPt, rel)

Full Usage: Pt.divPt (fromPt, toPt, rel)

Parameters:
    fromPt : Pt
    toPt : Pt
    rel : float

Returns: Pt
Modifiers: inline

Linearly interpolates between two 2D points. e.g. rel=0.5 will return the middle point, rel=1.0 the endPoint, rel=3.0 a point three times the distance beyond the end point. Same as Pt.lerp.

Extended Type: Pt

fromPt : Pt
toPt : Pt
rel : float
Returns: Pt

Pt.equals tol a b

Full Usage: Pt.equals tol a b

Parameters:
    tol : float
    a : Pt
    b : Pt

Returns: bool
Modifiers: inline

Checks if two 2D points are equal within tolerance. Use a tolerance of 0.0 to check for an exact match.

Extended Type: Pt

tol : float
a : Pt
b : Pt
Returns: bool

Pt.failedDistPt (fromPt, dirPt, distance)

Full Usage: Pt.failedDistPt (fromPt, dirPt, distance)

Parameters:
    fromPt : Pt
    dirPt : Pt
    distance : float

Returns: 'a

Extended Type: Pt

fromPt : Pt
dirPt : Pt
distance : float
Returns: 'a

Pt.getX pt

Full Usage: Pt.getX pt

Parameters:
Returns: float
Modifiers: inline

Gets the X value of 2D point.

Extended Type: Pt

pt : Pt
Returns: float

Pt.getY pt

Full Usage: Pt.getY pt

Parameters:
Returns: float
Modifiers: inline

Gets the Y value of 2D point.

Extended Type: Pt

pt : Pt
Returns: float

Pt.lerp (fromPt, toPt, rel)

Full Usage: Pt.lerp (fromPt, toPt, rel)

Parameters:
    fromPt : Pt
    toPt : Pt
    rel : float

Returns: Pt
Modifiers: inline

Linearly interpolates between two 2D points. e.g. rel=0.5 will return the middle point, rel=1.0 the endPoint, rel=3.0 a point three times the distance beyond the end point. Same as Pt.divPt.

Extended Type: Pt

fromPt : Pt
toPt : Pt
rel : float
Returns: Pt

Pt.midPt a b

Full Usage: Pt.midPt a b

Parameters:
Returns: Pt
Modifiers: inline

Returns the midpoint of two 2D points.

Extended Type: Pt

a : Pt
b : Pt
Returns: Pt

Pt.move shift pt

Full Usage: Pt.move shift pt

Parameters:
    shift : Vc
    pt : Pt

Returns: Pt
Modifiers: inline

Move point 2D by vector. Same as Pt.translate.

Extended Type: Pt

shift : Vc
pt : Pt
Returns: Pt

Pt.moveX x pt

Full Usage: Pt.moveX x pt

Parameters:
    x : float
    pt : Pt

Returns: Pt
Modifiers: inline

Add a float to X component of a 2D point. Returns a new 2D point.

Extended Type: Pt

x : float
pt : Pt
Returns: Pt

Pt.moveY y pt

Full Usage: Pt.moveY y pt

Parameters:
    y : float
    pt : Pt

Returns: Pt
Modifiers: inline

Add a float to Y component of a 2D point. Returns a new 2D point.

Extended Type: Pt

y : float
pt : Pt
Returns: Pt

Pt.notEquals tol a b

Full Usage: Pt.notEquals tol a b

Parameters:
    tol : float
    a : Pt
    b : Pt

Returns: bool

Check if two 2D points are not equal within a given tolerance. Use a tolerance of 0.0 to check if the two points are not exactly equal.

Extended Type: Pt

tol : float
a : Pt
b : Pt
Returns: bool

Pt.projectedParameter (fromPt, uv, testPt)

Full Usage: Pt.projectedParameter (fromPt, uv, testPt)

Parameters:
Returns: float
Modifiers: inline

'fromPt' Pt and UnitVc describe an endless 2D line. testPt gets projected on to this line. Returns the parameter (or scaling for unit-vector) on this line of the projection.

Extended Type: Pt

fromPt : Pt
uv : UnitVc
testPt : Pt
Returns: float

Pt.projectedParameter (fromPt, vec, testPt)

Full Usage: Pt.projectedParameter (fromPt, vec, testPt)

Parameters:
    fromPt : Pt
    vec : Vc
    testPt : Pt

Returns: float
Modifiers: inline

'fromPt' and 'vec' vector describe an endless 2D line. 'testPt' gets projected onto this line. Returns the parameter (or scaling for vector) on this line of the projection.

Extended Type: Pt

fromPt : Pt
vec : Vc
testPt : Pt
Returns: float

Pt.projectedParameter (fromPt, toPt, testPt)

Full Usage: Pt.projectedParameter (fromPt, toPt, testPt)

Parameters:
    fromPt : Pt
    toPt : Pt
    testPt : Pt

Returns: float
Modifiers: inline

'fromPt' and 'toPt' describe an endless 2D line. 'testPt' gets projected on to this line. Returns the parameter (or scaling for vector) on this line of the projection.

Extended Type: Pt

fromPt : Pt
toPt : Pt
testPt : Pt
Returns: float

Pt.rotate angDegree vec

Full Usage: Pt.rotate angDegree vec

Parameters:
    angDegree : float
    vec : Pt

Returns: Pt
Modifiers: inline

Rotate the 2D point in Degrees. Counter Clockwise. For better Performance precompute the Rotate2D struct and use its member to rotate. see Vc.rotateBy.

Extended Type: Pt

angDegree : float
vec : Pt
Returns: Pt

Pt.rotateBy r p

Full Usage: Pt.rotateBy r p

Parameters:
Returns: Pt
Modifiers: inline

Rotate the a 2D point Counter Clockwise by a 2D Rotation (that has cos and sin precomputed)

Extended Type: Pt

r : Rotation2D
p : Pt
Returns: Pt

Pt.rotateWithCenter cen angDegree pt

Full Usage: Pt.rotateWithCenter cen angDegree pt

Parameters:
    cen : Pt
    angDegree : float
    pt : Pt

Returns: Pt
Modifiers: inline

Rotate 2D point around a center point Counter-Clockwise. Angle given in Degrees.

Extended Type: Pt

cen : Pt
angDegree : float
pt : Pt
Returns: Pt

Pt.rotateWithCenterBy cen r pt

Full Usage: Pt.rotateWithCenterBy cen r pt

Parameters:
Returns: Pt
Modifiers: inline

Rotate the 2D point around a center 2D point. Counter Clockwise. By a 2D Rotation (that has cos and sin precomputed)

Extended Type: Pt

cen : Pt
r : Rotation2D
pt : Pt
Returns: Pt

Pt.scale f pt

Full Usage: Pt.scale f pt

Parameters:
    f : float
    pt : Pt

Returns: Pt
Modifiers: inline

Scales a 2D point by a factor. Returns a new 2D point.

Extended Type: Pt

f : float
pt : Pt
Returns: Pt

Pt.setDistanceFromOrigin f pt

Full Usage: Pt.setDistanceFromOrigin f pt

Parameters:
    f : float
    pt : Pt

Returns: Pt
Modifiers: inline

Returns a new 2D point at a given distance from World Origin by scaling the input.

Extended Type: Pt

f : float
pt : Pt
Returns: Pt

Pt.snap precision pt

Full Usage: Pt.snap precision pt

Parameters:
    precision : float
    pt : Pt

Returns: Pt
Modifiers: inline

Snaps the points coordinate to the given precision. e.g. snap 0.1 Pt(0.123, 0.456) -> Pt(0.1, 0.5) e.g. snap 10 Pt(3 , 19) -> Pt(0 , 20) does: (Math.Round (x/precision)) * precision

Extended Type: Pt

precision : float
pt : Pt
Returns: Pt

Pt.snapIfClose snapDistance snapTo pt

Full Usage: Pt.snapIfClose snapDistance snapTo pt

Parameters:
    snapDistance : float
    snapTo : Pt
    pt : Pt

Returns: Pt
Modifiers: inline

Snaps to a point if it is within the snapDistance. otherwise returns the original point.

Extended Type: Pt

snapDistance : float
snapTo : Pt
pt : Pt
Returns: Pt

Pt.translate shift pt

Full Usage: Pt.translate shift pt

Parameters:
    shift : Vc
    pt : Pt

Returns: Pt
Modifiers: inline

Move point 2D by vector. Same as Pt.move.

Extended Type: Pt

shift : Vc
pt : Pt
Returns: Pt

Pt.withX x pt

Full Usage: Pt.withX x pt

Parameters:
    x : float
    pt : Pt

Returns: Pt
Modifiers: inline

Sets the X value and returns new 2D point.

Extended Type: Pt

x : float
pt : Pt
Returns: Pt

Pt.withY y pt

Full Usage: Pt.withY y pt

Parameters:
    y : float
    pt : Pt

Returns: Pt
Modifiers: inline

Sets the Y value and returns new 2D point.

Extended Type: Pt

y : float
pt : Pt
Returns: Pt

Type something to start searching.