CSOSplitSelfIntersection¶
-
MLModule
¶ genre CSOModificator
authors Frank Heckel
,Hans Meine
package FMEwork/ReleaseMeVis
dll MLCSOMiscModules
definition MLCSOMiscModules.def
Purpose¶
This modules splits self-intersecting CSOs into none self-intersecting parts.
Usage¶
Attach a CSOList to the module’s input and enter a list of CSO ids into the according field for selecting the subset of CSOs that should be split. If the module does not work directly on the input CSOList (have a look at the according field), the module copies the input CSOList to its output and performs on the copied output list.
Details¶
For closed contours, all polygons defining connected regions are extracted and it is determined whether the region defines an inside or an outside region with respect to the original CSO. CSOs defining a region whose points are located inside the original CSO the CSO’s subtype SUB_TYPE_CLOSED_INSIDE. Outside regions are set to SUB_TYPE_CLOSED_OUTSIDE.
For open CSOs, the contour is split into all segments between two self intersections and only loops are found as closed contours. The subtype for loops is set to SUB_TYPE_CLOSED_UNKNOWN, as it is not well defined whether this part is inside or outside. The subtype for open contour parts is set to SUB_TYPE_OPEN.
The module only processes CSOs that are in plane. Otherwise, the contour is simply copied if the Splitting Mode
is set to ALL.
Input Fields¶
Output Fields¶
Parameter Fields¶
Field Index¶
addCSOToGroupMode : Enum |
emptyGroupBeforeGeneration : Bool |
Selection : Bool |
addCSOToGroupWithId : Integer |
Enable Undo/Redo : Bool |
Size : Float |
addCSOToGroupWithLabel : String |
Finishing : Bool |
Splitting Mode : Enum |
Auto apply : Bool |
id : Integer |
Style : Enum |
Change settings of modified CSOs : Bool |
isProcessing : Bool |
Update : Trigger |
Color (pathPointColor) : Color |
Mode (updateMode) : Enum |
Value : Float |
Color (seedPointColor) : Color |
Mode (seedPointStyle) : Enum |
Width : Float |
CSO Ids : String |
Path Point Alpha : Float |
Work directly on input CSOList : Bool |
done : Trigger |
Seed Point Alpha : Float |
Write Mode : Enum |
Visible Fields¶
Mode (updateMode)¶
-
name:
updateMode
, type:
Enum
, default:
AutoClear
¶ The update mode of the module, concerning the CSOList input and its notifications. Note that the notifications can be adjusted as well.
Values:
Title | Name |
---|---|
Off | Off |
Auto Update | AutoUpdate |
Auto Clear | AutoClear |
Auto apply¶
-
name:
autoApply
, type:
Bool
, default:
FALSE
¶ If checked, each field change of the module’s GUI lead to an update, no matter if the update mode is Off.
Style¶
-
name:
pathPointStyle
, type:
Enum
, default:
LineStyleSolid
, deprecated name:
pathPointLineStyle
¶ Determines the style of the path points (the contour itself).
Values:
Title | Name |
---|---|
None | LineStyleNone |
Solid | LineStyleSolid |
Dashed | LineStyleDashed |
Dotted | LineStyleDotted |
Short Dashed | LineStyleShortDashed |
Width¶
-
name:
pathPointWidth
, type:
Float
, default:
1
, deprecated name:
pathPointLineWidth
¶ The line width of the path points.
Color (pathPointColor)¶
-
name:
pathPointColor
, type:
Color
, default:
1 1 0
¶ The color of the path points.
Path Point Alpha¶
-
name:
pathPointAlpha
, type:
Float
, default:
1
, minimum:
0
, maximum:
1
¶ The opacity of the path points.
Mode (seedPointStyle)¶
-
name:
seedPointStyle
, type:
Enum
, default:
MarkerModeRect
, deprecated name:
markerMode
¶ Determines the visualization of the seed points.
Values:
Title | Name |
---|---|
None | MarkerModeNone |
Rect | MarkerModeRect |
Circle | MarkerModeCircle |
Fixed Cirlce | MarkerModeFixedCirlce |
Size¶
-
name:
seedPointSize
, type:
Float
, default:
2
, deprecated name:
markerSize
¶ The size of the seed points in device coordinates (pixels).
Color (seedPointColor)¶
-
name:
seedPointColor
, type:
Color
, default:
0 1 0
, deprecated name:
markerColor
¶ The color of the seed points.
Seed Point Alpha¶
-
name:
seedPointAlpha
, type:
Float
, default:
1
, minimum:
0
, maximum:
1
, deprecated name:
markerAlpha
¶ The opacity of the seed points.
Write Mode¶
-
name:
voxelWriteMode
, type:
Enum
, default:
VoxelWriteModeModule
¶ The voxel write mode for generated CSOs.
Values:
Title | Name |
---|---|
Id | VoxelWriteModeId |
Const | VoxelWriteModeConst |
Const Plus Id | VoxelWriteModeConstPlusId |
Module | VoxelWriteModeModule |
Value¶
-
name:
voxelWriteValue
, type:
Float
, default:
1024
¶ The voxel write value. This is the Const part.
CSO Ids¶
-
name:
csoIdList
, type:
String
¶ A list of CSO ids that specifies the CSOs to be split. If the list is empty, all CSOs are split.
Work directly on input CSOList¶
-
name:
workDirectlyOnInputList
, type:
Bool
, default:
TRUE
¶ If checked, the module works directly on its input list and does not copy it. Note that the original CSOList is changed globally in the network. If this option is unchecked, the module copies the input list to its output field, and performs the requested operation on the output list.
Change settings of modified CSOs¶
-
name:
changeSettingsForModifiedCSOs
, type:
Bool
, default:
FALSE
¶ If true the settings of the split CSOs are modified.
Finishing¶
-
name:
listenToFinishingNotifications
, type:
Bool
, default:
TRUE
¶ If checked, and the update mode is set to Auto Update, the module will perform its action on the given list of CSOs if a finishing notification is sent through the network.
Selection¶
-
name:
listenToSelectionNotifications
, type:
Bool
, default:
TRUE
¶ If checked, and the update mode is set to Auto Update, the module will perform its action on the given list of CSOs if a selection notification is sent through the network.
Splitting Mode¶
-
name:
splittingMode
, type:
Enum
, default:
All
¶ Defines which contours should be provided at
outCSOList
.
Values:
Title | Name | Description |
---|---|---|
Closed Inside Manifold | Closed Inside Manifold | Like “closed inside” but additionally discards “outside” holes that are completely surrounded by the result. (Such holes may lead to resulting CSOs that touch themselves in single points, which makes them non-manifold and still counts as self-intersection according to CSOInfo.) |
Closed Inside | Closed Inside | Only output contours that are closed and which define regions that are considered “inside” the original contour. |
Closed Outside | Closed Outside | Only output contours that are closed and which define regions that are considered “outside” the original contour. (Holes within closed input contours.) |
Closed Unknown | Closed Unknown | Only output contours that are closed and which define regions that are unknown (i.e., closed regions of self-intersecting open contours). |
Open | Open | Only output contours that are open (rests after removing self-intersecting loops). |
All | All | Output all contours (union of output in other modes), even including contours that are not in plane. |