Class: Vertex
Represents some location that can be shared by multiple users. If a VertexPosition is shared among several vertices, changing the position in one Vertex will influence all other vertices. VertexPositions can be shared by merging vertices; merged vertices can be split and isolated to be manipulated individually.
Hierarchy
- Vertex
Index
Constructors
Properties
Methods
- _resetCache
- _setVertexPosition
- clone
- closeTo
- destroy
- distanceTo
- emitPositionChange
- emitPositionUpdate
- getMergedVertices
- getPosition
- getPositionChangeEventEmitter
- getVertexPosition
- isolate
- mergedTo
- setPosition
- split
- translate
- group
- merge
- unique
Constructors
constructor
+ new Vertex(position: Vector3 | VertexPosition): Vertex
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:168
Parameters:
| Name | Type |
|---|---|
position |
Vector3 | VertexPosition |
Returns: Vertex
Properties
Private cachedMergedVertices
• cachedMergedVertices: readonly Vertex[] | null = null
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:168
Private Readonly positionChangeEventEmitter
• positionChangeEventEmitter: EventEmitter‹Vertex[]› = new EventEmitter
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:167
Private vertexPosition
• vertexPosition: VertexPosition
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:165
Methods
Private _resetCache
▸ _resetCache(): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:284
Returns: void
Private _setVertexPosition
▸ _setVertexPosition(vertexPosition: VertexPosition): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:288
Parameters:
| Name | Type |
|---|---|
vertexPosition |
VertexPosition |
Returns: void
clone
▸ clone(): Vertex‹›
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:197
Creates a copy of this Vertex with the same position. The cloned Vertex is NOT automatically merged with this Vertex.
Returns: Vertex‹›
the cloned Vertex
closeTo
▸ closeTo(other: Vertex): boolean
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:220
Determines whether two vertices are close enough together to share their position.
Parameters:
| Name | Type |
|---|---|
other |
Vertex |
Returns: boolean
whether the two vertices are close together
destroy
▸ destroy(): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:188
Returns: void
distanceTo
▸ distanceTo(otherVertex: Vertex): number
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:280
Parameters:
| Name | Type |
|---|---|
otherVertex |
Vertex |
Returns: number
emitPositionChange
▸ emitPositionChange(): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:180
Returns: void
emitPositionUpdate
▸ emitPositionUpdate(): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:276
This will emit a forced position update
Returns: void
getMergedVertices
▸ getMergedVertices(this: OutlinePoint): readonly OutlinePoint[]
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:260
Gets all vertices merged with this Vertex (including this Vertex).
Parameters:
| Name | Type |
|---|---|
this |
OutlinePoint |
Returns: readonly OutlinePoint[]
▸ getMergedVertices(this: Vertex): readonly Vertex[]
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:261
Parameters:
| Name | Type |
|---|---|
this |
Vertex |
Returns: readonly Vertex[]
getPosition
▸ getPosition(targetVector?: Vector3): Vector3‹›
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:245
Gets the position of this Vertex.
Parameters:
| Name | Type | Description |
|---|---|---|
targetVector? |
Vector3 | Optional target object |
Returns: Vector3‹›
the vertex position
getPositionChangeEventEmitter
▸ getPositionChangeEventEmitter(): IPublicEventEmitterInterface‹Vertex‹›[]›
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:184
Returns: IPublicEventEmitterInterface‹Vertex‹›[]›
getVertexPosition
▸ getVertexPosition(): VertexPosition‹›
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:269
Returns: VertexPosition‹›
isolate
▸ isolate(): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:212
Removed this Vertex from its merged group and isolates it.
Returns: void
mergedTo
▸ mergedTo(other: Vertex): boolean
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:236
Determines whether two vertices are merged.
Parameters:
| Name | Type |
|---|---|
other |
Vertex |
Returns: boolean
whether the two vertices are merged
setPosition
▸ setPosition(position: Vector3, emitUpdate: boolean): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:253
Set the position of this Vertex (and all merged vertices).
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
position |
Vector3 | - | - |
emitUpdate |
boolean | true | Whether to emit an position change event |
Returns: void
split
▸ split(): Vertex‹›[]
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:205
Splits the group of merged vertices this Vertex belongs to into individual vertices.
Returns: Vertex‹›[]
list of split vertices
translate
▸ translate(translation: Vector3): void
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:227
Translates this Vertex by modifying its position.
Parameters:
| Name | Type |
|---|---|
translation |
Vector3 |
Returns: void
Static group
▸ group(vertices: readonly Vertex[]): Vertex‹›[][]
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:112
Groups an array of vertices by their position.
Parameters:
| Name | Type | Description |
|---|---|---|
vertices |
readonly Vertex[] | the vertices to group |
Returns: Vertex‹›[][]
the vertices grouped by position
Static merge
▸ merge(vertices: Vertex[]): VertexPosition[]
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:133
Groups an array of vertices by their position and merges Vertices with the same position.
Parameters:
| Name | Type | Description |
|---|---|---|
vertices |
Vertex[] | the vertices to group and merge |
Returns: VertexPosition[]
the resulting VertexPositions
Static unique
▸ unique(vertices: Vertex[]): Vertex‹›[]
Defined in src/model/data/PhysicalObject/Outline/Vertex.ts:160
Selects and returns one representative Vertex per group of merged vertices.
Parameters:
| Name | Type | Description |
|---|---|---|
vertices |
Vertex[] | the vertices to group and select representatives for |
Returns: Vertex‹›[]
list of selected vertices (one per group)