opensim-gui
opensim-gui copied to clipboard
Marker trail display does not work (get UnsatisfiedLinkError)
Steps to reproduce
- File -> Preview Experimental Data...
- Select Gait10dof18musc\ExperimentalData\subject01_walk.trc
- In Navigator, navigate to ExperimentalData_1 > subject01_walk.trc > Markers
- Right-click R.ASIS and select "Toggle Trail Display"
Expected result
- Trail display is toggled. Here's the result in 3.3:
Actual result
:red_circle: :cry:
java.lang.UnsatisfiedLinkError: vtk.vtkAppendPolyData.VTKInit()J at vtk.vtkAppendPolyData.VTKInit(Native Method) at vtk.vtkObject.(vtkObject.java:97) at vtk.vtkAlgorithm. (vtkAlgorithm.java:386) at vtk.vtkPolyDataAlgorithm. (vtkPolyDataAlgorithm.java:78) at vtk.vtkAppendPolyData. (vtkAppendPolyData.java:82) at org.opensim.view.motions.MotionDisplayer.createTrail(MotionDisplayer.java:964) at org.opensim.view.motions.MotionDisplayer.toggleTrail(MotionDisplayer.java:936) at org.opensim.view.experimentaldata.AnnotatedMotion.toggleObjectTrail(AnnotatedMotion.java:261) at org.opensim.view.experimentaldata.ExperimentalObjectDisplayShowTrailAction.performAction(ExperimentalObjectDisplayShowTrailAction.java:42) at org.openide.util.actions.CallableSystemAction$1.run(CallableSystemAction.java:130) at org.openide.util.actions.ActionInvoker$1.run(ActionInvoker.java:95) at org.openide.util.actions.ActionInvoker.doPerformAction(ActionInvoker.java:116) at org.openide.util.actions.ActionInvoker.invokeAction(ActionInvoker.java:99) at org.openide.util.actions.CallableSystemAction.actionPerformed(CallableSystemAction.java:127) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) at javax.swing.AbstractButton.doClick(AbstractButton.java:376) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:842) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:886) at java.awt.Component.processMouseEvent(Component.java:6533) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6298) at java.awt.Container.processEvent(Container.java:2237) at java.awt.Component.dispatchEventImpl(Component.java:4889) at java.awt.Container.dispatchEventImpl(Container.java:2295) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4889) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4526) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4467) at java.awt.Container.dispatchEventImpl(Container.java:2281) at java.awt.Window.dispatchEventImpl(Window.java:2746) at java.awt.Component.dispatchEvent(Component.java:4711) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:760) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:90) at java.awt.EventQueue$4.run(EventQueue.java:733) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80) at java.awt.EventQueue.dispatchEvent(EventQueue.java:730) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:159) [catch] at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
Environment and GUI version
AppVeyor artifact OpenSim-587ee9d9-2018-03-21.zip
Notes
If it isn't possible to provide this functionality, the "Toggle Trail Display" item should not be displayed.
@jimmyDunne Will investigate how valuable this feature is to users.
I use this feature whenever I am scaling a model. I use the trail to help determine a time range over which to average frames from the static pose. I choose as wide of a time frame as possible through which the markers move very little, and the trails help with this.
Thanks for the feedback @chrisdembia I'll think of a way to restore this capability. In essence we moved from making custom visualization/artifacts (which were convenient to users) to a more streamlined approach that lets components draw themselves. Will see what I can do and if it fits in 4.0.
It's fine with me if we put this off for now.