Remove packaging direcotry
[platform/upstream/icu.git] / source / layout / ClassDefinitionTables.h
1 /*
2  *
3  * (C) Copyright IBM Corp. 1998-2013 - 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(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;
25     le_bool   hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;
26
27   le_int32 getGlyphClass(LEGlyphID glyphID) const {
28     LETableReference base((const le_uint8*)this);
29     LEErrorCode ignored = LE_NO_ERROR;
30     return getGlyphClass(base,glyphID,ignored);
31   }
32
33   le_bool hasGlyphClass(le_int32 glyphClass) const {
34     LETableReference base((const le_uint8*)this);
35     LEErrorCode ignored = LE_NO_ERROR;
36     return hasGlyphClass(base,glyphClass,ignored);
37   }
38 };
39
40 struct ClassDefFormat1Table : ClassDefinitionTable
41 {
42     TTGlyphID  startGlyph;
43     le_uint16  glyphCount;
44     le_uint16  classValueArray[ANY_NUMBER];
45
46     le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;
47     le_bool  hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;
48 };
49 LE_VAR_ARRAY(ClassDefFormat1Table, classValueArray)
50
51
52 struct ClassRangeRecord
53 {
54     TTGlyphID start;
55     TTGlyphID end;
56     le_uint16 classValue;
57 };
58
59 struct ClassDefFormat2Table : ClassDefinitionTable
60 {
61     le_uint16        classRangeCount;
62     GlyphRangeRecord classRangeRecordArray[ANY_NUMBER];
63
64     le_int32 getGlyphClass(const LETableReference &base, LEGlyphID glyphID, LEErrorCode &success) const;
65     le_bool hasGlyphClass(const LETableReference &base, le_int32 glyphClass, LEErrorCode &success) const;
66 };
67 LE_VAR_ARRAY(ClassDefFormat2Table, classRangeRecordArray)
68
69 U_NAMESPACE_END
70 #endif