⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lug.h

📁 This contains Graphic gems code
💻 H
字号:
/* * This software is copyrighted as noted below.  It may be freely copied, * modified, and redistributed, provided that the copyright notice is * preserved on all copies. * * There is no warranty or other guarantee of fitness for this software, * it is provided solely "as is".  Bug reports or fixes may be sent * to the author, who may or may not act on them as he desires. * * You may not include this software in a program or other software product * without supplying the source, or without informing the end-user that the * source is available for no extra charge. * * If you modify this software, you should include a notice giving the * name of the person performing the modification, the date of modification, * and the reason for such modification. *//* * lug.h - main LUG include. * * Author:      Raul Rivero *              Mathematics Dept. *              University of Oviedo * Date:        Fri Dec 27 1991 * Copyright (c) 1991, Raul Rivero * */#ifndef MY_LUG#define MY_LUG/* * Load the LUG config header ( CHECK THAT FILE !!! ). */#include "lugconf.h"/* * System includes. */#include <stdio.h>#include <math.h>#include <signal.h>#include <string.h>#include <sys/types.h>#ifndef MSDOS#       include <sys/wait.h>#endif#include <sys/stat.h>#ifdef USE_STDLIB_H#       include <stdlib.h>#else#       ifdef VOID_STAR                extern void *malloc();#       else                extern char *malloc();#       endif /* VOID_STAR */        extern void free();#endif /* USE_STDLIB_H */#ifdef USE_STRINGS#       include <strings.h>#else#       include <string.h>#endif  /* USE_STRINGS */#ifndef BSD#       define bzero(s, n)             memset((s), 0, (n))#       define bcopy(f, t, c)          memcpy((t), (f), (c))#       define index(s, c)             strchr((s), (c))#endif /* BSD *//* * New data types. */#define byte                    unsigned char#define ushort                  unsigned short#define word                    unsigned int#define ulong                   unsigned long/* * Flags. *//*#define FALSE                   0#define TRUE                    1 */#define CHROMABORDER            20#define CHROMAMASK              20#define LUGUSED                 12345/* * Supported file formats. */#define GIF_FORMAT              00#define HF_FORMAT               01#define SUN_FORMAT              02#define PBM_FORMAT              03#define PGM_FORMAT              04#define PPM_FORMAT              05#define PCX_FORMAT              06#define PIX_FORMAT              07#define RAW_FORMAT              08#define RGB_FORMAT              09#define RLA_FORMAT              10#define RLB_FORMAT              11#define RLE_FORMAT              12#define SGI_FORMAT              13#define TGA_FORMAT              14#define TIFF_FORMAT             15/* * And the default file format is ... */#define DEFAULT_FORMAT          PIX_FORMAT/* * Conversion support defines. */#define ONLY_RAW_PLANES         -8#define ONLY_FLOAT_PLANES       -1#define ALL_PLANES               0#define ONLY_BINARY_PLANES       1#define ONLY_8_PLANES            8#define ONLY_24_PLANES          24/* * Returned by exist_file. * * ... * FILE_IS_GZIP/COMPRESS  --> the name exist but is compressed * FILE_WITH_GZIP/COMPRESS -> the file doesn't exist, but if you *                            add a .gz/.Z suffix then ... voila!. */#define FILE_NO_EXIST            0#define FILE_EXIST               1#define FILE_IS_GZIP             2#define FILE_IS_COMPRESS         3#define FILE_WITH_GZIP           4#define FILE_WITH_COMPRESS       5/* * Temporary directory. */#ifndef MSDOS#       define TMPDIR                  "/usr/tmp"#else#       define TMPDIR                  getenv("TEMP")#endif/* * Some define functions. */#define MSB(a)                  ((byte) (((short)(a)) >> 8))#define LSB(a)                  ((byte) (((short)(a)) & 0x00FF))#define LUGABS(a)                  ((a) < 0 ? -(a) : (a)) #define FLOOR(a)                ((a) > 0 ? (int)(a) : -(int)(-a))#define CEILING(a)              ((a) == (int)(a) ? (a) : (a) > 0 ? \                                 1 + (int)(a) : -(1 + (int)(-a)))#define ROUND(a)                ((a) > 0 ? (int)((a)+0.5) : -(int)(0.5-(a)))#define SQR(a)                  ((a) * (a))#define LUGMAX(a,b)                ((a) > (b) ? (a) : (b))#define LUGMIN(a,b)                ((a) > (b) ? (b) : (a)) /* #define SWAP(a,b)               { a ^= b; b ^= a; a ^= b; } */#define CORRECT(a)              ((a) < 0  ?  0  : (a) > 255 ? 255 : (a) )#define CLAMP(v,l,h)            ((v) <(l) ? (l) : (v) > (h) ? (h) : v)#define RGB_to_BW(r,g,b)        ((int) (30*(r) + 59*(g) + 11*(b)) / 100)/* * I/O define funcitions. */#define Fread(p, s, n, f)       if ( fread(p, s, n, f) != n ) error(3)#define Fwrite(p, s, n, f)      if ( fwrite(p, s, n, f) != n ) error(4)#define VPRINTF                 if (LUGverbose) fprintf#define VFLUSH                  if (LUGverbose) fflush#define setverbose(f)           LUGverbose = (f)#define getverbose()            LUGverbose#define setcmdname(n)           MY_NAME = (n)#define getcmdname()            MY_NAME/* * If you define ERROR_CALLS then the library functions * seems system calls ( and return -1 or NULL ), but this * needs that you check this. */#ifndef ERROR_CALLS#       define error(code)              Error(code)#       define errornull(code)          Error(code)#else#       define error(code)              { Error(code); return -1; }#       define errornull(code)          { Error(code); return NULL; }#endif  /* ERROR_CALLS *//* * Pointer to functions data type. */typedef int (* ifunptr)();/* * We'll use it when need a pointer to cmap. */typedef byte color_map[3];/* * I use a intermediate format ( a simple bitmap ) with * this format ... */typedef struct {        int xsize, ysize;       /* sizes */        int depth;              /* # of colors */        int colors;             /* # of colors */        byte *r, *g, *b;        /* components or bitmap (planes < 8) */        byte *cmap;             /* cmap if planes < 8 */        int magic;              /* used ? */} bitmap_hdr;#endif /* MY_LUG */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -