1. 20 Oct, 2018 1 commit
  2. 19 Oct, 2018 1 commit
    • John Tourtellott's avatar
      Add recipe for Conda build · 922b2a2c
      John Tourtellott authored
      * Uses cmake toolchain to "cross compile" with conda env
      * Comments out vtk-dependent classes from polygon (Import, ExtractContours)
      * Incorporates MOAB build as part of the conda package build
      922b2a2c
  3. 03 Oct, 2018 1 commit
  4. 27 Sep, 2018 1 commit
  5. 08 Sep, 2018 1 commit
  6. 15 Aug, 2018 1 commit
  7. 13 Jul, 2018 1 commit
    • David Thompson's avatar
      Add an operations panel for SMTK/CMB... · acddd098
      David Thompson authored
      ... in which we
      + Add an operations panel UI.
      + Add a new smtk::view::AvailableOperators class that tracks
        a selection and an operation manager, calling observers when
        the list of operations changes (some work TBD).
      + Add `{observe,unobserve}Metadata` to smtk::operation::Manager so
        that new observers can be immediately passed the list of extant
        operation metadata.
      + Respond to selections in modelbuilder.
      + Add a `primaryAssociation()` method to operation metadata
        that returns the smtk::attribute::ReferenceItem for each
        operation (or nullptr if the operation's parameters don't
        support association).
      + Fix logic in AvailableOperators to test whether each
        operator accepts **all** the selected items and that
        the **number** of selected items is appropriate.
      + Remove some debug printouts and use the available-ops observer
        to print when the list changes.
      + Add a new subsystem to SMTK: **workflow**.
        The workflow system will host a task-dag used to provide
        suggestions to users. Currently, it exists only to
        filter+sort the list of applicable operations for
        presentation to the user.
      + Work on the AvailableOperations class in smtk/view to
        own an use the workflow operation filter.
      + Remove use of qtModelOperationWidget from custom operator views.
        This is in preparation for removal of qtModelOperationWidget,
        qtOperationDockWidget, qtOperationView, and qtModelView entirely.
        The qtModelView is replaced by the pqSMTKResourcePanel and the
        others will be replaced by the pqSMTKOperationPanel.
      + Add operation and resource managers to the qtUIManager.
        There may be a better place to put these that is not specific to Qt.
      + Test the workflow OperationFilterSort object (at least JSON
        deserialization).
      + Operation panel now lists available operations on the first selection change.
        The fact that it doesn't list an initial set of operations is a bug.
      + Fixed AvailableOperations so you can set its workflow filter.
      + Added methods to AvailableOperations to provide access to the
        user-facing data on operations that OperationFilterSort::Data provides.
      + Added the qtAvailableOperations widget. It is a subclass of QWidget
        and owns a QListWidget, which it populates with operations based on
        an AvailableOperations instance().
      + Add `createParameters` method to SpecificationOps.
      + When asked for operation parameters, always call `createParameters`
        rather than `extractParameters` so that operations always have unique
        parameters rather than sharing them.
      + Create a top-level view in the UI manager when none exists in order to
        display operators.
      + Listen for click events in the operation list widget and respond
        by showing a view of the matching operation.
      + Fix the XML reader to handle `AssociationDefs` that contain a
        `MembershipMask` tag.
      + Switch a bunch of operators to use `Accepts` entries instead of
        `MembershipMask`s in their associations (to be more specfic about what
        types of resources they accept).
      + Instantiate the pqPluginSMTKViewBehavior class inside
        pqSMTKAppComponentsAutoStart. Otherwise, custom views
        are not registered to the Qt UI manager.
      + The "name" of the assign colors operation has changed
        from "assign colors" to "smtk::model::AssignColors".
        Partially fix the custom view so that the UI is created.
      + Fix misspelled method.
      + Fix polygon "split edge" operation (only 1 edge can be split at a time).
      + Remove debug cruft.
      + Improve operator availability logic.
      + Refactor qtUIManager and pqSMTKOperationPanel.
        Now a qtUIManager may be constructed with an Operation instance
        whose attribute collection will be rendered as its view.
        Furthermore, applications can ask the qtUIManager to find/create a
        default view of its operation.
        This greatly simplifies the operation panel's job.
      + Rename `displayOperation()` methods in the operation panel to
        `editOperation()`, which is more accurate.
      + Fix `qtUIManager::initializeUI()` to create the proper type of
        view info when constructed with an operation.
      + Have the operation panel associate the current selection to the
        chosen operation when double-clicking.
      + Add an option to show **all** operations (or only those
        that match the current selection) to the AvailableOperations
        object. Also, expose it in the operation panel.
      + Have the operation view actually execute the operation,
        not just signal that it wants the operation run.
      + Make the polygon Write operation use associations
        for the resource it will write rather than an Item.
      + Make `smtk::view::Selection` hold `smtk::resource::PersistentObject::Ptr`s
        instead of component pointers. This will allow the operation
        panel to expose operations such as polygon::Write.
      + Add some example "workflow" files.
      acddd098
  8. 18 Jun, 2018 1 commit
    • T.J. Corona's avatar
      Introduce smtkDefaultPlugins library · 93ca07f9
      T.J. Corona authored
      With the new smtk plugin macro, whenever an smtk macro is created
      inside of smtk its plugin target is cached. After the core library
      and all of its sessions are configured, a library is generated whose
      sole function is to link against the plugins and expose them to a
      paraview-derived app.
      93ca07f9
  9. 04 Jun, 2018 1 commit
  10. 29 May, 2018 1 commit
    • T.J. Corona's avatar
      Develop registration process for managers and plugins. · 09ecec04
      T.J. Corona authored
      This commit introduces smtk::common::Registry, a reference counted object
      that manages the lifetime of the registration of a logical collection of
      smtk resources & operations (usually denoted by its own namespace) and
      instances of managers. It also introduces the singleton PluginManager for
      centralizing plugin registration. Finally, it removes the concept of
      environments that hold static managers and automatic registration.
      09ecec04
  11. 08 Mar, 2018 1 commit
  12. 23 Jan, 2018 1 commit
    • T.J. Corona's avatar
      Refactor operators. · dc574a3e
      T.J. Corona authored
      This commit contains many changes made by Haocheng, David and myself.
      It performs the following:
      
      a) move operators out of model and have them operate indpendently from
         model sessions
      b) operators now each have their own attribute collection, rather than being
         represented as single attributes from an attribute collection
      c) Separate XML descriptions from the base operator, loosening the requirement
         on operators to simply have a descriptive attribute (XML descriptions are
         now supported as a subclass of the base operator). This facilitates the
         construction of python operators without requiring an XML string describing
         their inputs
      c) introduce an operation manager that tracks the availability of operators.
         It has the following properties:
         i.   Registration of operators via a unique name (usually the c++ name of
              the operator)
         ii.  Provide a connection to a resource manager so that operations that
              construct resources will automatically register the new resources to
              the manager
         iii. Provide a list of available operators given an input selection (i.e.
              show which operators accept a given input)
      d) allow read/write locks on operations' input resources and add tests for
         asynchronous operations
      e) break static registration of operations and resources into a set of
         libraries that accompany the libraries in which they are defined. A library
         that provides static registration of a resource and associated operations
         for library smtkFoo is called smtkFooEnvironment, and the registration
         occurs in the foo::environment namespace
      f) deprecate the exodus session
      g) convert smtk::model and polygon, mesh and discrete sessions to use
         nlohmann::json instead of cJSON. With this change, we can hopefully remove
         cJSON from smtk
      h) provide operations for creating, loading and saving smtk resources
      i) update tests to use the new operation framework
      
      This merge is a work in progress, but has become too large to avoid merging
      into the msater branch. The outstanding issues are
      
      a) remove smtk::model::Operation from smtk (it is still required for the qt
         bindings)
      b) rename smtk::operation::NewOp smtk::operation::Operator
      c) fix Qt bindings to use the new operation infrastructure
      d) fix the infrastructure for meshing interop with remus to avoid using json
         fragments
      e) remove cJSON from smtk
      f) switch resources' read/write/create methods from bare functors to smtk
         operators. This is more in keeping with the pattern of using operators to
         affect resources
      g) enable CGM session
      h) enable matplotlib extension
      dc574a3e
  13. 16 Jan, 2018 1 commit
  14. 12 Jan, 2018 1 commit
    • David Thompson's avatar
      Model representation and resource tree for ParaView. · ebe09392
      David Thompson authored
      This commit contains many changes from Alvaro Sanchez and me to address:
      + Color-by-entity and -by-volume mode for the model representation.
        In cases where the begin() entity is invalid, volumeOfEntity() would
        return an entity not flagged as being a volume.
      
        In order to get access to an EntityRef's color property, pqRepresentation
        provides a smtk::model::ManagerPtr to the vtkSMTKModelRepresentation object.
      
        The appropriate EntityRef is queried from model::ManagerPtr (Resource)
        depending on the active coloring mode; color-by-entity uses direclty its
        entity color and color-by-volume uses the color of the 0th volume bounded
        by the entity.
      + Use pqSMTKResource's model::Manager instead of a global instance.
      + Representation subtypes (points, wireframe, surface, surface with edges)
        for the model representation.
      + Line color for the model representation.
      + Representation class location.
        Move the server-side classes to the PV server extension and add
        pqProxy subclasses to the appcomponents extension.
        This is necessary to avoid cyclic dependencies between the representation
        and the resource panel (which will soon display/modify the representation's
        visibility information).
      + Move DescriptivePhrase subclasses (that describe content) into
        a PhraseContent class, instances of which are owned by DescriptivePhrase.
        This separates the hierarchy of subjects from the content of the subject
        so that attributes of the subject can be overridden via the decorator pattern.
        This leaves phrase lists with improper descriptions at the moment
        since the common/union flag values are not set properly (among other things).
      + Displaying "eyeball" visibility icon selectively -- only
        when the PhraseContent advertises it as available is it rendered and active.
      + Use the new visitor method of vtkCompositeDataDisplayAttributes to
        fetch per-view block visibility information from mappers and add
        methods to set the per-block visibility, although this is not complete yet.
        This requires us to bump VTK and PV forward, which in turn requires us to
        Fix build issues due to changes in wrapping.
          + Fixes errors: No rule to make target '*Hierarchy'.
          + Manually excludes classes that do not need wrapping.
      + Try to keep `ENTITYID` out of SMTK except for the `vtkModelMultiBlockSource`.
      + Attach UUID to both the multiblock metadata and the actual `vtkDataObject`
        instance. The latter is preferrable in almost every instance since it is
        then possible for methods passed only a data object to get its UUID.
        This is necessary for the PV representation's visibility modification
        queries to work properly since, when iterating over visibility entries in
        vtkCompositeDataDisplayAttribute, only the block is available, not its metadata.
      + Add missing parts to representation xml: property to enable/disable
        multi-block inspector coloring.
      + Create and make representations visible by default in new views.
        pqApplyBehavior makes the model visible on the initial view. Additional
        views need to create and make their representations visible, this is done
        through pqSMTKBehavior.
      + Fix some crashes by holding a weak ref to the selection.
      Co-authored-by: Alvaro Sanchez's avatarAlvaro Sanchez <alvaro.sanchez@kitware.com>
      ebe09392
  15. 28 Dec, 2017 1 commit
  16. 31 Oct, 2017 1 commit
    • David Thompson's avatar
      Follow through on changes required by resource inheritance. · c57053cd
      David Thompson authored
      There are consequences to making everything (mostly) in SMTK
      inherit either Resource or Component.
      A bunch of stuff related to model entities needs to be generalized
      to deal with resource components of any type.
      This commit moves classes around and/or provides alternate versions
      to accomplish this.
      
      + Add a new top-level SMTK subsystem named **view** for dealing
        with presentation of resources and components to the user.
          + Note that smtk::common::`View` should move here at some point.
          + Make a new DescriptivePhrase and SubphraseGenerator in smtk::view.
            These are extremely similar to the versions in smtk::model
            but deal with components of any type.
            Eventually, the versions in smtk::model should disappear.
          + Add new phrase types to the view subsystem:
              + `PhraseList` which replaces `EntityListPhrase` and more
              + `ComponentPhrase` which replaces `EntityPhrase`
              + `ResourcePhrase` which displays the filename holding components.
          + Add the unitDescriptivePhrase test in `smtk/view/testing/cxx` that
            will print out a hierarchy that contains most of the information that
            was in the previous model-specific tree.
      + Add a new `ComponentItem` and `ComponentItemDefinition` to the attribute system.
      c57053cd
  17. 10 Oct, 2017 1 commit
  18. 04 Oct, 2017 1 commit
  19. 14 Aug, 2017 3 commits
  20. 08 Aug, 2017 2 commits
  21. 26 Jul, 2017 1 commit
  22. 03 Jul, 2017 1 commit
  23. 02 May, 2017 1 commit
  24. 15 Feb, 2017 1 commit
  25. 14 Dec, 2016 1 commit
  26. 19 Oct, 2016 1 commit
  27. 25 Aug, 2016 1 commit
    • T.J. Corona's avatar
      Remove auto-generation of SharedPtr.h · 7ba04a00
      T.J. Corona authored
      This commit is in reference to Issue #40. Originally, the header file
      SharedPtr.h was generated to accommodate pre-C++11 builds. Now that we
      enforce the use of C++11, the optional use of boost's shared pointers is
      unnecessary. This commit removes the mechanisms for choosing between stl's
      and boost's shared_ptr, and adds a static header file that uses the stl
      version.
      7ba04a00
  28. 02 Mar, 2016 1 commit
  29. 24 Feb, 2016 1 commit
    • Ben Boeckel's avatar
      python: simplify the logic for bootstrapping · 9ea2a4e4
      Ben Boeckel authored
      Rather than requiring post-processing to remove logic, add a CMake
      variable which can be set to disable to relevant code from the install
      tree if bootstrapping is not necessary.
      9ea2a4e4
  30. 02 Dec, 2015 1 commit
  31. 04 Nov, 2015 1 commit
  32. 20 Oct, 2015 1 commit
  33. 30 Sep, 2015 3 commits
  34. 24 Aug, 2015 2 commits