Commit Graph

11229 Commits

Author SHA1 Message Date
Kenneth Moreland
d3134b7050 Add ForEach methods to FunctionInterface.
Provides a convienient mechanism to do an in-place type-preserving
transform or a check of each parameter.
2014-05-13 14:08:14 -06:00
Kenneth Moreland
438fe0ff8d Implement FunctionInterface::StaticTransform
This will allow a faster conversion than the dynamic transform and will
allow you to define compile-time types for transformation unlike dynamic
transform or invoke with transform.
2014-05-06 13:32:10 -06:00
Kenneth Moreland
406e655910 Add implicit array for uniform grid point coordinates. 2014-05-01 19:19:54 -04:00
Kenneth Moreland
5cb4934279 Add Extent classes. 2014-04-30 17:07:57 -06:00
Kenneth Moreland
dac47ee550 Add DynamicTransform class.
This is used with the FunctionInterface::DynamicTransformCont method to
convert a call of arguments using dynamic array handles to a function
templated on concrete types.
2014-04-30 10:31:10 -06:00
Kenneth Moreland
90d78ca9b6 Merge branch 'function-interface' into dynamic-invoke 2014-04-30 09:49:26 -06:00
Kenneth Moreland
defb4f00cf Fix CLANG errors and warnings for FunctionInterface. 2014-04-30 09:47:22 -06:00
Kenneth Moreland
ebc20b432d Add FunctionInterface class.
The FunctionInterface class is a convienient way to wrap up a variable
number of arguments and pass them around templated interfaces without
requiring variadic template arguments. It also correctly hands return
arguments.
2014-04-24 20:02:29 -05:00
Kenneth Moreland
c4ecdbada8 Add a mechanism to check whether an array handle is valid
Use this mechanism in the dynamic array handle to skip over trying
invalid array handle types (and thereby incurring a compiler error even
though we never intended to use these classes).
2014-04-03 14:08:53 -06:00
Kenneth Moreland
d309fa7ae5 Add a dynamic array handle.
The dynamic array handle holds a reference to an array handle of an
unknown type. It contains the ability to try to cast it to an instance
of array handle or to try lists of types and containers.

There is currently an issue that is causing the test code not to
compile. It is the case that some combinations of types and containers
are not compatible. For example, an implict container is bound to a
certain type, and the container is undefined if they do not agree. There
needs to be a mechanism to detect these invalid combinations and skip
over them in the MTP for each.
2014-04-03 14:04:48 -06:00
Kenneth Moreland
3d3965b87f Use enum trick to get around problem of undefined static variable. 2014-04-02 10:53:03 -06:00
Kenneth Moreland
c2d926fa49 Add tag-based type list templates
Provies a list of types in a template like boost::mpl::vector and a
method to call a functor on each type. However, rather than explicitly
list each type, uses tags to identify the list. This provides the
following main advantages:

1. Can use these type lists without creating horrendously long class
names based on them, making compiler errors easier to read. For example,
you would have a typename like MyClass<TypeListTagVectors> instead of
MyClass<TypeList<Id3,Vector2,Vector3,Vector4> > (or worse if variadic
templates are not supported). This is the main motivation for this
implementation.

2. Do not require variadic templates and usually few constructions. That
should speed compile times.

There is one main disadvantage to this approach: It is difficult to get
a printed list of items in a list during an error. If necessary, it
probably would not be too hard to make a template to convert a tag to a
boost mpl vector.
2014-03-31 17:45:52 -06:00
Robert Maynard
c008213561 Merge branch 'astyle_applied' 2014-03-07 10:22:51 -05:00
Robert Maynard
2b7a0e0490 revise the header guard naming convention to not conflict with macro names. 2014-03-07 10:22:36 -05:00
Robert Maynard
f2552645e0 Merge branch 'astyle_applied' 2014-02-11 16:21:08 -05:00
Robert Maynard
5b8bec5ecd Merge branch 'add_serial_deviceAdapter' 2014-02-11 16:21:02 -05:00
Robert Maynard
c80fb9259f Update the initial repository to use the correct indentation style. 2014-02-11 16:20:30 -05:00
Robert Maynard
262f07c9b0 Properly name the VTKm CMakeFiles. 2014-02-11 14:56:03 -05:00
Robert Maynard
c2101b8ffc Add in a serial device adapter and required supporting classes.
We now can verify that the array handle is usable by a device adapter.
2014-02-11 12:34:56 -05:00
Robert Maynard
6466da1a11 Merge branch 'add_arrayHandle' 2014-02-10 15:02:08 -05:00
Robert Maynard
a94abd7a71 Add in the minimum part of the control env to have a testable array handle. 2014-02-10 15:00:17 -05:00
Robert Maynard
24f561f0fe Add testing support to vtkm, and add tests for primitive types. 2014-02-10 15:00:17 -05:00
Robert Maynard
c07301a993 Add in primitive types to vtkm (Id, Scalar, Tuple).
This includes the configure scripts to setup if you want a 32bit or
64bit build.
2014-02-10 15:00:17 -05:00
Robert Maynard
ad0bc83320 Add in the basic CMake Infrastructure required for vtkm. 2014-02-10 15:00:17 -05:00
Robert Maynard
f1de2ebae2 Add a license to vtkm. 2014-02-10 15:00:17 -05:00
Robert Maynard
c00d01be6f Move documents into a directory, instead being in the repos root. 2014-02-10 14:01:22 -05:00
Robert Maynard
3ddb07318b Add in the coding conventions that we will use. 2014-02-07 11:02:55 -05:00
Robert Maynard
078323cf69 some rough notes on design choices we are making. 2014-02-07 11:02:50 -05:00
Robert Maynard
c138d6cd82 Initial commit. 2014-02-04 15:08:03 -05:00