Commit Graph

44 Commits

Author SHA1 Message Date
Robert Maynard
2d31774b3b Add a Clip filter that can do iso value clipping. 2016-08-23 16:12:22 -04:00
Kenneth Moreland
e488967c8f Use general TryExecute for filter execution
The TryExecute function was based off of the ResolveFieldTypeAnd*
classes made for filters. To reduce the amount of code duplication,
modify these two filter classes to use the more general TryExecute
functionality.
2016-08-17 14:13:51 -06:00
Robert Maynard
31156d2e99 Add a histogram filter. 2016-08-12 08:40:11 -04:00
Robert Maynard
856b8b547d Express in the the threshold filter policy it only handles scalars. 2016-08-08 16:51:09 -04:00
Robert Maynard
08a33675f6 Prefer vtkm::cont::CastAndCall function over the member method. 2016-08-05 15:29:39 -04:00
T.J. Corona
e177e5a9ff Add device list to filter policy. 2016-08-03 10:17:20 -04:00
T.J. Corona
8ad8eeda77 In DynamicCellSet, expose CellSet API.
Also changes GetCellSet() to CastToBase().
2016-08-02 13:39:25 -04:00
Robert Maynard
73440ccb4e vtkm::filter::MarchingCubes now uses vtkm::worklet
Instead of having two separate implementations of MarchingCubes, we have
a single implementation in worklet, and filter uses that.

That does mean that the version in worklet has been updated to support
merging of duplicate point coordinates.
2016-07-28 08:52:34 -04:00
Robert Maynard
33d7ad8f86 Unify the contour MarchingCubes implementations. 2016-07-20 12:40:03 -04:00
Robert Maynard
a23a9397bb MarchingCubes now works on structured and unstructured cellsets.
Previously it was only working on structured cellsets.
2016-06-23 10:05:07 -04:00
Robert Maynard
65a3de9df8 Only generate code paths for Hexahedron input cells.
We currently only support Hex cells as our input cell type, so no reason
to compile in other cell type support currently.
2016-06-10 17:06:39 -04:00
Robert Maynard
e3e94d102e delete the vtkm::filter::FieldTypes header.
The header is used by nothing, and contains an old version of
the FieldMetadata class.
2016-06-01 16:45:09 -04:00
Kenneth Moreland
b5415169e2 Change Field and related methods to use Range and Bounds
First, be more explicit when we mean a range of values in a field or a
spacial bounds. Use the Range and Bounds structs in Field and
CoordinateSystem to make all of this more clear (and reduce a bit of
code as well).
2016-05-29 18:49:36 -06:00
Robert Maynard
f1146f7474 Merge topic 'simplify_bounds_computation'
06a06b52 Simplify the bounds computation code to reduce library size.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !426
2016-05-26 15:51:21 -04:00
Robert Maynard
06a06b529d Simplify the bounds computation code to reduce library size.
The previous version of the bounds code required once less pass across
the data, but significantly increase the size of the resulting library:

Data for VTK-VTK-m interop:
  - 7k more symbol table entries
  - 1.5MB larger library

Because of the significant savings we need to use a less efficient
implementation that minimized the code size.
2016-05-26 13:48:30 -04:00
Robert Maynard
5e200528ee Allow filters to have finer control on what cell sets they support
Certain algorithms like VertexClustering only work on certain cellset types.
It is pointless to generate the code paths for structured data cell sets,
when the algorithm can't operate on those dataset types.
2016-05-26 11:32:35 -04:00
Robert Maynard
8dfe8cd385 Rename ControlSignature tag TopologyIn to CellSetIn. 2016-05-17 15:07:08 -04:00
Jeremy Meredith
d560cf1d85 Merge branch 'master' into cellsetdim 2016-05-13 14:53:08 -04:00
Jeremy Meredith
0c18278028 removing cell set dimensionality and splitting tetrahedralizer. 2016-05-13 14:26:59 -04:00
Kenneth Moreland
eecbb30d96 Make sure all field filters specify a default name for their fields
If the user does not specify a name for the output field in a filter, that
filter should provide some default name. Having blank names for fields is
not a great idea. (In fact, an earlier commit added an assert to make
sure that a ResultField is given a non-empty name.)

This covers issue #61.
2016-05-05 15:27:32 -06:00
Kenneth Moreland
f4362a4902 Give result classes their own header file.
VTK-m style guidelines dictate that all classes part of the API should
be in their own header file. Thus, we have moved the result classes out
of the filter header files and into their own headers.

We have also renamed these clases to ResultField and ResultDataSet to
better match the class naming conventions of VTK-m.

Since we are moving around these result classes, we have also revamped
their structure. They are now in a hierarchy with a common ResultBase
class. Additionally, all result classes have a reference to a complete
DataSet that can be considered the output of the filter. This will make
it easier for users to consistently deal with filter results.

These changes cover issues #60 and #62.
2016-05-05 15:07:55 -06:00
Kenneth Moreland
e8d3eda84d Rename filter base classes to follow VTK-m naming convention
The base classes for all the filters are named with 'Filter' at the end.
Generally the convention in VTK-m is to place the most general
descriptor (in this case Filter) first, which makes it easier to find
items in ordered lists.

This commit resolves issue #59.
2016-05-05 12:43:28 -06:00
Kenneth Moreland
cc497e6a1b Remove cont/Assert.h and exec/Assert.h
These asserts are consolidated into the unified Assert.h. Also made some
minor edits to add asserts where appropriate and a little bit of
reconfiguring as found.
2016-04-20 15:41:14 -06:00
Robert Maynard
59f5f24845 Merge topic 'simplify_cellset_permutation_templates'
6883a5ac Simplify using CellSetPermutation by providing a default permutation type.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !391
2016-04-13 09:17:01 -04:00
Robert Maynard
6883a5ac94 Simplify using CellSetPermutation by providing a default permutation type.
Previously you had to explicitly state you wanted a CellSetPermutation
with an ArrayHanlde of Id's, now that is done automatically.
2016-04-12 14:24:51 -04:00
T.J. Corona
2f75d4eec6 Declare MarchingCubes constructor inline to avoid symbol clashes. 2016-04-11 10:16:49 -04:00
Robert Maynard
779bd58792 Bug: CellAverage output storage type can be different than the input. 2016-04-07 17:09:46 -04:00
Robert Maynard
c0bd0a67d4 Add missing new lines and #endif comments to vtkm::filter 2016-04-07 17:09:11 -04:00
Robert Maynard
d817501565 Fixed issues with NVCC and anonymous namespace compilation issues. 2016-04-01 15:50:52 -04:00
Robert Maynard
2d3d157ecd Properly use the policy to determine the coordiante policy conversions. 2016-03-29 10:12:49 -04:00
Robert Maynard
643af0353f Simplify MarchingCubes implementation to reuse code where possible. 2016-03-24 09:09:08 -04:00
Jeremy Meredith
ba8517eb67 removing all references to field order. 2016-03-23 10:38:14 -04:00
Robert Maynard
996dde8332 Don't try and hold rvalue's by const ref, it causes issues.
Previously we tried to capture rvalues by const ref, and would get
Undefined Behavior since the rvalue would go out of scope, and than
we would try to use it.
2016-03-22 12:27:45 -04:00
Robert Maynard
14e4be0d5e Merge topic 'vtkm_marching_cubes_filter_failure'
0a59a764 Correct issues with MarchingCubesFilter not merging points properly.
589da1f6 Simplify the General DeviceAdapter Unique method.
88f435d8 TriangulateTable warning fixes.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !370
2016-03-18 17:14:14 -04:00
Robert Maynard
0a59a76479 Correct issues with MarchingCubesFilter not merging points properly. 2016-03-18 16:39:54 -04:00
T.J. Corona
d281051996 Fix the installation of template source files. 2016-03-18 06:24:43 -04:00
Robert Maynard
e4237c3a3b Fix warnings found by the dashboard machines. 2016-03-14 08:39:17 -04:00
Robert Maynard
179b48e094 Reduce compile time for MarchingCubes by passing less info by Invoke.
When the number of parameters to a worklet hits 6+ like the EdgeGenerate
worklet did, the compile times when some of those parameters are dynamic array
handle is very bad.

For example when building the MarchingCubes filter for VTK integration the
EdgeGenerate worklet would take 800+ seconds to compile, but when we switch
it to have fewer arguments the compile time comes down to ~250sec.
2016-03-14 08:39:17 -04:00
Robert Maynard
8e4a47ef57 Update IsosurfaceUniformGrid to use the marching cubes filter.
This way we have an example of how to use the filter code.
2016-03-14 08:39:17 -04:00
Robert Maynard
d370155e74 MarchingCubes filter now generates coordinates when point merging is enabled. 2016-03-14 08:39:17 -04:00
Robert Maynard
c00fb53b54 Marching Cubes now generates vertices when merge duplicates is enabled. 2016-03-14 08:39:17 -04:00
Robert Maynard
f699c98602 Renamed the ``Convert` method to `ApplyPolicy``
The original name was a really bad name, so thank to Ken for suggesting
a better name.
2016-03-14 08:39:17 -04:00
Robert Maynard
8e72ec8ea4 Switch filter::threshold over to have a lower and upper bounds. 2016-03-14 08:39:17 -04:00
Robert Maynard
bcee827097 First draft of vtkm::filter design. 2016-03-14 08:39:17 -04:00