[libpc] The specialness of X, Y, Z dimensions
Michael P. Gerlek
mpg at flaxen.com
Wed Apr 13 11:53:13 EDT 2011
Yes: the filters that assume X is a double are broken, based on the current
getField() model. This is really my fault, as I was just whipping out the
"demo" filters to see if they'd function at all.
If I understand what you are asking, your idea is to add a new function
getFieldAs<Tsrc,Tdst>(), which would know how to convert the actual
underlying type Tsrc (in this case an int) to the desired type Tdst (in this
case a double). This is more than just a simple conversion, because the
source type in this case is "special", in that it is scaled, so the function
would have to "know" this.
Closely related, I wonder if the enum Int is the wrong type for X -- maybe
it should be a special enum ScaledInt?
-mpg
> -----Original Message-----
> From: libpc-bounces at lists.osgeo.org [mailto:libpc-bounces at lists.osgeo.org]
> On Behalf Of Howard Butler
> Sent: Wednesday, April 13, 2011 7:49 AM
> To: libpc at lists.osgeo.org
> Subject: [libpc] The specialness of X, Y, Z dimensions
>
> Michael,
>
> One of the things I've struggled with is a lot of the filters have
X::Double etc
> baked in as the X dimension for their operations, but my reader is
producing
> X::Int32+scaling. What should the filters be doing? Looking for Field_X
plus
> every combination of DataType? This seems silly. The crop filter *wants*
> XYZ data as a <double>, but some other filter might want unscaled data to
> work with (if it is available).
>
> What if we were able flip around the getField call to return what you
wanted
> instead of what you have?
>
> // Return you the *first* X dimension in the schema, regardless of
DataType
> Dimension const& xDim = schema.getX(); int fieldIndex =
> schema.getDimensionIndex(xDim);
>
> double x = buffer.getField<double>(index, fieldIndex); // Would implicitly
> apply scaling if the dimension had it uint32_t x =
> buffer.getField<uint32_t>(index, fieldIndex);
>
> A challenge is getField currently gives you direct access into the buffer,
so
> there's no need to worry about differing type sizes.
>
> What do you think?
>
> Howard
>
>
> _______________________________________________
> libpc mailing list
> libpc at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/libpc
More information about the libpc
mailing list