Skip to content

editorGlobalsMergeCoplanarSurfacesOperation

Class: MergeCoplanarSurfacesOperation

Merge surfaces in a mesh which are neighbors and have (almost) the same normal. Provides a shortcut to perform this without the async meshoperation overhead.

Hierarchy

SyncSingleMeshOperation

MergeCoplanarSurfacesOperation

Index

Constructors

Properties

Methods

Constructors

constructor

+ new MergeCoplanarSurfacesOperation(operatedMesh: Mesh, fixPolygons: boolean, positionEqualityDistance: number, relaxedPositionEqualityDistance: number): MergeCoplanarSurfacesOperation

Overrides SingleMeshOperation.constructor

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:67

Parameters:

Name Type Default
operatedMesh Mesh -
fixPolygons boolean false
positionEqualityDistance number Config.get("modelLimits.maximumPositionEqualityDistance") as number
relaxedPositionEqualityDistance number Config.get("modelLimits.relaxedPositionEqualityDistance") as number

Returns: MergeCoplanarSurfacesOperation

Properties

Private fixPolygons

fixPolygons: boolean

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:67


Protected mesh

mesh: Mesh

Inherited from SingleMeshOperation.mesh

Defined in src/model/data/Concepts/Mesh/SingleMeshOperation.ts:9


Private positionEqualityDistance

positionEqualityDistance: number

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:66


Private relaxedPositionEqualityDistance

relaxedPositionEqualityDistance: number

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:65

Methods

Private _assignTriangleNeighbors

_assignTriangleNeighbors(triangles2D: Triangle[]): void

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:283

Parameters:

Name Type
triangles2D Triangle[]

Returns: void


Private _constructNewMeshFromMergedSurfaces

_constructNewMeshFromMergedSurfaces(implementation: IMeshImplementation, fixPolygons: boolean): HalfEdgeMeshImplementation[]

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:160

Parameters:

Name Type Description
implementation IMeshImplementation -
fixPolygons boolean -

Returns: HalfEdgeMeshImplementation[]


Private _deduplicateTrianglePoints

_deduplicateTrianglePoints(triangles2D: Triangle[]): void

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:268

Parameters:

Name Type
triangles2D Triangle[]

Returns: void


Private _determineGroupsToMerge

_determineGroupsToMerge(impl: IMeshImplementation): IPolygonMergeGroup[]

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:180

Parameters:

Name Type
impl IMeshImplementation

Returns: IPolygonMergeGroup[]


Protected _executeOnHalfEdgeImpl

_executeOnHalfEdgeImpl(implementation: any): HalfEdgeMeshImplementation[]

Overrides SyncSingleMeshOperation._executeOnHalfEdgeImpl

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:113

Parameters:

Name Type
implementation any

Returns: HalfEdgeMeshImplementation[]


Protected _executeOnSingleSurfaceMeshImplementation

_executeOnSingleSurfaceMeshImplementation(implementation: SingleSurfaceMeshImplementation): SingleSurfaceMeshImplementation[]

Inherited from SyncSingleMeshOperation._executeOnSingleSurfaceMeshImplementation

Defined in src/model/data/Concepts/Mesh/SyncSingleMeshOperation.ts:26

Parameters:

Name Type
implementation SingleSurfaceMeshImplementation

Returns: SingleSurfaceMeshImplementation[]


Protected _getAffectedMeshes

_getAffectedMeshes(): Mesh[]

Inherited from SingleMeshOperation._getAffectedMeshes

Overrides MeshOperation._getAffectedMeshes

Defined in src/model/data/Concepts/Mesh/SingleMeshOperation.ts:16

Returns: Mesh[]


Protected _getSingleMesh

_getSingleMesh(meshes: MeshAndImplementation[]): MeshAndImplementation

Inherited from SingleMeshOperation._getSingleMesh

Defined in src/model/data/Concepts/Mesh/SingleMeshOperation.ts:20

Parameters:

Name Type
meshes MeshAndImplementation[]

Returns: MeshAndImplementation


Private _mergeGroup

_mergeGroup(mergeGroup: IPolygonMergeGroup): void

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:119

Parameters:

Name Type
mergeGroup IPolygonMergeGroup

Returns: void


Protected _performOperation

_performOperation(meshes: MeshAndImplementation[]): [IMeshOperationResult]

Inherited from SyncSingleMeshOperation._performOperation

Overrides MeshOperation._performOperation

Defined in src/model/data/Concepts/Mesh/SyncSingleMeshOperation.ts:32

Parameters:

Name Type
meshes MeshAndImplementation[]

Returns: [IMeshOperationResult]


execute

execute(): PromiseIMeshOperationResult[]›

Inherited from MeshOperation.execute

Defined in src/model/data/Concepts/Mesh/MeshOperation.ts:47

Performs the operation.

Returns: PromiseIMeshOperationResult[]›

Promise that will resolve to an array of IMeshOperationResults, each result being related to one of the affected meshes.


executeSync

executeSync(): void

Inherited from SyncSingleMeshOperation.executeSync

Defined in src/model/data/Concepts/Mesh/SyncSingleMeshOperation.ts:15

If you want to perform this operation synchronously and don't care about meshOperations and changeEvents, use this.

Returns: void


getId

getId(): string

Inherited from MeshOperation.getId

Defined in src/model/data/Concepts/Mesh/MeshOperation.ts:30

this is used to identify for which operation a UI progress bar is being shown, collisions are unlikely and have no severe consequences.

Returns: string

a random string-identifier that should be unique across all MeshOperations


hasBeenStarted

hasBeenStarted(): boolean

Inherited from MeshOperation.hasBeenStarted

Defined in src/model/data/Concepts/Mesh/MeshOperation.ts:37

Returns: boolean

true, if this operation has been started execution


merge

merge(groupsToMerge: IPolygonMergeGroup[]): void

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:96

Project the polygons to 2D. Tessellate them so we have triangles. Assign triangle neighbors. Reconstruct a big polygon from all triangles.

Parameters:

Name Type Description
groupsToMerge IPolygonMergeGroup[] -

Returns: void


mergeSurfaces

mergeSurfaces(impl: IMeshImplementation): VectorPolygon3D[]

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:81

Parameters:

Name Type
impl IMeshImplementation

Returns: VectorPolygon3D[]


Static getTrianglesFromPolygon

getTrianglesFromPolygon(polygon: Polygon): Triangle[]

Defined in src/modules/kyub.core.editInBlender/src/MergeCoplanarSurfacesOperation.ts:45

Parameters:

Name Type
polygon Polygon

Returns: Triangle[]