00001 /* Copyright (C) 2002 Nicolas Hatier 00002 00003 This library is free software; you can redistribute it and/or 00004 modify it under the terms of the GNU Lesser General Public 00005 License as published by the Free Software Foundation; either 00006 version 2.1 of the License, or (at your option) any later version. 00007 00008 This library is distributed in the hope that it will be useful, 00009 but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 Lesser General Public License for more details. 00012 00013 You should have received a copy of the GNU Lesser General Public 00014 License along with this library; if not, write to the Free Software 00015 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00016 */ 00017 #ifndef _TYPES_H_ 00018 #define _TYPES_H_ 00019 00020 #include <stdio.h> 00021 #include <assert.h> 00022 #include <stdlib.h> 00023 #include <string.h> 00024 #include <math.h> 00025 00026 namespace RobotFlow { 00027 00028 typedef unsigned short word; 00029 typedef unsigned char byte; 00030 typedef unsigned long dword; 00031 typedef unsigned char greyscale; 00032 typedef unsigned short rgb15; 00033 00034 typedef struct tagrgb24 { 00035 byte rgbBlue; 00036 byte rgbGreen; 00037 byte rgbRed; 00038 } rgb24; 00039 00040 00041 void rgb24_to_rgb15(const rgb24 & pixel, rgb15 & out); 00042 void rgb15_to_rgb24(const rgb15 & pixel, rgb24 & out); 00043 void rgb24_to_rgb24(const rgb24 & pixel, rgb24 & out); 00044 00045 #define NOEDGE 255 00046 #define POSSIBLE_EDGE 128 00047 #define EDGE 0 00048 00049 }//namespace RobotFlow 00050 00051 #endif