Commit Graph

232 Commits

Author SHA1 Message Date
Tom Fogal
55be1fcbb2 examples: ensure cleanup occurs before main ends.
Else the implicit context in the CUDA driver may destroy itself
before the destructors for globals/statics run, and we could try
to e.g. cudaFree without a valid context.
2017-02-15 10:32:20 -08:00
Robert Maynard
407f9822c2 Merge branch 'use_usage_requirements' into 'master'
Use usage requirements

See merge request !673
2017-01-27 17:36:16 -05:00
Robert Maynard
e415f55b6f Update the examples to work with the new usage requirements 2017-01-27 10:03:53 -05:00
Robert Maynard
f7e651fa10 When building the multi_backend code suppress warnings from thrust. 2017-01-26 14:41:30 -05:00
Kenneth Moreland
5fed7dda7f Fix compile issue on windows
A variable length array declaration was used. That is not part of the
official C++11 standard and is not supported on all compilers.
2017-01-19 14:21:47 -07:00
Christopher Sewell
dfae8f5e3e Fixing merge issue with contour_tree 2017-01-18 11:47:52 -07:00
Christopher Sewell
82c40a6374 First support for unified memory 2017-01-18 11:43:49 -07:00
Robert Maynard
4a56e9f129 Merge branch 'contour-tree' into 'master'
Contour tree

See merge request !658
2017-01-17 17:00:54 -05:00
Patricia Kroll Fasel - 090207
0950af7aeb Compiler warnings 2017-01-12 14:35:34 -07:00
Kenneth Moreland
713cf4228a Make it not possible to create a cell set without specifying num points
The CellSetExplicit and CellSetSingleType classes have an ivar that
marks the number of points. There were several instances of code
creating cell sets without specifying the number of points. This can be
very bad if subsequent code needs that information.
2017-01-12 13:02:10 -07:00
Patricia Kroll Fasel - 090207
bed40256c8 Fix compiler warnings. Fix case table operation to comply. 2017-01-11 14:02:32 -07:00
Patricia Kroll Fasel - 090207
9548441565 Fix compiler warnings and test errors before merge. 2017-01-10 16:52:59 -07:00
Patricia Kroll Fasel - 090207
851dfc094b Correct the example compilation for TBB. 2017-01-10 12:33:45 -07:00
Patricia Kroll Fasel - 090207
f6140c39e2 Add LANL/LLC copyright notification. 2017-01-09 14:53:59 -07:00
Patricia Kroll Fasel - 090207
9412584bf2 First implementation of contour tree 2D and 3D, serial and cuda. 2017-01-09 13:54:47 -07:00
Kenneth Moreland
fdaccc22db Remove exports for header-only functions/methods
Change the VTKM_CONT_EXPORT to VTKM_CONT. (Likewise for EXEC and
EXEC_CONT.) Remove the inline from these macros so that they can be
applied to everything, including implementations in a library.

Because inline is not declared in these modifies, you have to add the
keyword to functions and methods where the implementation is not inlined
in the class.
2016-11-15 22:22:13 -07:00
Dave Pugmire
4edb91ad96 Get rid of warnings in examples. 2016-11-04 16:29:07 -04:00
Robert Maynard
5ec273aade Remove all occurrences of boost::lexical_cast from vtk-m.
Replaced with the new std::stof/stoi functions.
2016-10-20 16:55:15 -04:00
Robert Maynard
37efba159c CellSetSingleType now can be constructed with proper number of points
This is important so that when we execute a Cell->Point worklet we
don't have to compute the number of points from the connectivity array.
2016-10-20 08:33:16 -04:00
Mark Kim
464da87d5a Merge branch 'master' of gitlab.kitware.com:vtk/vtk-m 2016-10-12 14:40:32 -04:00
Kenneth Moreland
fbb061d661 Fix some minor issues with move to glut CMake component
I was using GLUT_LIBRARY instead of GLUT_LIBRARIES, and there was an
extra use of GLUT_INCLUDE_DIR that should not have been there.
2016-10-04 10:48:19 -06:00
Kenneth Moreland
d1d7ac54a0 Add GLUT component to find_package(VTKm)
This makes it easier to use VTK-m with GLUT. It also makes it more
consistent with GLFW, GLEW, and other support libraries.
2016-10-03 17:34:13 -06:00
Robert Maynard
0f58d6fc54 Add vtkm/cont/serial directory for the serial backend. 2016-09-28 14:22:53 -04:00
Mark Kim
a41e0f28df Merge branch 'master' of gitlab.kitware.com:vtk/vtk-m 2016-09-26 16:12:19 -04:00
Mark Kim
5827473abb Merge branch 'master' of gitlab.kitware.com:dpugmire/vtk-m 2016-09-23 09:46:48 -04:00
Kenneth Moreland
c1de0e0746 Change VTKm_BUILD_RENDERING to VTKm_ENABLE_RENDERING
This makes the name more consistent with the names of the other VTK-m
CMake options.

Also changed the default to be ON. I do not see a big downside to
compiling the rendering library most of the time.
2016-09-21 14:38:00 -06:00
Mark Kim
e59fc37f90 Merge topic 'master'
7cfc1199 Demo.cxx: MapperRayTracer is no longer a templated class. UnitTestMapperEGL.cxx: MapperGL is no longer a templated class. UnitTestMapperGLFW.cxx: strmp needs cstring rendering/CMakeLists.txt: need to append egl_sources to sources.

Acked-by: Kitware Robot <kwrobot@kitware.com>
Acked-by: Kenneth Moreland <kmorel@sandia.gov>
Merge-request: !552
2016-09-16 09:02:06 -04:00
Mark Kim
7cfc119999 Demo.cxx: MapperRayTracer is no longer a templated class.
UnitTestMapperEGL.cxx: MapperGL is no longer a templated class.
UnitTestMapperGLFW.cxx: strmp needs cstring
rendering/CMakeLists.txt: need to append egl_sources to sources.
2016-09-14 15:58:45 -04:00
Robert Maynard
4521403fd2 Examples now correctly request the optional CUDA component 2016-09-14 15:29:04 -04:00
Mark Kim
c216c98c57 Merge branch 'umaster' 2016-09-14 10:39:52 -04:00
Mark Kim
fbaee11da9 Demo.cxx: MapperRayTracer is no longer a templated class.
UnitTestMapperEGL.cxx: MapperGL is no longer a templated class.
UnitTestMapperGLFW.cxx: strmp needs cstring
rendering/CMakeLists.txt: need to append egl_sources to sources.
2016-09-14 10:33:51 -04:00
Mark Kim
f293c5a0bc Merge branch 'glut-unittest' 2016-09-14 09:19:57 -04:00
Kenneth Moreland
e6686e8be7 Merge branch 'master' into rendering-library 2016-09-09 13:59:15 -06:00
Robert Maynard
08eb3a957b Correct a bad target_compile_definitions line in examples/demo 2016-09-09 15:19:17 -04:00
Kenneth Moreland
22c6741152 Add View to rendering library
To get rid of some templates, I added the ability to create new
instances of mappers and canvases without knowing their type.
2016-09-07 16:48:04 -06:00
Kenneth Moreland
668f93a66b Move Mappers to rendering library
Also changed the mappers to not be templated on the device adapter.
Instead, use TryExecute to determine the device adapter at runtime.
2016-09-07 16:47:52 -06:00
Kenneth Moreland
2ea00d28f0 Examples that use Rendering now need to configure Rendering 2016-09-07 16:47:37 -06:00
Kenneth Moreland
8cb2803b45 Merge branch 'precision-warnings' into 'master'
Fix precision warnings when FloatDefault is 64 bit

When VTKm_USE_DOUBLE_PRECISION is on (not the default), then
vtkm::FloatDefault is set to 64 bit values. There was some code that was
coded for 32 bit and never checked for 64 bit (on all compilers).

See merge request !526
2016-09-07 13:54:13 -04:00
Robert Maynard
75d435f7ad Merge topic 'refactor-cmake'
011605d4 Refactor CMake files

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !493
2016-09-02 09:52:52 -04:00
Sujin Philip
011605d489 Refactor CMake files
1. Change set_property(...) to target_* commands
2. Remove explcit adding of CMAKE_CXX_FLAGS_WARN_EXTRA as compile option
3. Add /bigobj option to VTKm_COMPILE_OPTIONS under MSVC
2016-09-01 11:14:29 -04:00
Robert Maynard
f81c42b9b4 Replace NULL with nullptr where applicable. 2016-09-01 09:38:25 -04:00
Kenneth Moreland
893f3115f2 Fix precision warnings when FloatDefault is 64 bit
When VTKm_USE_DOUBLE_PRECISION is on (not the default), then
vtkm::FloatDefault is set to 64 bit values. There was some code that was
coded for 32 bit and never checked for 64 bit (on all compilers).
2016-08-26 09:33:37 -06:00
Kenneth Moreland
866c617cbf Fix config issues with headers and libraries
There were a couple of places where the configure scripts did not add
either includes to VTKm_INCLUDE_DIRS or libraries to VTKm_LIBRARIES.

The biggest offender was when the examples used find_package to load the
VTK-m configuration it needed. find_package cleared out the includes and
libraries, but it did not clear out the VTKm_<COMPONENT>_FOUND
variables. Normally, these variables would not be set before
find_package is called, but in this case the examples were called after
some partial configuration. I got around this issue by clearing out all
the *_FOUND variables in VTKmConfig.cmake.
2016-08-23 14:07:38 -06:00
Robert Maynard
7ece97bb87 Merge topic 'some_examples_show_how_to_find_vtkm'
88ce3f23 Examples now call find_package(VTKm)

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !511
2016-08-23 13:09:20 -04:00
Robert Maynard
1224a90305 multi_backend example now uses vtkm::cont::TryExecute
Now that TryExecute has been standardized, update the example of
how to compile for multiple runtime backends.
2016-08-22 15:45:45 -04:00
Robert Maynard
88ce3f23ae Examples now call find_package(VTKm)
The examples are now written so they can be copied out of the vtk-m
source and still build properly. This will help new users / developers
learn how to build projects that use VTK-m.
2016-08-22 14:03:16 -04:00
Robert Maynard
af05ea0e8d Cleanup clipping so we can use it from a filter. 2016-08-18 12:50:20 -04:00
Robert Maynard
08a33675f6 Prefer vtkm::cont::CastAndCall function over the member method. 2016-08-05 15:29:39 -04:00
Robert Maynard
31138293f9 Pass Fields and CoordinateSystems to Dispatcher::Invoke
Now that we can handle scheduling Fields and CoordinateSystems, do
2016-08-05 15:26:17 -04:00
Mark Kim
447295e79b Switch from OSMesa to ray tracer for demo because OSMesa is not working atm. 2016-08-02 18:29:30 -04:00
Mark Kim
df0e64572a Demo.cxx compiles, at least. But, the background isn't even correct. 2016-08-02 16:27:55 -04:00
Dave Pugmire
7d5934ea22 use the matricies from the camera for the VBO rendering. 2016-08-02 13:42:47 -04:00
Mark Kim
293ba569e7 Demo.cxx has not been updated in a while (pre-ResultDataSet change). 2016-08-02 13:22:02 -04:00
Mark Kim
e8b17eb947 OSMesa, not OSMESA. 2016-08-02 13:10:32 -04:00
Robert Maynard
1796625616 Cleanup the multiple dynamic array handle dispatch example. 2016-07-29 09:48:13 -04:00
Robert Maynard
063b349a20 Setup the examples to find vtkm components quietly. 2016-07-28 10:47:43 -04:00
Robert Maynard
44afc5e878 Merge topic 'more_suppress_of_cuda_warnings'
45ada6b5 Rework ArrayHandleCuda to make it stop generate warnings
4ca6ce2a nvcc doesn't have troubles with boost shared_ptr optimizations

Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !473
2016-07-20 14:46:15 -04:00
Robert Maynard
4ca6ce2ad6 nvcc doesn't have troubles with boost shared_ptr optimizations 2016-07-19 13:26:23 -04:00
Robert Maynard
aa01784a06 Remove unused result warnings from StreamLineUniformGrid example. 2016-07-15 11:40:52 -04:00
Kenneth Moreland
7ff20c9230 Fix includes for CUDA builds
The CMake CUDA build targets do not respect the
target_include_directories (yet?). Instead, add the necessary includes
to cuda_include_directories().
2016-06-22 12:53:23 -06:00
Kenneth Moreland
13ee8bc190 Fix several issues with making sure all includes are set
Make everything consistent with new builds.
2016-06-21 18:03:29 -06:00
Kenneth Moreland
1d0eac6301 Update some configuration to new components 2016-06-21 18:03:25 -06:00
Kenneth Moreland
b3314f539f Fix another stupid signed to unsigned conversion warning 2016-06-16 11:24:27 -06:00
Kenneth Moreland
5461d27948 Do not compile hello_world without GLEW
The GLEW library is optional, but without it you cannot do OpenGL
interop. The hello_world example uses OpenGL interop, but did not check
that GLEW was available. It tried to use GLEW and an error occured.
2016-06-16 11:15:23 -06:00
Kenneth Moreland
e50d91199c Merge branch 'consolidate-background-color' into 'master'
Consolidate background color in rendering classes

Before this commit, there were three separate classes (Mapper, Canvas,
and View) that were all managing their own version of the background
color. As you can imagine, this could easily become out of sync, and in
fact if the user code did not specify the same background at least
twice, it would not work.

Fix this by consolidating the background color management to the Canvas.
This is the class most responsible for maintaining the background. All
other classes get or set the background from the Canvas.

That said, I also removed setting the background color from the
constructor in the Canvas. This background color is overridden by the
View anyway, so having it there was only confusing.

See merge request !448
2016-06-13 11:46:18 -04:00
Kenneth Moreland
72b43d7151 Consolidate background color in rendering classes
Before this commit, there were three separate classes (Mapper, Canvas,
and View) that were all managing their own version of the background
color. As you can imagine, this could easily become out of sync, and in
fact if the user code did not specify the same background at least
twice, it would not work.

Fix this by consolidating the background color management to the Canvas.
This is the class most responsible for maintaining the background. All
other classes get or set the background from the Canvas.

That said, I also removed setting the background color from the
constructor in the Canvas. This background color is overridden by the
View anyway, so having it there was only confusing.
2016-06-11 12:09:51 -06:00
Kenneth Moreland
ebfb1e7389 Make giving Camera to View optional
It is now optional to give a Camera object when constructing a View. If
a Camera is not specified, one is automatically set up by calling
ResetToBounds on the spatial bounds of the scene.

This makes it even easier to set up a view.
2016-06-09 13:34:29 -06:00
Kenneth Moreland
9f3e0e5952 Implement roll, elevation, and azimuth for 3D cameras
Also implement pan and zoom for 2D cameras.

Update the rendering tests to do these camera rotations. This matches
better the viewpoint used before the previous camera changes.
2016-06-09 13:34:29 -06:00
Kenneth Moreland
ca87b5f736 Make defining WorldAnnotator for View optional
Most of the time, you just match the WorldAnnotator with the canvas of
the same type. Rather than make the user specify it every time, add a
method to the canvas that creates a "good" WorldAnnotator to use with
it. Then, if a WorldAnnotator is not given to the View constructor, one
is automatically created from the Canvas.
2016-06-09 12:08:03 -06:00
Kenneth Moreland
2be7a8e032 Remove templating from View
The template parameters on vtkm::rendering::View are unnecessary. All
three of the templated classes are polymorphic (with virtual functions).
Thus, you just have to specify them at the constructor. Removing the
template parameters makes the syntax a bit cleaner and removes some
unnecessary duplication in the executable.

Removing the template does mean we cannot optimize in the future.
However, I expect us to start using more virtual methods rather than
less, so I think this is a move in the right direction.
2016-06-09 12:08:01 -06:00
Kenneth Moreland
5af7c6ff4c Hide internal parts of Canvas 2016-06-09 12:07:59 -06:00
Kenneth Moreland
55af901f60 Hide Camera private parts
With only a few exceptions for simple structures, we do not expose the
members of classes. Instead, we provide accessor methods. Do this for
Camera as well as add some helper methods.
2016-06-09 12:07:58 -06:00
Kenneth Moreland
0769b96bf3 Remove Width and Height from Camera
The width and height are maintained out of necessity by the canvas. A
second copy was maintained by the camera, which was only used for
computing the aspect ratio and similar metrics for projections.

Having to maintain the width/height in two places is a bit of a hassle
and provides the opportunity for bugs if they get out of sync. Instead,
have the width/height managed in one place (the canvas) and pass them as
parameters as necessary.
2016-06-09 12:07:56 -06:00
Kenneth Moreland
b01e8391b4 Consolidate functionality in Canvas classes
Move some of the management of the width, height, and buffers to the base
Canvas class. Also, when it makes sense, get the width and height from
the rendering system.

Also changed the color buffer to be a Vec so that you don't have to
manage array offsets by hand.

All of these changes snowballed from the observation that the glut
example did not properly enable the depth buffer.
2016-06-09 12:07:55 -06:00
Kenneth Moreland
e30607f134 Hide internal std::vector in Scene
Generally we try not to expose the implementation details of how things
are stored in objects.

Also changed some arguments that should have been declared const to
actually be const.
2016-06-09 12:07:53 -06:00
Kenneth Moreland
bbb42a014c Merge branch 'rename-rendering-classes' into 'master'
Rename rendering classes

Per our discussion in our last technical meeting, we are renaming several
of the rendering classes to be more clear and consistent with other
software products.

See merge request !437
2016-06-03 14:15:26 -04:00
Kenneth Moreland
fa3e43fbaa Change vtkm::rendering::RenderSurface to Canvas
The word surface is more often used for something like a polygonal mesh,
so this name is quite confusing. Canvas is consistent with a
conventional name in GUI widget APIs.
2016-06-02 16:04:13 -06:00
Kenneth Moreland
eb9288cb1a Change vtkm::rendering::Window to View
The rendering classes do not actually manage windows, and window was not
descriptive of what this class was doing. We decided that the class was
mostly analogous to what we call a "view" in ParaView.
2016-06-02 15:43:40 -06:00
Kenneth Moreland
9fc86890eb Change vtkm::rendering::SceneRenderer* to Mapper*
This name was chosen to reflect the analogous name in VTK.
2016-06-02 13:41:14 -06:00
Kenneth Moreland
1934049df9 Change vtkm::rendering::View to Camera 2016-06-02 13:04:01 -06:00
Kenneth Moreland
a8169fbf61 Make sure all source files are declared in the examples
For header files, this only adds the file to IDE file lists, which is
convenient but not critical. However, the test did find a ligit error in
the hello_world example where the TBB build was actually using the
serial device adapter.
2016-06-02 10:24:21 -06:00
Jeremy Meredith
6c8045bdc3 unifying 2d and 3d scenes 2016-06-01 13:51:37 -04:00
Kenneth Moreland
507222c489 Change rendering classes to use Range and Bounds
In addition to this being necessary to be compatible with recent
changes, it makes for cleaner declaration of these values.
2016-05-29 18:49:37 -06:00
Kenneth Moreland
32efc36c1c Update Rendering example to latest rendering module changes 2016-05-25 15:34:57 -06:00
Dave Pugmire
dc31494b59 Merge branch 'master' into annot5 2016-05-20 10:04:37 -04:00
Dave Pugmire
389a4ca2f6 remove unused file. 2016-05-18 10:48:07 -04:00
Dave Pugmire
5f9403b881 Add trackball rotation, translate and zoom ot examples/rendering, and to the view classes. 2016-05-18 10:32:02 -04:00
Jeremy Meredith
9e53753c98 Merge branch 'master' into annot2 2016-05-16 16:54:45 -04:00
Jeremy Meredith
d560cf1d85 Merge branch 'master' into cellsetdim 2016-05-13 14:53:08 -04:00
Jeremy Meredith
514d32107a Merge branch 'master' into annot2 2016-05-13 14:39:04 -04:00
Jeremy Meredith
0c18278028 removing cell set dimensionality and splitting tetrahedralizer. 2016-05-13 14:26:59 -04:00
Kenneth Moreland
b446abba37 Update examples to filter interface changes. 2016-05-06 15:03:50 -06:00
Dave Pugmire
72673ed952 Add glut-based rendering example.
Added a GL-based render surface.
2016-05-05 13:26:39 -04:00
Robert Maynard
1ec3bc0e7a Rename the opengl folder / namespace to interop.
To clarify what functionality the classes inside provide.
2016-04-13 15:52:15 -04:00
Robert Maynard
4269e0070c Only build the rendering example if MESA has been found. 2016-04-07 20:07:22 -04:00
Robert Maynard
1edc465055 Add a demo for GTC2016 that covers io/filters/rendering. 2016-04-01 15:50:52 -04:00
Jeremy Meredith
5a0923c136 final (hopefully) references to Field::order removed. 2016-03-23 13:06:08 -04:00
Jeremy Meredith
d0c490dccb found more uses of field::order to remove. 2016-03-23 12:57:05 -04:00
Jeremy Meredith
0b0b3a6338 fixing another mention of field::order 2016-03-23 11:14:55 -04:00
Kenneth Moreland
f81e8c642f Fix example that was using the old interface to VTKDataSetWriter
As a bonus, fix a compiler warning about an unused typedef.
2016-03-17 09:13:25 -06:00