Skip to content
OFFICIAL SS DOCUMENTATION

SS.Geometry 1.1.0

Dimensioned geometry, adaptive decimal-fallback orientation/incircle/insphere predicates, closed-solid manifold validation, transforms, and interchange
API 1.1.0
MIT
source

Language compatibility: >=1.0.0 <2.0.0
Runtime compatibility: >=1.0.0 <2.0.0

No package dependencies declared.

Public API

Geometry.add

function
Public signature
export function add(Vector2 left, Vector2 right)->Vector2

Parameters: left: Vector2, right: Vector2


Geometry.add

function
Public signature
export function add(Vector3 left, Vector3 right)->Vector3

Parameters: left: Vector3, right: Vector3


Public signature
export function apply(Transform2 transform, Point2 point)->Point2

Parameters: transform: Transform2, point: Point2


Public signature
export function apply(Transform3 transform, Point3 point)->Point3

Parameters: transform: Transform3, point: Point3


Public signature
export function areaInSquareMetres(squareMetre value)->double

Parameters: value: squareMetre


Public signature
export record AreaVector3(public double x, public double y, public double z, public string areaUnit)

Parameters: x: double, y: double, z: double, areaUnit: string


Public signature
export function areaVectorMagnitude(AreaVector3 value)->squareMetre

Parameters: value: AreaVector3


Public signature
export function bounds2(Point2 minimum, Point2 maximum)->Bounds2

Parameters: minimum: Point2, maximum: Point2


Public signature
export record Bounds2(public Point2 minimum, public Point2 maximum)

Parameters: minimum: Point2, maximum: Point2


Public signature
export function bounds3(Point3 minimum, Point3 maximum)->Bounds3

Parameters: minimum: Point3, maximum: Point3


Public signature
export record Bounds3(public Point3 minimum, public Point3 maximum)

Parameters: minimum: Point3, maximum: Point3


Public signature
export function boxDomain3(Bounds3 bounds, string region)->BoxDomain3

Parameters: bounds: Bounds3, region: string


Public signature
export record BoxDomain3(public Bounds3 bounds, public string region)

Parameters: bounds: Bounds3, region: string


Public signature
export function centroid(Polygon2 polygon)->Point2

Parameters: polygon: Polygon2


Public signature
export function circle2(Point2 center, m radius)->Circle2

Parameters: center: Point2, radius: m


Public signature
export record Circle2(public Point2 center, public m radius)

Parameters: center: Point2, radius: m


Public signature
export record ClosedSolidValidation(public bool valid, public bool watertight, public bool consistentlyOriented, public bool connected, public int faceCount, public int boundaryEdgeCount, public int nonManifoldEdgeCount, public int inconsistentWindingCount, public int degenerateFaceCount, public string diagnostic)

Parameters: valid: bool, watertight: bool, consistentlyOriented: bool, connected: bool, faceCount: int, boundaryEdgeCount: int, nonManifoldEdgeCount: int, inconsistentWindingCount: int, degenerateFaceCount: int, diagnostic: string


Public signature
export function compose(Transform2 outer, Transform2 inner)->Transform2

Parameters: outer: Transform2, inner: Transform2


Public signature
export function compose(Transform3 outer, Transform3 inner)->Transform3

Parameters: outer: Transform3, inner: Transform3


Public signature
export function contains(Bounds2 bounds, Point2 point)->bool

Parameters: bounds: Bounds2, point: Point2


Public signature
export function contains(Bounds3 bounds, Point3 point)->bool

Parameters: bounds: Bounds3, point: Point3


Public signature
export function contains(BoxDomain3 box, Point3 point)->bool

Parameters: box: BoxDomain3, point: Point3


Public signature
export function contains(Sphere3 sphere, Point3 point, m tolerance)->bool

Parameters: sphere: Sphere3, point: Point3, tolerance: m


Public signature
export function coordinateSystem3(Point3 origin, Vector3 x, Vector3 y, m tolerance)->CoordinateSystem3

Parameters: origin: Point3, x: Vector3, y: Vector3, tolerance: m


Public signature
export record CoordinateSystem3(public Point3 origin, public Direction3 xAxis, public Direction3 yAxis, public Direction3 zAxis)

Parameters: origin: Point3, xAxis: Direction3, yAxis: Direction3, zAxis: Direction3


Public signature
export function coordinateTransform3(CoordinateSystem3 system)->Transform3

Parameters: system: CoordinateSystem3


Public signature
export function cross(Vector2 left, Vector2 right)->squareMetre

Parameters: left: Vector2, right: Vector2


Public signature
export function cross(Vector3 left, Vector3 right)->AreaVector3

Parameters: left: Vector3, right: Vector3


Public signature
export function direction(Vector3 value, m tolerance)->Direction3

Parameters: value: Vector3, tolerance: m


Public signature
export record Direction3(public double x, public double y, public double z)

Parameters: x: double, y: double, z: double


Public signature
export function directionDot(Direction3 left, Direction3 right)->double

Parameters: left: Direction3, right: Direction3


Public signature
export function distance(Point2 left, Point2 right)->m

Parameters: left: Point2, right: Point2


Public signature
export function distance(Point3 left, Point3 right)->m

Parameters: left: Point3, right: Point3


Geometry.dot

function
Public signature
export function dot(Vector2 left, Vector2 right)->squareMetre

Parameters: left: Vector2, right: Vector2


Geometry.dot

function
Public signature
export function dot(Vector3 left, Vector3 right)->squareMetre

Parameters: left: Vector3, right: Vector3


Public signature
export function flatten2(Point2[] points)->double[]

Parameters: points: Point2[]


Public signature
export function flatten3(Point3[] points)->double[]

Parameters: points: Point3[]


Public signature
export function identityTransform2()->Transform2

Public signature
export function identityTransform3()->Transform3

Public signature
export function intersects(Bounds2 left, Bounds2 right)->bool

Parameters: left: Bounds2, right: Bounds2


Public signature
export function length3(Polyline3 line)->m

Parameters: line: Polyline3


Public signature
export function magnitude(Vector2 value)->m

Parameters: value: Vector2


Public signature
export function magnitude(Vector3 value)->m

Parameters: value: Vector3


Public signature
export function orientation(Point2 a, Point2 b, Point2 c, squareMetre tolerance)->int

Parameters: a: Point2, b: Point2, c: Point2, tolerance: squareMetre


Public signature
export function perimeter(Polygon2 polygon)->m

Parameters: polygon: Polygon2


Public signature
export function plane3(Point3 point, Vector3 normal, m tolerance)->Plane3

Parameters: point: Point3, normal: Vector3, tolerance: m


Public signature
export record Plane3(public Point3 point, public Direction3 normal)

Parameters: point: Point3, normal: Direction3


Public signature
export function point2(m x, m y)->Point2

Parameters: x: m, y: m


Public signature
export record Point2(public m x, public m y)

Parameters: x: m, y: m


Public signature
export function point3(m x, m y, m z)->Point3

Parameters: x: m, y: m, z: m


Public signature
export record Point3(public m x, public m y, public m z)

Parameters: x: m, y: m, z: m


Public signature
export function pointInPolygon(Polygon2 polygon, Point2 point, m tolerance)->bool

Parameters: polygon: Polygon2, point: Point2, tolerance: m


Public signature
export function points2(double[] values)->Point2[]

Parameters: values: double[]


Public signature
export function points3(double[] values)->Point3[]

Parameters: values: double[]


Public signature
export function polygon(Point2[] vertices, string region, squareMetre tolerance)->Polygon2

Parameters: vertices: Point2[], region: string, tolerance: squareMetre


Public signature
export record Polygon2(public Point2[] vertices, public string region)

Parameters: vertices: Point2[], region: string


Public signature
export function polyline3(Point3[] vertices, string boundary)->Polyline3

Parameters: vertices: Point3[], boundary: string


Public signature
export record Polyline3(public Point3[] vertices, public string boundary)

Parameters: vertices: Point3[], boundary: string


Public signature
export function robustInCircle(Point2 a, Point2 b, Point2 c, Point2 d)->RobustPredicate

Parameters: a: Point2, b: Point2, c: Point2, d: Point2


Public signature
export function robustInSphere(Point3 a, Point3 b, Point3 c, Point3 d, Point3 e)->RobustPredicate

Parameters: a: Point3, b: Point3, c: Point3, d: Point3, e: Point3


Public signature
export function robustOrientation3D(Point3 a, Point3 b, Point3 c, Point3 d)->RobustPredicate

Parameters: a: Point3, b: Point3, c: Point3, d: Point3


Public signature
export record RobustPredicate(public int sign, public double determinant, public double errorBound, public bool adaptiveRefinementUsed)

Parameters: sign: int, determinant: double, errorBound: double, adaptiveRefinementUsed: bool


Public signature
export function rotation2(double cosine, double sine)->Transform2

Parameters: cosine: double, sine: double


Public signature
export function scale(Vector2 value, double factor)->Vector2

Parameters: value: Vector2, factor: double


Public signature
export function scale(Vector3 value, double factor)->Vector3

Parameters: value: Vector3, factor: double


Public signature
export function segment2(Point2 start, Point2 end)->Segment2

Parameters: start: Point2, end: Point2


Public signature
export record Segment2(public Point2 start, public Point2 end)

Parameters: start: Point2, end: Point2


Public signature
export function segmentsIntersect(Segment2 left, Segment2 right, m tolerance)->bool

Parameters: left: Segment2, right: Segment2, tolerance: m


Public signature
export function signedArea(Polygon2 polygon)->squareMetre

Parameters: polygon: Polygon2


Public signature
export function signedDistance(Plane3 plane, Point3 point)->m

Parameters: plane: Plane3, point: Point3


Public signature
export function sphere3(Point3 center, m radius, string region)->Sphere3

Parameters: center: Point3, radius: m, region: string


Public signature
export record Sphere3(public Point3 center, public m radius, public string region)

Parameters: center: Point3, radius: m, region: string


Public signature
export record Transform2(public double m00, public double m01, public double m10, public double m11, public m tx, public m ty)

Parameters: m00: double, m01: double, m10: double, m11: double, tx: m, ty: m


Public signature
export record Transform3(public double m00, public double m01, public double m02, public double m10, public double m11, public double m12, public double m20, public double m21, public double m22, public m tx, public m ty, public m tz)

Parameters: m00: double, m01: double, m02: double, m10: double, m11: double, m12: double, m20: double, m21: double, m22: double, tx: m, ty: m, tz: m


Public signature
export function translate(Point2 point, Vector2 offset)->Point2

Parameters: point: Point2, offset: Vector2


Public signature
export function translate(Point3 point, Vector3 offset)->Point3

Parameters: point: Point3, offset: Vector3


Public signature
export function translation2(m x, m y)->Transform2

Parameters: x: m, y: m


Public signature
export function translation3(m x, m y, m z)->Transform3

Parameters: x: m, y: m, z: m


Public signature
export function triangleArea(TriangleSurface3 triangle)->squareMetre

Parameters: triangle: TriangleSurface3


Public signature
export function triangleSurface3(Point3 first, Point3 second, Point3 third, string boundary, squareMetre tolerance)->TriangleSurface3

Parameters: first: Point3, second: Point3, third: Point3, boundary: string, tolerance: squareMetre


Public signature
export record TriangleSurface3(public Point3 first, public Point3 second, public Point3 third, public string boundary)

Parameters: first: Point3, second: Point3, third: Point3, boundary: string


Public signature
export function union(Bounds2 left, Bounds2 right)->Bounds2

Parameters: left: Bounds2, right: Bounds2


Public signature
export function validateClosedSolid(TriangleSurface3[] faces, m tolerance)->ClosedSolidValidation

Parameters: faces: TriangleSurface3[], tolerance: m


Public signature
export function vector2(Point2 from, Point2 to)->Vector2

Parameters: from: Point2, to: Point2


Public signature
export record Vector2(public m x, public m y)

Parameters: x: m, y: m


Public signature
export function vector3(Point3 from, Point3 to)->Vector3

Parameters: from: Point3, to: Point3


Public signature
export function vector3(m x, m y, m z)->Vector3

Parameters: x: m, y: m, z: m


Public signature
export record Vector3(public m x, public m y, public m z)

Parameters: x: m, y: m, z: m


Public signature
export function volume(BoxDomain3 box)->cubicMetre

Parameters: box: BoxDomain3


Public signature
export function volumeInCubicMetres(cubicMetre value)->double

Parameters: value: cubicMetre


Documentation version

Language 1.0.0, compiler 1.0.0, runtime 1.0.0. This reference is generated from the official SS documentation so package and language details stay consistent with the release.