OpenIGTlinkIF Transform references

I am using openigtif extenstion to get streaming data from my tracker. Is there a way to get a reference to the transforms created by openigtif extenstion before they are created?

I want a object to be set to a default position (identity) until the slicerIGTIF updates this transform.
I have tried creating a transform node with the same name as the transform coming in, but I just get duplicates instead.

Update to my own question.

I am thinking of going down the path of having an observer that watches the scene to see if a node with the correct name was added. Is this the best method?

OpenIGTlinkIF module looks up nodes by name (that matches the device name in OpenIGTLink message).

We usually create the node by the appropriate name before we establish the OpenIGTLink connection. This way OpenIGTLinkIF module finds that node and updates it in real-time.

If you prefer OpenIGTLinkIF to create the nodes for you then looking them up by name is correct, too. The only slight additional complexity is that you need to add the scene observers to detect when the nodes are added.

I assumed that the openigtlinkif module looked nodes up by name. And I created a node with the same name prior to creating the openigt link. However, I get another node with the same name when the connection is established rather than the node that I previously created being used.

Here is the screenshot. The first one in the list is the one I created. The second is the one that was added by openigtlinkif after establishing the connection.

image

Please try with latest Preview Release of Slicer and let us know if this is still the case.

@Sunderlandkyl Do you remember having a problem that OpenIGTLinkIF created new nodes instead of reusing existing nodes by the same name&type?

When it was originally split into the SlicerOpenIGTLink module it had that problem, but as I recall I fixed it shortly after.

1 Like

I just tested it with the latest nightly version of Slicer, and it found the existing nodes with the same name.

1 Like

Found the issue.

I was using a TransformNode.
Once I used the LinearTransformNode, it works as expected.

1 Like

@Sunderlandkyl could you update OpenIGTLinkIF so that it can update vtkMRMLTransformNode types as well?

1 Like

Integrated in 36041a4.

It should be included in tomorrows nightly build.

2 Likes