Functions

misc.c File Reference

#include <stdio.h>
#include <math.h>
#include <ctype.h>
Include dependency graph for misc.c:

Go to the source code of this file.

Functions

void rotate_i2 (unsigned short *, int)
void rotate_ch (unsigned char *, int)
void rotate_i4 (unsigned int *, int)
void rotate_i4_anti (unsigned int *, int)
void rotate_i2_anti (unsigned short *, int)
void rotate_ch_anti (unsigned char *, int)
void wtext (int, char *)

Function Documentation

void rotate_ch ( unsigned char *  data,
int  nx 
)

Definition at line 264 of file misc.c.

References i, and j.

{
  register unsigned char  *ptr1, *ptr2, *ptr3, *ptr4, temp;
  register int            i, j;
  int                     nx2 = (nx+1)/2;

  for ( i=nx/2; i--; ) {

    /* Set pointer addresses */

    j    = nx2 - 1;
    ptr1 = data + nx*i        + j;          /* 1. Quadrant */
    ptr2 = data + nx*j        + nx-1-i;     /* 2. Quadrant */
    ptr3 = data + nx*(nx-1-i) + nx-1-j;     /* 4. Quadrant */
    ptr4 = data + nx*(nx-1-j) + i;          /* 3. Quadrant */

    for ( j = nx2; j--; ) {

      /* Restack: clockwise rotation by 90.0 */
      temp  = *ptr4;
      *ptr4 = *ptr3;
      *ptr3 = *ptr2;
      *ptr2 = *ptr1;
      *ptr1 = temp;

      /* Increase pointer */
      ptr1 --;
      ptr2 -= nx;
      ptr3 ++;
      ptr4 += nx;
    }
  }
}
void rotate_ch_anti ( unsigned char *  data,
int  nx 
)

Definition at line 132 of file misc.c.

References i, and j.

{
  register unsigned char *ptr1, *ptr2, *ptr3, *ptr4, temp;
  register int            i, j;
  int                     nx2 = (nx+1)/2;

  for ( i=nx/2; i--; ) {

    /* Set pointer addresses */

    j    = nx2 - 1;
    ptr1 = data + nx*i        + j;          /* 1. Quadrant */
    ptr2 = data + nx*j        + nx-1-i;     /* 2. Quadrant */
    ptr3 = data + nx*(nx-1-i) + nx-1-j;     /* 4. Quadrant */
    ptr4 = data + nx*(nx-1-j) + i;          /* 3. Quadrant */

    for ( j = nx2; j--; ) {

      /* Restack: anticlockwise rotation by 90.0 */
      temp  = *ptr1;
      *ptr1 = *ptr2;
      *ptr2 = *ptr3;
      *ptr3 = *ptr4;
      *ptr4 = temp;

      /* Increase pointer */
      ptr1 --;
      ptr2 -= nx;
      ptr3 ++;
      ptr4 += nx;
    }
  }
}
void rotate_i2 ( unsigned short *  data,
int  nx 
)

Definition at line 220 of file misc.c.

References i, and j.

{
  register unsigned short *ptr1, *ptr2, *ptr3, *ptr4, temp;
  register int            i, j;
  int                     nx2 = (nx+1)/2;

  for ( i=nx/2; i--; ) {

    /* Set pointer addresses */

    j    = nx2 - 1;
    ptr1 = data + nx*i        + j;          /* 1. Quadrant */
    ptr2 = data + nx*j        + nx-1-i;     /* 2. Quadrant */
    ptr3 = data + nx*(nx-1-i) + nx-1-j;     /* 4. Quadrant */
    ptr4 = data + nx*(nx-1-j) + i;          /* 3. Quadrant */

    for ( j = nx2; j--; ) {

      /* Restack: clockwise rotation by 90.0 */
      temp  = *ptr4;
      *ptr4 = *ptr3;
      *ptr3 = *ptr2;
      *ptr2 = *ptr1;
      *ptr1 = temp;

      /* Increase pointer */
      ptr1 --;
      ptr2 -= nx;
      ptr3 ++;
      ptr4 += nx;
    }
  }
}
void rotate_i2_anti ( unsigned short *  data,
int  nx 
)

Definition at line 88 of file misc.c.

References i, and j.

{
  register unsigned short *ptr1, *ptr2, *ptr3, *ptr4, temp;
  register int            i, j;
  int                     nx2 = (nx+1)/2;

  for ( i=nx/2; i--; ) {

    /* Set pointer addresses */

    j    = nx2 - 1;
    ptr1 = data + nx*i        + j;          /* 1. Quadrant */
    ptr2 = data + nx*j        + nx-1-i;     /* 2. Quadrant */
    ptr3 = data + nx*(nx-1-i) + nx-1-j;     /* 4. Quadrant */
    ptr4 = data + nx*(nx-1-j) + i;          /* 3. Quadrant */

    for ( j = nx2; j--; ) {

      /* Restack: anticlockwise rotation by 90.0 */
      temp  = *ptr1;
      *ptr1 = *ptr2;
      *ptr2 = *ptr3;
      *ptr3 = *ptr4;
      *ptr4 = temp;

      /* Increase pointer */
      ptr1 --;
      ptr2 -= nx;
      ptr3 ++;
      ptr4 += nx;
    }
  }
}
void rotate_i4 ( unsigned int *  data,
int  nx 
)

Definition at line 176 of file misc.c.

References i, and j.

Referenced by MarXF::output_image().

{
  register unsigned int         *ptr1, *ptr2, *ptr3, *ptr4, temp;
  register int          i, j;
  int                   nx2 = (nx+1)/2;

  for ( i=nx/2; i--; ) {

    /* Set pointer addresses */

    j    = nx2 - 1;
    ptr1 = data + nx*i        + j;              /* 1. Quadrant */
    ptr2 = data + nx*j        + nx-1-i; /* 2. Quadrant */
    ptr3 = data + nx*(nx-1-i) + nx-1-j; /* 4. Quadrant */
    ptr4 = data + nx*(nx-1-j) + i;              /* 3. Quadrant */

    for ( j = nx2; j--; ) {

      /* Restack: clockwise rotation by 90.0 */
      temp  = *ptr4;
      *ptr4 = *ptr3;
      *ptr3 = *ptr2;
      *ptr2 = *ptr1;
      *ptr1 = temp;

      /* Increase pointer */
      ptr1 --;
      ptr2 -= nx;
      ptr3 ++;
      ptr4 += nx;
    }
  }
}
void rotate_i4_anti ( unsigned int *  data,
int  nx 
)

Definition at line 44 of file misc.c.

References i, and j.

Referenced by MarXF::output_image().

{
  register unsigned int *ptr1, *ptr2, *ptr3, *ptr4, temp;
  register int            i, j;
  int                     nx2 = (nx+1)/2;

  for ( i=nx/2; i--; ) {

    /* Set pointer addresses */

    j    = nx2 - 1;
    ptr1 = data + nx*i        + j;          /* 1. Quadrant */
    ptr2 = data + nx*j        + nx-1-i;     /* 2. Quadrant */
    ptr3 = data + nx*(nx-1-i) + nx-1-j;     /* 4. Quadrant */
    ptr4 = data + nx*(nx-1-j) + i;          /* 3. Quadrant */

    for ( j = nx2; j--; ) {

      /* Restack: anticlockwise rotation by 90.0 */
      temp  = *ptr1;
      *ptr1 = *ptr2;
      *ptr2 = *ptr3;
      *ptr3 = *ptr4;
      *ptr4 = temp;

      /* Increase pointer */
      ptr1 --;
      ptr2 -= nx;
      ptr3 ++;
      ptr4 += nx;
    }
  }
}
void wtext ( int  type,
char *  mess 
)

Definition at line 302 of file misc.c.

{
  /* extern FILE *fpout; */
  if ( type == 1 ) {
    fprintf( stdout, "mar345 ERROR: %s\n", mess );
  }
  else {
    fprintf( stdout, "mar345 WARNING: %s\n", mess );
  }
}