1. 08 Nov, 2018 1 commit
  2. 13 Feb, 2018 1 commit
  3. 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
      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
      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
  4. 04 Sep, 2017 1 commit
  5. 23 Aug, 2017 1 commit
  6. 19 Jun, 2017 1 commit
  7. 26 Apr, 2017 1 commit
  8. 17 Apr, 2017 1 commit
  9. 14 Apr, 2017 1 commit
  10. 16 Mar, 2017 1 commit
  11. 28 Jun, 2016 1 commit
  12. 23 Apr, 2015 1 commit
  13. 23 Dec, 2014 1 commit
  14. 17 Dec, 2014 1 commit
  15. 04 Dec, 2014 1 commit
    • David Thompson's avatar
      Support universal operators; add one (set property). · 7b117dc8
      David Thompson authored
      This commit adds support for "universal" operators that can work on any bridge.
      It is accomplished by allowing operators to be registered with the base Bridge
      class and adding the inheritsOperators() method to bridges so that remote
      bridges can avoid inheriting any operators from base classes.
      This commit also adds a new operator that is (suprise!) universal:
      the "set property" operator.
      It sets property values such as the name and color on model entities, which
      is typically information not stored in the foreign modeling kernel.
  16. 28 Nov, 2014 2 commits
  17. 13 Nov, 2014 1 commit
  18. 26 Sep, 2014 1 commit
  19. 23 Sep, 2014 2 commits
  20. 10 Sep, 2014 1 commit
    • David Thompson's avatar
      Progress on remote bridge via Remus and miscellany. · 5d4cb8a3
      David Thompson authored
      Remus remote bridge
      You must run your own Remus server and manually
      start an smtk-remote-model process, but if you do
      then the new unitRemusBridgeConnection test will
      not fail immediately.
      Remus "mesh type" names are used to advertise specific bridge
      types (e.g., "smtk::model[cgm{OpenCascade}]" instead of
      "cgm" with the default engine set to OpenCascade).
      It is possible to start a remote bridge session.
      The request is made and the resulting session ID is
      included in the response.
      Base SMTK changes in support of Remus
      1. Add method to import local bridge sessions.
      2. Fix documentation for remote operators.
      3. Move registration of bridges into its own class, BridgeRegistrar.
         This class will not be wrapped or even parsed by shiboken.
      4. Add a CGM read operator. This is currently only tested if you
         run the remus unit test, but that must be done manually for now
         because a remus server and worker must be run separately.
         The code that actually reads the model is taken mostly
         from `smtk/cgm/ImportSolid.cxx`.
      5. Add a way to force model associations to be copied.
         SMTK's model expects to be able to copy model associations
         and ModelEntityItem attribute items between attribute managers
         even when they do not have a common model manager (such as
         when temporary attribute managers are constructed for bridges
         to use when copying operators and their results).
         Because UUIDs are unique (not in a verified way, but highly
         likely), these copies should not cause issues.
      1. Expose Vertex coordinates.
      2. Report cells of a model even when it has no arrangements.
      3. Remove the `CellEntity::shellEntities()` method as it would only return things for naughty cells in any event.
      4. Ignore CGM warnings. (Use pragmas to ignore warnings generated by CGM.)
      5. Ignore warnings generated inside boost headers.
      6. Ignore shiboken warnings.
      7. Clarify docs for ImportJSON.