Minutes from OpenVDB TSC meeting, March 19th, 2024

Attendees: *Jeff* L., *Andre* P, *Dan* B., *Greg* H., *Rich* J.

Additional Attendees: 
Dhruv Govil, Ivo Kondapaneni

Regrets: *Ken* M., *Nick* A.

Agenda:

1) Confirm quorum
2) Secretary
3) OpenVDB Half Grids
4) Load as Half Patch
5) Next meeting

------------

1) Confirm quorum

Quorum is present.

2) Secretary

Secretary is Jeff Lait.

3) OpenVDB Half Grids

Support for half without a compute type is much slower and has
significant errors.  Proposal is to add a Tree::ComputeType that is
identity with ValueType, but float for Half.

For many tools, like stencils or volumes, should they return Compute
Type?  Does this break ABI?  It shouldn't as the typedef should decay
to the base type for mangling?  We could use an enable if to work
around if it somehow does mess up ABI.

What should be compute types?  

Stencils have a value type that is there value type, different from
the tree's value type, so they can logically set this to the tree's
ComputeType.

How to get accessors or setters to use ComputeType?  We could have
getComputeValue or getValue for the two types.   But widening is free?

Should I be able to make stencils any compute type?  With the tree's
compute type just the default?  Eventually do we want float grids with
a compute type of double?  Probably yes, but beyond this PR.

Import and export doesn't conflict with save float as half - they are
independent and this flag is ignored with half.

What half type do we use? All of our half types are the same
underlying bit pattern so it doesn't matter.

4) Arnold support for Half

How to load a float grid as a half grid.  Add a scalarConversion type
for what the new grid's type should be.  

We set that to the stream's metadata, and the grid descriptor uses
that.  This creates a CreatingReaderFactory to read the source and
write out as the desired type.  

Raw is.read() with reinterpret are replaced by the converting reader
that might do some casting internally.

seek should be seekElement() and take the count and position to make
it clear what it is doing.

Delayed loading will work as the stream has the converter attached to
it.

Will be made as a PR for further discussion.

5) Next meeting

Next meeting is on March 26th, 2024. 2pm-3pm EDT (GMT-4)
