1/* 2 * 3 * (C) Copyright IBM Corp. 1998-2004 - All Rights Reserved 4 * 5 */ 6 7#ifndef __CLASSDEFINITIONTABLES_H 8#define __CLASSDEFINITIONTABLES_H 9 10/** 11 * \file 12 * \internal 13 */ 14 15#include "LETypes.h" 16#include "OpenTypeTables.h" 17 18U_NAMESPACE_BEGIN 19 20struct ClassDefinitionTable 21{ 22 le_uint16 classFormat; 23 24 le_int32 getGlyphClass(LEGlyphID glyphID) const; 25 le_bool hasGlyphClass(le_int32 glyphClass) const; 26}; 27 28struct ClassDefFormat1Table : ClassDefinitionTable 29{ 30 TTGlyphID startGlyph; 31 le_uint16 glyphCount; 32 le_uint16 classValueArray[ANY_NUMBER]; 33 34 le_int32 getGlyphClass(LEGlyphID glyphID) const; 35 le_bool hasGlyphClass(le_int32 glyphClass) const; 36}; 37 38struct ClassRangeRecord 39{ 40 TTGlyphID start; 41 TTGlyphID end; 42 le_uint16 classValue; 43}; 44 45struct ClassDefFormat2Table : ClassDefinitionTable 46{ 47 le_uint16 classRangeCount; 48 GlyphRangeRecord classRangeRecordArray[ANY_NUMBER]; 49 50 le_int32 getGlyphClass(LEGlyphID glyphID) const; 51 le_bool hasGlyphClass(le_int32 glyphClass) const; 52}; 53 54U_NAMESPACE_END 55#endif 56