Commit Graph

667 Commits

Author SHA1 Message Date
Kenneth Moreland
38bdfec40a Move ColorTable::Sample methods to vtkm_cont
There is little value to declare them `inline`. Instead, just have them
compiled once in the `vtkm_cont` library.
2020-09-14 16:40:26 -06:00
Kenneth Moreland
11996f133f Remove virtual methods from ColorTable
Virtual methods are being deprecated, so remove their use from the
ColorTable classes. Instead of using a virtual method to look up a value
in the ColorTable, we essentially use a switch statement. This change
also simplified the code quite a bit.

The execution object used to use pointers to handle the virtual objects.
That is no longer necessary, so a simple `vtkm::exec::ColorTable` is
returned for execution objects. (Note that this `ColorTable` contains
pointers that are specific for the particular device.) This is a non-
backward compabible change. However, the only place (outside of the
`ColorTable` implementation itself) was a single worklet for converting
scalars to colors (`vtkm::worklet::colorconversion::TransferFunction`).
This is unlikely to affect anyone.

I also "fixed" some names in enum structs. There has been some
inconsistencies in VTK-m on whether items in an enum struct are
capitolized or camel case. We seem to moving toward camel case, so
deprecate some old names.
2020-09-14 13:26:16 -06:00
Kenneth Moreland
571aa9f3d7 Simplify getting test file names
The testing helper class provided a method named `GetTestDataBasePath`
that returned the base path to all the data files stored in the VTK-m
repo. This is fine, but it was a little cumbersome to build filenames.

To make things easier, there is now a new method named `DataPath` that
takes a string of the filename (or, rather, subpath) to the file in that
directory and automatically builds the path to it.
2020-08-25 06:17:59 -06:00
Kitware Robot
cf0cdcf7d1 clang-format: reformat the repository with clang-format-9 2020-08-24 14:01:08 -04:00
Sujin Philip
452f61e290 Add Kokkos backend 2020-08-12 13:55:24 -04:00
Kenneth Moreland
d1a4aecc59 Improvements to moving data into ArrayHandle
We have made several improvements to adding data into an `ArrayHandle`.

## Moving data from an `std::vector`

For numerous reasons, it is convenient to define data in a `std::vector`
and then wrap that into an `ArrayHandle`. It is often the case that an
`std::vector` is filled and then becomes unused once it is converted to an
`ArrayHandle`. In this case, what we really want is to pass the data off to
the `ArrayHandle` so that the `ArrayHandle` is now managing the data and
not the `std::vector`.

C++11 has a mechanism to do this: move semantics. You can now pass
variables to functions as an "rvalue" (right-hand value). When something is
passed as an rvalue, it can pull state out of that variable and move it
somewhere else. `std::vector` implements this movement so that an rvalue
can be moved to another `std::vector` without actually copying the data.
`make_ArrayHandle` now also takes advantage of this feature to move rvalue
`std::vector`s.

There is a special form of `make_ArrayHandle` named `make_ArrayHandleMove`
that takes an rvalue. There is also a special overload of
`make_ArrayHandle` itself that handles an rvalue `vector`. (However, using
the explicit move version is better if you want to make sure the data is
actually moved.)

## Make `ArrayHandle` from initalizer list

A common use case for using `std::vector` (particularly in our unit tests)
is to quickly add an initalizer list into an `ArrayHandle`. Now you can
by simply passing an initializer list to `make_ArrayHandle`.

## Deprecated `make_ArrayHandle` with default shallow copy

For historical reasons, passing an `std::vector` or a pointer to
`make_ArrayHandle` does a shallow copy (i.e. `CopyFlag` defaults to `Off`).
Although more efficient, this mode is inherintly unsafe, and making it the
default is asking for trouble.

To combat this, calling `make_ArrayHandle` without a copy flag is
deprecated. In this way, if you wish to do the faster but more unsafe
creation of an `ArrayHandle` you should explicitly express that.

This requried quite a few changes through the VTK-m source (particularly in
the tests).

## Similar changes to `Field`

`vtkm::cont::Field` has a `make_Field` helper function that is similar to
`make_ArrayHandle`. It also features the ability to create fields from
`std::vector`s and C arrays. It also likewise had the same unsafe behavior
by default of not copying from the source of the arrays.

That behavior has similarly been depreciated. You now have to specify a
copy flag.

The ability to construct a `Field` from an initializer list of values has
also been added.
2020-07-23 10:53:38 -06:00
Li-Ta Lo
f333182476 Reverse Invoker, Dispatcher and Worklet dependency 2020-07-21 17:25:43 -06:00
Kenneth Moreland
502c310cf8 Merge topic 'deprecate-arrayhandlevirtualcoordinates'
c689a68c5 Suppress bad deprecation warnings in MSVC
a3f23a03b Do not cast to ArrayHandleVirtual in VariantArrayHandle::CastAndCall
f6b13df51 Support coordinates of both float32 and float64
453e31404 Deprecate ArrayHandleVirtualCoordinates
be7f06bbe CoordinateSystem data is VariantArrayHandle

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2177
2020-07-16 17:25:43 -04:00
Kenneth Moreland
be7f06bbe7 CoordinateSystem data is VariantArrayHandle
`CoordinateSystem` differed from `Field` in that its `GetData`
method returned an `ArrayHandleVirtualCoordinates` instead of
a `VariantArrayHandle`. This is probably confusing since
`CoordianteSystem` inherits `Field` and has a pretty dramatic
difference in this behavior.

In preparation to deprecate `ArrayHandleVirtualCoordinates`, this
changes `CoordiantSystem` to be much more like `Field`. (In the
future, we may change the `CoordinateSystem` to point to a `Field`
rather than be a special `Field`.)

A method named `GetDataAsMultiplexer` has been added to
`CoordinateSystem`. This method allows you to get data from
`CoordinateSystem` as a single array type without worrying
about creating functors to handle different types and without
needing virtual methods.
2020-07-14 08:50:39 -06:00
Dave Pugmire
e66986dabe Merge topic 'worldAnnotationsOptional'
cabaf3e26 Add option to enable/disable world annotations.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <larsen30@llnl.gov>
Merge-request: !2175
2020-07-14 10:19:48 -04:00
dpugmire
cabaf3e269 Add option to enable/disable world annotations. 2020-07-09 14:38:39 -04:00
Sujin Philip
2f7ae83c9f Fix warnings 2020-07-09 08:10:54 -05:00
Matt Larsen
1c63c7032a export symbols need by vtkh 2020-06-19 07:41:54 -07:00
Kenneth Moreland
3d991d1d84 Fix warnings about overriding deprecated methods
The VS compiler gives a warning when you override a deprecated method.
Changed the StartScene and EndScene methods in Mapper to be non-virtual
with empty implementations. Deleted the corresponding methods from all
subclasses.
2020-06-17 17:58:07 -06:00
Nick Thompson
83cf25f1f3 Merge topic 'deprecate_startscene'
8065e76e7 Deprecate StartScene() and EndScene()

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !2140
2020-06-17 12:48:40 -04:00
Nick
8065e76e74 Deprecate StartScene() and EndScene() 2020-06-14 11:27:45 -04:00
NAThompson
0f0c465c1b Deprecate Camera::Activate() and Camera::Finish() 2020-06-14 11:04:06 -04:00
Nick Thompson
ca0cd5f380 Merge conflict resolution. 2020-06-13 14:21:25 -04:00
Matt Larsen
62ef513257 fix bug that zero'd color buffers 2020-06-10 16:02:21 -07:00
Matt Larsen
ce3a64b412 fix comparison 2020-06-06 18:00:42 -07:00
Matt Larsen
a6ed41027e use bounds based epsilon for tiny meshes 2020-06-06 17:56:25 -07:00
Matt Larsen
59775c4eba respect ray max distance 2020-06-06 15:39:25 -07:00
NAThompson
0dccfb7d74 Rough semicolon. 2020-06-05 15:28:51 -04:00
NAThompson
db8f3c9fc9 Remove Initialize() boilerplate. 2020-06-05 13:38:18 -04:00
Kenneth Moreland
1e91b32ace Update image readers to style and library
Updated the image reader classes to better follow VTK-m naming
convention (i.e. use `ImageReaderPNG` instead of `PNGReader`).
The structure of the image reader class now also better matches
the interface for the VTK reader.

Also put the implementation of the image readers into the `vtkm_io`
library so that it only has to be compiled once.
2020-06-01 10:00:18 -06:00
NAThompson
fe4f71ab92 Deprecate DataSetFieldAdd. 2020-05-27 15:27:47 -04:00
NAThompson
9da8c81409 Trivial typo fix. 2020-05-08 10:59:09 -04:00
Vicente Bolea
048652e25b Merge topic 'fix-303-remove-opengl-rendering-classes'
48ee2e518 removed classes related to OpenGL/OSMESA/EGL

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Matt Larsen <larsen30@llnl.gov>
Merge-request: !2010
2020-05-01 13:44:33 -04:00
Vicente Adolfo Bolea Sanchez
48ee2e5182 removed classes related to OpenGL/OSMESA/EGL 2020-04-30 18:24:01 -04:00
NAThompson
697369fc14 Remove deprecation warnings throughout the project. 2020-04-30 08:12:04 -04:00
NAThompson
b82051746c Test that no warnings are generated and tests pass. 2020-04-29 11:30:18 -04:00
NAThompson
20c6e69338 Deprecate writer/ directory. 2020-04-29 11:11:02 -04:00
NAThompson
820b8c8a8a Fix comment and new line. 2020-04-28 11:24:09 -04:00
NAThompson
277a0c7f7d Deprecate EncodePNG and DecodePNG from vtkm::rendering. 2020-04-28 11:14:51 -04:00
Nick
981f0ed0d9 First stab at building a vtkm_io library target. 2020-04-28 07:13:27 -04:00
Matt Larsen
319af8e25e Merge topic 'fix/scalar_rendering'
6fe468410 add normalization bypass for nodal scalars
4c0a3858b don't always normalize scalars

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Sudhanshu Sane <ssane@cs.uoregon.edu>
Merge-request: !2056
2020-04-23 20:35:20 -04:00
Matt Larsen
6fe4684102 add normalization bypass for nodal scalars 2020-04-23 12:56:46 -07:00
Matt Larsen
4c0a3858b2 don't always normalize scalars 2020-04-23 10:31:39 -07:00
nadavi
c9cbd9693d fix type warnings 2020-04-22 12:29:40 -06:00
nadavi
62fe68acdd fixes to match old files 2020-04-22 12:18:43 -06:00
nadavi
e925d6d54c turn lodepng into a library 2020-04-22 12:07:32 -06:00
Nick
1d4ebaec9f Image was upside down; flip it over, demo usage. 2020-04-17 07:56:03 -04:00
Nick
4e76c00a42 Fix linker error and multiply defined symbols. 2020-04-17 07:32:01 -04:00
Nick
eb36a07ab7 Use logging framework [CI SKIP] 2020-04-17 06:53:32 -04:00
Nick
104e7bd9c2 Halting first steps towards encoding .pngs. 2020-04-17 06:22:30 -04:00
Matt Larsen
0a6f66986c add whitespace 2020-04-07 18:08:02 -07:00
Matt Larsen
ecd1512dd6 render 2d mesh lines 2020-04-07 13:13:10 -07:00
Jérôme Dubois
4416f85543 Fixing ColorTable::PrepareForExecution and DispatcherMapField 2020-04-03 14:14:29 +02:00
James
46d7d1865a Merge remote-tracking branch 'upstream/master' into Enhance-Testing-From-File 2020-03-27 11:33:18 -04:00
Kenneth Moreland
b54719b4e0 Merge topic 'modify-default-policy'
42bc9a393 Fix gaps in type support
dc112b516 Enable changing policy used for library compiles
76f870150 Type check input and output array arguments differently

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Robert Maynard <robert.maynard@kitware.com>
Merge-request: !1997
2020-03-24 12:17:23 -04:00