smtk-21.05.rst 3.62 KB
Newer Older
1
.. _release-notes-21.05:
Bob Obara's avatar
Bob Obara committed
2

3
========================
Bob Obara's avatar
Bob Obara committed
4
SMTK 21.05 Release Notes
5
========================
Bob Obara's avatar
Bob Obara committed
6

7
8
9
10
11
See also `SMTK 21.04 Release Notes`_ for previous changes.

.. _`SMTK 21.04 Release Notes`: smtk-21.04.md


Bob Obara's avatar
Bob Obara committed
12
Changes to Project Subsystem
13
=============================
Bob Obara's avatar
Bob Obara committed
14
15
16
17
18
19
20
21
22
23
24
25
26
27

A major revision was undertaken to the ``smtk::project`` namespace that is not
backward compatible. The previous Project class was hard-coded to a use single
attribute resource and one or two model resources. The new Project class is an
SMTK resource that can support any number of resources including custom ones,
with assigned roles. The new Project class can optionally be scoped to a list
of available operations and resource types. New Project instances store and
retrieve their contents as atomic operations with the file system.
Projects can now be described entirely using Python, making it
easier to implement custom project types for different solvers.

More information is available in the SMTK user guide and there is also a new
`create_a_project tutorial <https://smtk.readthedocs.io/en/latest/tutorials/create_a_project/index.html>`_.

28
29
ParaView Related Changes
========================
Bob Obara's avatar
Bob Obara committed
30
ParaView-extension pipeline-creation changes
31
--------------------------------------------
Bob Obara's avatar
Bob Obara committed
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

We have moved responsibility for creating pqSMTKResource proxies
(which are ParaView pqPipelineSource subclasses) from consumers
like the VisibilityBadge and operation panel to pqSMTKRenderResourceBehavior.
This changes some initialization since proxies will not have an SMTK
resource assigned to them at the time many signals are emitted.
However, it simplifies things for consumers and fixes an issue
where duplicate resources were being created.

This adds storage to pqSMTKBehavior to avoid :math:`O(n^2)` computational
complexity when many resource-proxies are added to a paraview/modelbuilder client.

Note that we use :cxx:`QTimer::singleShot()` to delay creation
of the pipeline until outside of the resource-manager observer
(to avoid deadlocks but also to avoid duplicate pipelines created
by other SMTK-PV behaviors that make empty pipelines (with no SMTK
resource until after the resource has been added to the manager).
This happens, for example, with ParaView's File→Open.

Finally, because resource proxies may be re-assigned a (different)
SMTK resource, we monitor each proxy and update the lookup map as needed.

External-facing changes
55
~~~~~~~~~~~~~~~~~~~~~~~
Bob Obara's avatar
Bob Obara committed
56
57
58
59
60
61

If you have code external to SMTK that invokes
:cxx:`pqSMTKRenderResourceBehavior::instance()->createPipelineSource()`,
you should eliminate it, but be aware that you cannot rely on the pipeline
source being present or initialized at the time many observers are invoked.

62
63
Graph Resource Changes
======================
Bob Obara's avatar
Bob Obara committed
64
Graph-resource ArcMap
65
---------------------
Bob Obara's avatar
Bob Obara committed
66
67
68
69
70
71

The graph resource now provides a custom subclass of TypeMap named smtk::graph::ArcMap.
This subclass deletes the copy and assignment constructors to prevent modifications
to accidental copies of arcs rather than to the resource's arc container.

External changes
72
~~~~~~~~~~~~~~~~
Bob Obara's avatar
Bob Obara committed
73
74
75
76
77
78
79
80

smtk::graph::ResourceBase::ArcSet type-alias was removed and
the ArcMap class can now be used directly.

If you maintain external code that depends on smtk::graph::Resource, you will
need to replace the ResourceBase::ArcSet type-alias with ArcMap (which lives
in smtk::graph not smtk::graph::ResourceBase).

81
82
Software Process Changes
========================
Bob Obara's avatar
Bob Obara committed
83
CMake package directory
84
-----------------------
Bob Obara's avatar
Bob Obara committed
85
86
87
88

The CMake package directory for SMTK is now in a location that CMake searches
by default. This removes the need to do ``-Dsmtk_DIR`` and instead the install
prefix can be given in the ``CMAKE_PREFIX_PATH`` variable.