SMTK issueshttps://gitlab.kitware.com/cmb/smtk/-/issues2022-09-16T10:52:20-04:00https://gitlab.kitware.com/cmb/smtk/-/issues/501Operation sequence operation2022-09-16T10:52:20-04:00David ThompsonOperation sequence operationSMTK should provide an operation that accepts as input a sequence of other operations and runs them as an atomic unit. The idea is that this parent operation would lock the union of all the resources required for its operation sequence a...SMTK should provide an operation that accepts as input a sequence of other operations and runs them as an atomic unit. The idea is that this parent operation would lock the union of all the resources required for its operation sequence and run them internally in order to prevent other operations from running on the resources in between sequence members. However, rather than invoking observers once for the parent operation, observers should be invoked for each of the sequence entries (and potentially also the parent operation).
We need to decide how failure of an operation in the sequence should be handled. The default should probably be to abandon any further operations in the sequence and report failure for the parent operation.
@jwilson1881 FYIDavid ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/498Need method for acquiring Resource locks2022-09-15T01:15:17-04:00David ThompsonNeed method for acquiring Resource locksWe need a method for things other than operations to acquire locks on resources.We need a method for things other than operations to acquire locks on resources.David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/485Coordinate frame should have a filter grammar2022-06-20T14:53:54-04:00David ThompsonCoordinate frame should have a filter grammarCurrently, `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 coordin...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 named `landmark` 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.David ThompsonDavid Thompsonhttps://gitlab.kitware.com/cmb/smtk/-/issues/472Editing descriptive phrase titles for resources is buggy2022-06-20T12:22:31-04:00David ThompsonEditing descriptive phrase titles for resources is buggyCurrently, ResourcePhraseContent presents a resource's title as both its name and its type. This leads to problems when attempting to rename a resource since the initial text is not properly set.
**Note** this also needs to fix the proj...Currently, ResourcePhraseContent presents a resource's title as both its name and its type. This leads to problems when attempting to rename a resource since the initial text is not properly set.
**Note** this also needs to fix the project-panel's phrases (which show resources as children of the project and which suffer a similar issue, albeit with the resource role and name instead of type and name).
The proposed fix is
1. To change ResourcePhraseContent to only show the resource name as the title.
2. To turn on rendering of the subtitle (either overall or specifically for resource phrases) and make the subtitle present the information that was previously in the phrase title.
Note that because subtitles are currently rendered underneath the title – which makes it take up additional space – and there are various optimizations in QTreeView that require all rows to have the same height, it may also be best to change the qtDescriptivePhraseDelegate class to draw the subtitle to the right of the title (in a different, smaller font) rather than underneath the title.Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/475Future work for the graph resource2022-05-06T19:45:03-04:00David ThompsonFuture work for the graph resourceHere is an umbrella issue collecting ideas for expanding/improving the `smtk::graph::Resource`.
### Runtime API and Python bindings
+ Create runtime, non-templated accessor objects for nodes and arcs
+ Use the runtime accessors to prov...Here is an umbrella issue collecting ideas for expanding/improving the `smtk::graph::Resource`.
### Runtime API and Python bindings
+ Create runtime, non-templated accessor objects for nodes and arcs
+ Use the runtime accessors to provide python bindings
+ Create a runtime, non-templated generic arc API
+ Use the API above to accept python-defined arc types.
### Operations
+ We have JSON bindings, but no read/write/create operations. Make some templated on a traits object?
+ Add a "lint" operation (or a free function?) to validate arcs, check that consistency rules hold.
+ Add some operations that perform graph analyses, such as
+ Node degree statistics
+ Graph cuts / partitioning that breaks fewest arcs.
+ Node centrality computation
### Presentation
+ Create a node class-hierarchy subphrase generator.
+ Create an arc-traversal subphrase generator.
+ Prototype a 2-D node+arc layout? (a la the ParaView node editor)
+ Prototype a 1-D node layout with arcs routed to the side.
+ For high-level overviews, is there a subset of visual "super nodes"
that should be rendered instead of showing all nodes+arcs?
### Selection
+ Investigate designs we might use for selecting nodes
(i.e., what should the footprint of a selection be so that
non-visual nodes can be selected by picking visual nodes?
Which of these are exclusive with other selections – in the
same way volumes and faces are exclusive in the model resource?).
### Query grammar
+ Investigate how to extend the query grammar to allow nodes to
be selected based on their connectivity to other nodes along
arcs of a given type.
+ Investigate efficient use of a boost multi-index container for
querying nodes based on things besides name, type-name, and id.
(For example: properties on nodes, property values, arcs.)
The issue is how to expose methods that ensure the index is
properly updated without lots of developer pain.
### Graph theory
+ Investigate methods to expose matrix ←→ graph duality for
mathematical analysis of graphs.
+ Investigate techniques for storing edge weights.
In order to be general:
+ A single edge may have multiple weights in different contexts.
+ Maybe provide an API to get an integer for any pair of connected nodes?
Then as many fields as you want could be stored as a map.
Might also provide an API to "squeeze" assigned IDs into a
contiguous range so fields could be represented as vectors?
This seems like a good use of SMTK's query+cache mechanism,
with the cache being invalidated (or at least marked dirty)
after operations with write locks.https://gitlab.kitware.com/cmb/smtk/-/issues/433Property filtering in attribute resource2021-07-26T12:46:23-04:00David ThompsonProperty filtering in attribute resourceWe need to add filtering attributes by property in the queryFilter grammar of the attribute::Resource.
@am300ed @chart3388 @bob.obara FYI.We need to add filtering attributes by property in the queryFilter grammar of the attribute::Resource.
@am300ed @chart3388 @bob.obara FYI.https://gitlab.kitware.com/cmb/smtk/-/issues/65Provide Drag and Drop for models2019-04-29T15:17:45-04:00Robert M. O'BaraProvide Drag and Drop for modelsAbility to drop model file into the model windowAbility to drop model file into the model windowhttps://gitlab.kitware.com/cmb/smtk/-/issues/198Model-centric view2018-12-27T18:29:34-05:00David ThompsonModel-centric viewWe should bring back the subphrase generator that showed resources as a two-level hierarchy: kinds of objects just beneath each resource and then alphabetized objects underneath each "kind" grouping.We should bring back the subphrase generator that showed resources as a two-level hierarchy: kinds of objects just beneath each resource and then alphabetized objects underneath each "kind" grouping.SMTK 3.0Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/200Remote file browser2018-10-19T14:56:16-04:00David ThompsonRemote file browserExport operations sometimes require users to specify files on remote filesystems.Export operations sometimes require users to specify files on remote filesystems.SMTK 3.0John TourtellottJohn Tourtellotthttps://gitlab.kitware.com/cmb/smtk/-/issues/134Add validate check to Item::assign() methods2018-08-16T15:24:07-04:00John TourtellottAdd validate check to Item::assign() methodsThe smtk::attribute::Item class has a virtual method assign() that was original added to support copy-attribute operations. Each concrete subclass of Item overrides that method. None of the implementations do any validation, which is OK ...The smtk::attribute::Item class has a virtual method assign() that was original added to support copy-attribute operations. Each concrete subclass of Item overrides that method. None of the implementations do any validation, which is OK for copying attributes, since the calling code passes in compatible input. But since the assign() methods are public, they should have an option to verify to check that the assignment is valid with respect to its definition.
Since a general validation is nontrivial, a good starting point would be to match the definition name or, better still, the definition namespace, of the input Item and the target Item.
https://gitlab.kitware.com/cmb/smtk/-/issues/28Ability to apply Elevation to a subset of a mesh2018-08-09T16:22:31-04:00Robert M. O'BaraAbility to apply Elevation to a subset of a meshT.J. CoronaT.J. Coronahttps://gitlab.kitware.com/cmb/smtk/-/issues/25GUI Group Item Table Style2018-08-09T16:22:01-04:00Robert M. O'BaraGUI Group Item Table StyleNeed to be able provide a Table GUI Style for extensible Group Items as well as the ability to provide Read from CSV optionNeed to be able provide a Table GUI Style for extensible Group Items as well as the ability to provide Read from CSV optionhttps://gitlab.kitware.com/cmb/smtk/-/issues/3Add Modification Tracking to Model2018-04-11T01:59:25-04:00Robert M. O'BaraAdd Modification Tracking to ModelNeed to know when a model needs to be saved.Need to know when a model needs to be saved.Yumin YuanYumin Yuanhttps://gitlab.kitware.com/cmb/smtk/-/issues/4Adding Modification Tracking to Attribute System2018-04-11T01:59:25-04:00Robert M. O'BaraAdding Modification Tracking to Attribute SystemNeeds to know when the attribute system needs to be savedNeeds to know when the attribute system needs to be savedRobert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/51Operators should be accessible via a menu item2018-04-11T01:59:25-04:00Robert M. O'BaraOperators should be accessible via a menu itemIn this case the Save Model operator in Polygon Session should be accessible via the File menuIn this case the Save Model operator in Polygon Session should be accessible via the File menuYumin YuanYumin Yuanhttps://gitlab.kitware.com/cmb/smtk/-/issues/53Ability to draw edges that connect to existing model vertices2018-04-11T01:59:25-04:00Robert M. O'BaraAbility to draw edges that connect to existing model verticesWhen interactively creating an edge you should be able start and or stop at model vertices (this doesn't mean being able to select a point that is in the middle of edge - this might be added later).When interactively creating an edge you should be able start and or stop at model vertices (this doesn't mean being able to select a point that is in the middle of edge - this might be added later).Yumin YuanYumin Yuanhttps://gitlab.kitware.com/cmb/smtk/-/issues/77Select multiple points to promote/demote to/from hard nodes2018-04-11T01:59:25-04:00Amanda HinesSelect multiple points to promote/demote to/from hard nodesCurrently you can only promote/demote one point at a time by hovering over it and holding a button and clicking. We need a way to select a group of points and have the option of toggling their vertex/hard node status or set them all as h...Currently you can only promote/demote one point at a time by hovering over it and holding a button and clicking. We need a way to select a group of points and have the option of toggling their vertex/hard node status or set them all as hard nodes (do nothing for a point if it is already a hard node).Robert M. O'BaraRobert M. O'Barahttps://gitlab.kitware.com/cmb/smtk/-/issues/39Can smtk::model::EntityIterator be made stl compliant?2018-04-11T01:59:25-04:00T.J. CoronaCan smtk::model::EntityIterator be made stl compliant?It would be nice to have smtk::model::EntityIterator behave like stl iterators. If it were, we could implement more generic interfaces between the different sections of SMTK (for example, querying sets of entity refs from smtk::mesh::Col...It would be nice to have smtk::model::EntityIterator behave like stl iterators. If it were, we could implement more generic interfaces between the different sections of SMTK (for example, querying sets of entity refs from smtk::mesh::Collection).https://gitlab.kitware.com/cmb/smtk/-/issues/59Ability to import 2D meshes2018-04-11T01:59:25-04:00Robert M. O'BaraAbility to import 2D meshesIgnoring z - be able to create a polygon model from an existing meshIgnoring z - be able to create a polygon model from an existing meshhttps://gitlab.kitware.com/cmb/smtk/-/issues/7Simplify SMTK Model File2018-04-11T01:59:24-04:00Robert M. O'BaraSimplify SMTK Model FileMesh related information such as meshing parameters are probably better saved in the mesh file and not the SMTK Model file. The Mesh file should also have a URL back to the model it came from.
This information is currently in the SMT...Mesh related information such as meshing parameters are probably better saved in the mesh file and not the SMTK Model file. The Mesh file should also have a URL back to the model it came from.
This information is currently in the SMTK Model file and should be removed from it.Yumin YuanYumin Yuan