ApplyH/ApplyV doesn't work with Field3D's as the input

Issue #49 duplicate
Caleb Rottman created an issue

if i run

bg=ca.BACKGROUND_STRATEGY_ZERO
ca.SetToIdentity(h)
ca.ApplyH(Iout, Im, h, bg)

where Iout, Im, and h are all Field3D's it silently fails, and Iout is a field of all zeros.

To double check that i wasn't doing anything stupid, i verified the the following workaround DOES work

            im0 = ca.Image3D(Im.grid(), Im.memType())
            im1 = ca.Image3D(Im.grid(), Im.memType())
            im2 = ca.Image3D(Im.grid(), Im.memType())
            im3 = ca.Image3D(Im.grid(), Im.memType())
            im4 = ca.Image3D(Im.grid(), Im.memType())
            im5 = ca.Image3D(Im.grid(), Im.memType())

            ca.Copy(im0, Im, 0)
            ca.Copy(im1, Im, 1)
            ca.Copy(im2, Im, 2)
            ca.ApplyH(im3, im0, h, bg)
            ca.ApplyH(im4, im1, h, bg)
            ca.ApplyH(im5, im2, h, bg)
            ca.Copy(Iout, im3, 0)
            ca.Copy(Iout, im4, 1)
            ca.Copy(Iout, im5, 2)

I haven't looked into why this fails yet, but i thought I'd mention this bug for the record.

Comments (2)

  1. Caleb Rottman reporter

    So for some reason BACKGROUND_STRATEGY_ZERO works differently for Image3Ds than in Field3Ds, but since we are getting rid of BACKGROUND_STRATEGY_ZERO eventually, this issue can be closed.

  2. Log in to comment