Coordinate frame should have a filter grammar
Currently, Resource::filter()
will not accept query strings that search for components with a coordinate frame property because smtk/resource/filter/Grammar.h
does not provide a specialization of the Property<>
template for coordinate frames.
As part of implementing this, we should decide what the query syntax should be. While searching for the existence of a frame is straightforward:
[frame]
or [frame{'landmark'}]
(depending on whether a specific name is required)
it is unclear how matches to particular values should be dealt with. One potential syntax might be:
-
[frame{'landmark'=origin[0,0,0]}]
any frame namedlandmark
placed at the origin. -
[frame{'landmark'=origin[0,0,0]&(x[1,0,0]|y[0,1,0])}]
as above, but with either x along [1,0,0] or y along [0,1,0]. - We would need to figure something out for the "parent" field of a coordinate frame. While the bare bones would be to accept a UUID, a better alternative might be to accept a second, nested filter string so that parent components could be identified by name, type, or any other property filter.