WEMExpandToMarkers¶
Purpose¶
Expand a WEM guided by a set of markers.
Usage¶
Connect a WEM and an XMarkerList and press Apply.
Details¶
Movement of nodes is either direct or indirect. Nodes that are moved directly are guided by the position of an input marker, while indirectly moved nodes are influenced by directly moved nodes.
The algorithm iterates over all input markers, and pairs them with the closest node that has not been moved yet. This introduces a certain bias with respect to the order of the input markers. It also means that spatial resolution of the input marker cloud should be in the same order of magnitude of the mesh resolution, otherwise input markers will pair with nodes that are much farther away than intended.
Windows¶
Default Panel¶
Input Fields¶
inWEM¶
- name: inWEM, type: MLBase¶
Input WEM.
inMarkerList¶
- name: inMarkerList, type: MLBase¶
Marker list with markers in world coordinates.
Output Fields¶
outWEM¶
- name: outWEM, type: MLBase¶
Expanded output WEM.
Parameter Fields¶
Field Index¶
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Visible Fields¶
Elapsed Time [s]¶
- name: elapsedTime, type: Float, persistent: no¶
Duration of calculation.
see also WEMGenerator.elapsedTime
Auto apply¶
- name: autoApply, type: Bool, default: FALSE¶
If true, the output is updated when parameters or the
inMarkerListchange.
see also WEMGenerator.autoApply
Update Mode¶
- name: updateMode, type: Enum, default: AutoUpdate¶
Select update behavior
see also WEMGenerator.updateMode
Apply¶
- name: apply, type: Trigger¶
Update the output.
see also WEMGenerator.apply
Overwrite Label Description¶
- name: overwriteLabelDescription, type: Bool, default: FALSE¶
if true, label and description of the WEM are updated.
Label¶
- name: label, type: String¶
New label.
see also WEMGenerator.label
Description¶
- name: description, type: String¶
New description.
see also WEMGenerator.description
Move points indirectly¶
- name: inMovePointsIndirectly, type: Bool, default: FALSE¶
If false, only nodes directly affected by a marker are moved. This typically results in a “spiky” output WEM.
If true, movement for all nodes that have not been moved directly is interpolated.
Minimum Number of Influencing Neighbors¶
- name: inMinimumNumberOfInfluencingNeighbors, type: Integer, default: 3, minimum: 1¶
Minimum number of nodes to influence a previously unmoved node.
This field only has an effect in combination with the WeightedInfluencersAlongNormal mode.
Move only points within influence¶
- name: inRestrictInfluenceWhenMovingIndirectly, type: Bool, default: FALSE¶
If true, indirect movement is only applied to such nodes that have a sufficient number of neighbors within a given range. Nodes outside of this influence range are not moved at all.
This field only has an effect in combination with the WeightedInfluencersAlongNormal mode.
Maximum Influence Range of Neighbors¶
- name: inMaximumInfluenceRangeForIndirectMovement, type: Integer, default: 5, minimum: 0¶
Maximum range of influence (in number of edges travelled) a node can have on indirectly moved nodes.
This field only has an effect in combination with the WeightedInfluencersAlongNormal mode.
Direct Movement Mode¶
- name: inDirectMovementMode, type: Enum, default: NodeNormal¶
Determines how direct movement is calculated
Values:
Title |
Name |
Description |
|---|---|---|
Node Normal |
NodeNormal |
For each input marker, the closest node is located. The new node position is the intersection of the node normal and the plane defined by the input marker and the node normal. Nodes move along their normals only, and movement influence is propagated as a factor of such movement along the normal. |
Euclidean |
Euclidean |
For each input marker, the closest node is located. The new node position is the marker position. Nodes can move into arbitrary directions, and movement influence is propagated as the movement direction between a marker and the associated node. |
Indirect Movement Mode¶
- name: inIndirectMovementMode, type: Enum, default: WeightedInfluencersAlongNormal¶
Determines how indirect movement is calculated
Values:
Title |
Name |
Description |
|---|---|---|
Weighted Influencers Along Normal |
WeightedInfluencersAlongNormal |
The movement factors of all directly moved nodes affecting an unmoved node are combined in a distance-weighted average (distances are normalized). Indirectly moved nodes move along the mean factor of influencing nodes along their own normal. The neighborhood of a node is searched until at least N (given by |
Distance Weighted Along Vector |
DistanceWeightedAlongVector |
Directly moved nodes influence neighboring nodes by their own movement, which is reduced with every neighbor step. Indirectly moved nodes move along the direction of the closest directly moved node, reduced by the geodesic distance. |
Indirect Movement Reduction Percentage¶
- name: inIndirectReductionPercentage, type: Double, default: 25, minimum: 0, maximum: 100¶
Reduce movement in DistanceWeightedAlongVector mode by this percentage.
Indirect Movement Reduction Influence [mm]¶
- name: inIndirectReductionPercentageInfluenceMM, type: Double, default: 2, minimum: 0.25¶
Determines how far indirect movement in DistanceWeightedAlongVector mode spreads.
Allow to move boundary nodes¶
- name: inShouldAllowBoundaryNodeMovement, type: Bool, default: TRUE¶
If true, nodes that lie on a boundary are allowed to move. If false, input markers only pair with non-boundary nodes.