diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2015-07-08 20:46:52 -0400 |
commit | fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4 (patch) | |
tree | bdda434976bc09c864f2e4fa6f16ba1952b1e555 /noao/imred/quadred/src/quad/quadalloc.x | |
download | iraf-linux-fa080de7afc95aa1c19a6e6fc0e0708ced2eadc4.tar.gz |
Initial commit
Diffstat (limited to 'noao/imred/quadred/src/quad/quadalloc.x')
-rw-r--r-- | noao/imred/quadred/src/quad/quadalloc.x | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/noao/imred/quadred/src/quad/quadalloc.x b/noao/imred/quadred/src/quad/quadalloc.x new file mode 100644 index 00000000..9373340a --- /dev/null +++ b/noao/imred/quadred/src/quad/quadalloc.x @@ -0,0 +1,165 @@ +include <imhdr.h> +include "quadgeom.h" + +# QUADOPEN -- Allocate space for quadgeom structure +# Note: The various arrays are dimensioned as QG_MAXAMPS+1 and are ZERO indexed. + +procedure quadalloc (qg) + +pointer qg #O Pointer to opened quadgeom structure + +begin + + call malloc (qg, QG_LENSTRUCT, TY_STRUCT) + + # Zero readout counters + QG_NAMPS(qg) = 0 + QG_NAMPSX(qg) = 0 + QG_NAMPSY(qg) = 0 + + # Allocate and zero arrays. + call calloc (QG_AMPIDPTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_AMPTYPTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_NXPTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_NYPTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_DX1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_DX2PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_DY1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_DY2PTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_TX1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_TX2PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_TY1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_TY2PTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_BX1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_BX2PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_BY1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_BY2PTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_CX1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_CX2PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_CY1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_CY2PTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_AX1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_AX2PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_AY1PTR(qg), QG_MAXAMPS+1, TY_INT) + call calloc (QG_AY2PTR(qg), QG_MAXAMPS+1, TY_INT) + + call calloc (QG_PHPTR(qg), QG_MAXAMPS+1, TY_INT) + +end + +# QUADFREE -- Free quadgeom structure + +procedure quadfree (qg) + +pointer qg #O Pointer to open quadgeom structure + +begin + + if (qg != NULL) { + + call mfree (QG_AMPIDPTR(qg), TY_INT) + call mfree (QG_AMPTYPTR(qg), TY_INT) + + call mfree (QG_NXPTR(qg), TY_INT) + call mfree (QG_NYPTR(qg), TY_INT) + + call mfree (QG_DX1PTR(qg), TY_INT) + call mfree (QG_DX2PTR(qg), TY_INT) + call mfree (QG_DY1PTR(qg), TY_INT) + call mfree (QG_DY2PTR(qg), TY_INT) + + call mfree (QG_TX1PTR(qg), TY_INT) + call mfree (QG_TX2PTR(qg), TY_INT) + call mfree (QG_TY1PTR(qg), TY_INT) + call mfree (QG_TY2PTR(qg), TY_INT) + + call mfree (QG_BX1PTR(qg), TY_INT) + call mfree (QG_BX2PTR(qg), TY_INT) + call mfree (QG_BY1PTR(qg), TY_INT) + call mfree (QG_BY2PTR(qg), TY_INT) + + call mfree (QG_CX1PTR(qg), TY_INT) + call mfree (QG_CX2PTR(qg), TY_INT) + call mfree (QG_CY1PTR(qg), TY_INT) + call mfree (QG_CY2PTR(qg), TY_INT) + + call mfree (QG_AX1PTR(qg), TY_INT) + call mfree (QG_AX2PTR(qg), TY_INT) + call mfree (QG_AY1PTR(qg), TY_INT) + call mfree (QG_AY2PTR(qg), TY_INT) + + call mfree (QG_PHPTR(qg), TY_INT) + + call mfree (qg, TY_STRUCT) + } +end + +# QUADDUMP -- Print contents of quadgeom structure on STDERR +procedure quaddump (qg) + +pointer qg #O Pointer to open quadgeom structure + +int amp + +begin + + call eprintf ("Active amps: %d (%d in x, %d in y)\n") + call pargi (QG_NAMPS(qg)) + call pargi (QG_NAMPSX(qg)) + call pargi (QG_NAMPSY(qg)) + + do amp = 0, QG_NAMPS(qg) { + switch (amp) { + case 0: + call eprintf ("Entire image\n") + default: + call eprintf ("Amp %s") + call pargstr (Memc[QG_AMPID(qg, amp)]) + + if (QG_PHANTOM (qg, amp) == YES) + call eprintf (" [Phantom]") + + call eprintf ("\n") + } + + call eprintf ("\tnx = %d \tny = %d \n") + call pargi (QG_NX(qg, amp)) + call pargi (QG_NY(qg, amp)) + + call eprintf ("\tdx1 = %d \tdx2 = %d \tdy1 = %d \tdy2 = %d\n") + call pargi (QG_DX1(qg, amp)) + call pargi (QG_DX2(qg, amp)) + call pargi (QG_DY1(qg, amp)) + call pargi (QG_DY2(qg, amp)) + + call eprintf ("\ttx1 = %d \ttx2 = %d \tty1 = %d \tty2 = %d\n") + call pargi (QG_TX1(qg, amp)) + call pargi (QG_TX2(qg, amp)) + call pargi (QG_TY1(qg, amp)) + call pargi (QG_TY2(qg, amp)) + + call eprintf ("\tbx1 = %d \tbx2 = %d \tby1 = %d \tby2 = %d\n") + call pargi (QG_BX1(qg, amp)) + call pargi (QG_BX2(qg, amp)) + call pargi (QG_BY1(qg, amp)) + call pargi (QG_BY2(qg, amp)) + + call eprintf ("\tcx1 = %d \tcx2 = %d \tcy1 = %d \tcy2 = %d\n") + call pargi (QG_CX1(qg, amp)) + call pargi (QG_CX2(qg, amp)) + call pargi (QG_CY1(qg, amp)) + call pargi (QG_CY2(qg, amp)) + + call eprintf ("\tax1 = %d \tax2 = %d \tay1 = %d \tay2 = %d\n") + call pargi (QG_AX1(qg, amp)) + call pargi (QG_AX2(qg, amp)) + call pargi (QG_AY1(qg, amp)) + call pargi (QG_AY2(qg, amp)) + } +end |