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 18 U_NAMESPACE_BEGIN 19 20 struct ClassDefinitionTable 21 { 22 le_uint16 classFormat; 23 24 le_int32 getGlyphClass(LEGlyphID glyphID) const; 25 le_bool hasGlyphClass(le_int32 glyphClass) const; 26 }; 27 28 struct 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 38 struct ClassRangeRecord 39 { 40 TTGlyphID start; 41 TTGlyphID end; 42 le_uint16 classValue; 43 }; 44 45 struct 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 54 U_NAMESPACE_END 55 #endif 56