-
David Thompson authored
The markup resource is focused on the annotation of geometric models (i.e., "marking up the geometry"). Some related changes include: + Do not fail when geometry is not provided. Some resources inherit `smtk::geometry::Resource` but have no geometry and that's alright. Avoid VTK errors/warnings when this happens. + Graph-resource grammar improvements. + Accept `any` or `*` queries to mean that any object matches. + Ensure that an empty query is parsed properly (since now all of the query string must be consumed by a rule, provide a rule that matches zero or more spaces) and that it returns false for all components. + Fix the JSON node serializer to use a proper filter grammar (where previously parsing would fail, thus reporting every node as matching… but then the exact type-name check would filter the list down to what was needed). + Fix several tests that used improper query-filters. + Add component names and transforms to VTK geometry. + Add a `resourceAs<T>()` method to the JSON helper. + Add `smtk::string::Token`s as a supported property type. This also includes sets of tokens (not vectors since generally that makes less sense than sets). The changes to the filter grammars are because now the `smtk::string` namespace takes precedence over the `tao::pegtl::string` template-class. Without resolving the ambiguity, some compilers (f35 gcc 11.3.1) complain. + Improve graph-resource dump formatting. 1. Fix arc-color lookup to use the instance of the Dump class that users explicitly provide rather than the automatically-created instance that can never have colors. 2. Make the node class-names for use with `dot -Tsvg` into valid CSS descriptors by replacing colons with underscores. 3. Add CSS class-names to arc types (in addition to node types). + Add `smtk::common::StringUtil::replaceAll()`. + Add `smtk::graph::Component::parentResourceAs<>()` as a convenience to cast `parentResource()` to a final type. + Add a method to convert an operation type-name to a type-index. + Add an event recorder/player for the operation toolbox. However, this is only a partial solution to testing. + Add utility functions to `smtk::common::Paths`. + Create directories along a path. + Test whether a path is relative or absolute. + Have `smtk::common::ThreadPool` report unhandled exceptions instead of silently failing. + Provide arc implementations with a `typeName()` method. This is useful for Python bindings and other situations where an arc type is not known at compile time. + Provide `generateFilename()` test helper on windows. + Add operation-groups for creating and dissolving groups. + Add Edit→group/ungroup menu items with shortcuts. + Fix problematic menu insertion. Many ParaView extensions that added menu items used a pattern where the action would not be inserted into the application until the menu was first clicked by the user. This delayed the registration of keyboard shortcuts until the user visited the menu; as a result, users were confused when shortcuts worked sometimes and not others. This delay is no longer required as ParaView now provides (and the applications already use) the ``pqApplicationCore::clientEnvironmentDone`` signal to insert menu items once the base application has already prepared menu items. Thus, we remove the one-shot connection previously used to insert menu items into their correct position. + Add the concept of operation hints and ParaView UI operation-hint behavior that acts on these hints. + The `smtk::common::TypeContainer` now uses string hashes of the type-name of its contents to index them rather than `typeid().hash_code()`. This fixes issues on macos.
8402d848