OSSIM - Open Source Software Image Map  Version 1.9.0 (20180803)
Classes | Macros | Typedefs | Functions | Variables
greymap.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>

Go to the source code of this file.

Classes

struct  greymap_s
 

Macros

#define gm_index(gm, x, y)   (&(gm)->map[(x)+(y)*(ptrdiff_t)(gm)->w])
 
#define gm_safe(gm, x, y)   ((int)(x)>=0 && (int)(x)<(gm)->w && (int)(y)>=0 && (int)(y)<(gm)->h)
 
#define gm_bound(x, m)   ((x)<0 ? 0 : (x)>=(m) ? (m)-1 : (x))
 
#define GM_UGET(gm, x, y)   (*gm_index(gm, x, y))
 
#define GM_UINC(gm, x, y, b)   (*gm_index(gm, x, y) += (short int)(b))
 
#define GM_UINV(gm, x, y)   (*gm_index(gm, x, y) = 255 - *gm_index(gm, x, y))
 
#define GM_UPUT(gm, x, y, b)   (*gm_index(gm, x, y) = (short int)(b))
 
#define GM_GET(gm, x, y)   (gm_safe(gm, x, y) ? GM_UGET(gm, x, y) : 0)
 
#define GM_INC(gm, x, y, b)   (gm_safe(gm, x, y) ? GM_UINC(gm, x, y, b) : 0)
 
#define GM_INV(gm, x, y)   (gm_safe(gm, x, y) ? GM_UINV(gm, x, y) : 0)
 
#define GM_PUT(gm, x, y, b)   (gm_safe(gm, x, y) ? GM_UPUT(gm, x, y, b) : 0)
 
#define GM_BGET(gm, x, y)   GM_UGET(gm, gm_bound(x, gm->w), gm_bound(y, gm->h))
 
#define GM_MODE_NONZERO   1
 
#define GM_MODE_ODD   2
 
#define GM_MODE_POSITIVE   3
 
#define GM_MODE_NEGATIVE   4
 

Typedefs

typedef struct greymap_s greymap_t
 

Functions

greymap_tgm_new (int w, int h)
 
greymap_tgm_dup (greymap_t *gm)
 
void gm_free (greymap_t *gm)
 
void gm_clear (greymap_t *gm, int b)
 
int gm_read (FILE *f, greymap_t **gmp)
 
int gm_writepgm (FILE *f, greymap_t *gm, char *comment, int raw, int mode, double gamma)
 
int gm_print (FILE *f, greymap_t *gm)
 

Variables

char * gm_read_error
 

Macro Definition Documentation

◆ GM_BGET

#define GM_BGET (   gm,
  x,
  y 
)    GM_UGET(gm, gm_bound(x, gm->w), gm_bound(y, gm->h))

Definition at line 38 of file greymap.h.

◆ gm_bound

#define gm_bound (   x,
 
)    ((x)<0 ? 0 : (x)>=(m) ? (m)-1 : (x))

Definition at line 29 of file greymap.h.

◆ GM_GET

#define GM_GET (   gm,
  x,
  y 
)    (gm_safe(gm, x, y) ? GM_UGET(gm, x, y) : 0)

Definition at line 34 of file greymap.h.

◆ GM_INC

#define GM_INC (   gm,
  x,
  y,
 
)    (gm_safe(gm, x, y) ? GM_UINC(gm, x, y, b) : 0)

Definition at line 35 of file greymap.h.

◆ gm_index

#define gm_index (   gm,
  x,
  y 
)    (&(gm)->map[(x)+(y)*(ptrdiff_t)(gm)->w])

Definition at line 27 of file greymap.h.

◆ GM_INV

#define GM_INV (   gm,
  x,
  y 
)    (gm_safe(gm, x, y) ? GM_UINV(gm, x, y) : 0)

Definition at line 36 of file greymap.h.

◆ GM_MODE_NEGATIVE

#define GM_MODE_NEGATIVE   4

Definition at line 47 of file greymap.h.

◆ GM_MODE_NONZERO

#define GM_MODE_NONZERO   1

Definition at line 44 of file greymap.h.

◆ GM_MODE_ODD

#define GM_MODE_ODD   2

Definition at line 45 of file greymap.h.

◆ GM_MODE_POSITIVE

#define GM_MODE_POSITIVE   3

Definition at line 46 of file greymap.h.

◆ GM_PUT

#define GM_PUT (   gm,
  x,
  y,
 
)    (gm_safe(gm, x, y) ? GM_UPUT(gm, x, y, b) : 0)

Definition at line 37 of file greymap.h.

◆ gm_safe

#define gm_safe (   gm,
  x,
  y 
)    ((int)(x)>=0 && (int)(x)<(gm)->w && (int)(y)>=0 && (int)(y)<(gm)->h)

Definition at line 28 of file greymap.h.

◆ GM_UGET

#define GM_UGET (   gm,
  x,
  y 
)    (*gm_index(gm, x, y))

Definition at line 30 of file greymap.h.

◆ GM_UINC

#define GM_UINC (   gm,
  x,
  y,
 
)    (*gm_index(gm, x, y) += (short int)(b))

Definition at line 31 of file greymap.h.

◆ GM_UINV

#define GM_UINV (   gm,
  x,
  y 
)    (*gm_index(gm, x, y) = 255 - *gm_index(gm, x, y))

Definition at line 32 of file greymap.h.

◆ GM_UPUT

#define GM_UPUT (   gm,
  x,
  y,
 
)    (*gm_index(gm, x, y) = (short int)(b))

Definition at line 33 of file greymap.h.

Typedef Documentation

◆ greymap_t

typedef struct greymap_s greymap_t

Definition at line 22 of file greymap.h.

Function Documentation

◆ gm_clear()

void gm_clear ( greymap_t gm,
int  b 
)

◆ gm_dup()

greymap_t* gm_dup ( greymap_t gm)

◆ gm_free()

void gm_free ( greymap_t gm)

◆ gm_new()

greymap_t* gm_new ( int  w,
int  h 
)

◆ gm_print()

int gm_print ( FILE *  f,
greymap_t gm 
)

◆ gm_read()

int gm_read ( FILE *  f,
greymap_t **  gmp 
)

◆ gm_writepgm()

int gm_writepgm ( FILE *  f,
greymap_t gm,
char *  comment,
int  raw,
int  mode,
double  gamma 
)

Variable Documentation

◆ gm_read_error

char* gm_read_error