Adding components after a zero-length component results in exception
PipeControlPoint.getInlineControlPointEnds()
returns a vector of the length of the component, which is then normalized, resulting in a division by zero.
java.lang.IllegalArgumentException: NaN is not supported
at org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.setPosition(PipeControlPoint.java:1581)
at org.simantics.g3d.scenegraph.G3DNode.setWorldPosition(G3DNode.java:153)
at org.simantics.plant3d.utils.ComponentUtils.addComponent(ComponentUtils.java:535)
at fi.apros.pipeline.utils.ComponentUtils.addComponentBeforeEquipment(ComponentUtils.java:89)
at fi.apros.pipeline.utils.PipelineUIUtils.addComponentBeforeEquipment(PipelineUIUtils.java:65)
at fi.apros.pipeline.editor.PipelineEditor.addComponentBeforeEquipment(PipelineEditor.java:759)
at fi.apros.pipeline.editor.PipelineEditor.access$3(PipelineEditor.java:754)
at fi.apros.pipeline.editor.PipelineEditor$AddComponentToEquipmentAction.run(PipelineEditor.java:750)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:474)
The direction is calculated by getInlineDir()
, which returns a normalized vector. This should be directly used instead.