editor › Globals › MergeCoplanarSurfacesOperation
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
↳ MergeCoplanarSurfacesOperation
Index
Constructors
Properties
Methods
- _assignTriangleNeighbors
- _constructNewMeshFromMergedSurfaces
- _deduplicateTrianglePoints
- _determineGroupsToMerge
- _executeOnHalfEdgeImpl
- _executeOnSingleSurfaceMeshImplementation
- _getAffectedMeshes
- _getSingleMesh
- _mergeGroup
- _performOperation
- execute
- executeSync
- getId
- hasBeenStarted
- merge
- mergeSurfaces
- getTrianglesFromPolygon
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(): Promise‹IMeshOperationResult[]›
Inherited from MeshOperation.execute
Defined in src/model/data/Concepts/Mesh/MeshOperation.ts:47
Performs the operation.
Returns: Promise‹IMeshOperationResult[]›
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[]