Skip to content

Shapemetry API


Shapemetry API / GcsSystem

Class: GcsSystem

Defined in: sketch/index.ts:75

The geometric constraint system. Owns all entities (points, lines, circles, arcs) and constraints. Provides CRUD operations and orchestrates the solver.

Constructors

Constructor

new GcsSystem(): GcsSystem

Returns

GcsSystem

Properties

points

points: GenArena<GcsPoint>

Defined in: sketch/index.ts:76


lines

lines: GenArena<GcsLine>

Defined in: sketch/index.ts:77


circles

circles: GenArena<GcsCircle>

Defined in: sketch/index.ts:78


arcs

arcs: GenArena<GcsArc>

Defined in: sketch/index.ts:79


constraints

constraints: GenArena<ConstraintEntry>

Defined in: sketch/index.ts:80


arcInternalConstraints

arcInternalConstraints: Map<string, ConstraintHandle>

Defined in: sketch/index.ts:86

Internal constraints auto-added by addArc (center–end distance). Keyed by arc handle key so they can be removed with the arc.


parameterMap

parameterMap: ParamRef[] = []

Defined in: sketch/index.ts:89

Cached parameter list (rebuilt when dirty).


parameterIndex

parameterIndex: Map<string, number>

Defined in: sketch/index.ts:91

Map from paramRefKey to index in parameterMap.


dirty

dirty: boolean = false

Defined in: sketch/index.ts:93

Whether the parameter map needs rebuilding.

Accessors

pointCount

Get Signature

get pointCount(): number

Defined in: sketch/index.ts:240

Returns

number


lineCount

Get Signature

get lineCount(): number

Defined in: sketch/index.ts:241

Returns

number


circleCount

Get Signature

get circleCount(): number

Defined in: sketch/index.ts:242

Returns

number


arcCount

Get Signature

get arcCount(): number

Defined in: sketch/index.ts:243

Returns

number


constraintCount

Get Signature

get constraintCount(): number

Defined in: sketch/index.ts:244

Returns

number

Methods

addPoint()

addPoint(x, y, fixed?): GcsPointHandle

Defined in: sketch/index.ts:97

Parameters

x

number

y

number

fixed?

boolean = false

Returns

GcsPointHandle


getPoint()

getPoint(handle): GcsPoint | null

Defined in: sketch/index.ts:102

Parameters

handle

GcsPointHandle

Returns

GcsPoint | null


setFixed()

setFixed(handle, fixed): void

Defined in: sketch/index.ts:106

Parameters

handle

GcsPointHandle

fixed

boolean

Returns

void


removePoint()

removePoint(handle): boolean

Defined in: sketch/index.ts:114

Parameters

handle

GcsPointHandle

Returns

boolean


addLine()

addLine(p1, p2): GcsLineHandle | null

Defined in: sketch/index.ts:137

Parameters

p1

GcsPointHandle

p2

GcsPointHandle

Returns

GcsLineHandle | null


getLine()

getLine(handle): GcsLine | null

Defined in: sketch/index.ts:142

Parameters

handle

GcsLineHandle

Returns

GcsLine | null


removeLine()

removeLine(handle): boolean

Defined in: sketch/index.ts:146

Parameters

handle

GcsLineHandle

Returns

boolean


addCircle()

addCircle(center, radius): GcsCircleHandle | null

Defined in: sketch/index.ts:155

Parameters

center

GcsPointHandle

radius

number

Returns

GcsCircleHandle | null


getCircle()

getCircle(handle): GcsCircle | null

Defined in: sketch/index.ts:161

Parameters

handle

GcsCircleHandle

Returns

GcsCircle | null


removeCircle()

removeCircle(handle): boolean

Defined in: sketch/index.ts:165

Parameters

handle

GcsCircleHandle

Returns

boolean


addArc()

addArc(center, start, end): GcsArcHandle | null

Defined in: sketch/index.ts:180

Add an arc defined by center, start, and end points. Auto-adds an internal PointOnArc(end, arc) constraint so that dist(center, end) == dist(center, start) is maintained dynamically.

Parameters

center

GcsPointHandle

start

GcsPointHandle

end

GcsPointHandle

Returns

GcsArcHandle | null


getArc()

getArc(handle): GcsArc | null

Defined in: sketch/index.ts:197

Parameters

handle

GcsArcHandle

Returns

GcsArc | null


removeArc()

removeArc(handle): boolean

Defined in: sketch/index.ts:201

Parameters

handle

GcsArcHandle

Returns

boolean


addConstraint()

addConstraint(constraint): ConstraintHandle | null

Defined in: sketch/index.ts:222

Parameters

constraint

Constraint

Returns

ConstraintHandle | null


removeConstraint()

removeConstraint(handle): boolean

Defined in: sketch/index.ts:228

Parameters

handle

ConstraintHandle

Returns

boolean


getConstraint()

getConstraint(handle): Constraint | null

Defined in: sketch/index.ts:234

Parameters

handle

ConstraintHandle

Returns

Constraint | null


solve()

solve(maxIterations?, tolerance?): SolveResult

Defined in: sketch/index.ts:252

Solve the constraint system. Modifies entity positions in-place to satisfy all constraints.

Parameters

maxIterations?

number = 100

tolerance?

number = 1e-10

Returns

SolveResult


dof()

dof(): DofAnalysis

Defined in: sketch/index.ts:312

Analyze degrees of freedom in the current system.

Returns

DofAnalysis


getPointPosition()

getPointPosition(handle): { x: number; y: number; } | null

Defined in: sketch/index.ts:339

Parameters

handle

GcsPointHandle

Returns

{ x: number; y: number; } | null


getLineEndpoints()

getLineEndpoints(handle): { start: { x: number; y: number; }; end: { x: number; y: number; }; } | null

Defined in: sketch/index.ts:345

Parameters

handle

GcsLineHandle

Returns

{ start: { x: number; y: number; }; end: { x: number; y: number; }; } | null


getCircleGeometry()

getCircleGeometry(handle): { center: { x: number; y: number; }; radius: number; } | null

Defined in: sketch/index.ts:354

Parameters

handle

GcsCircleHandle

Returns

{ center: { x: number; y: number; }; radius: number; } | null


getArcGeometry()

getArcGeometry(handle): { center: { x: number; y: number; }; start: { x: number; y: number; }; end: { x: number; y: number; }; } | null

Defined in: sketch/index.ts:362

Parameters

handle

GcsArcHandle

Returns

{ center: { x: number; y: number; }; start: { x: number; y: number; }; end: { x: number; y: number; }; } | null


rebuildIfDirty()

rebuildIfDirty(): void

Defined in: sketch/index.ts:382

Returns

void


extractParameters()

extractParameters(): Float64Array

Defined in: sketch/index.ts:413

Returns

Float64Array


writeParameters()

writeParameters(parameters, parameterMap): void

Defined in: sketch/index.ts:428

Parameters

parameters

Float64Array

parameterMap

ParamRef[]

Returns

void


buildSnapshot()

buildSnapshot(): EntitySnapshot

Defined in: sketch/index.ts:444

Returns

EntitySnapshot


buildSnapshotFromParams()

buildSnapshotFromParams(parameters, parameterIndex): EntitySnapshot

Defined in: sketch/index.ts:485

Parameters

parameters

Float64Array

parameterIndex

Map<string, number>

Returns

EntitySnapshot


validateConstraint()

validateConstraint(constraint): boolean

Defined in: sketch/index.ts:539

Parameters

constraint

Constraint

Returns

boolean