1 /*
2  *
3  * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
4  *
5  */
6 
7 #ifndef __CANONSHAPING_H
8 #define __CANONSHAPING_H
9 
10 #include "LETypes.h"
11 
12 U_NAMESPACE_BEGIN
13 
14 class LEGlyphStorage;
15 
16 class U_LAYOUT_API CanonShaping /* not : public UObject because all members are static */
17 {
18 public:
19     static const le_uint8 glyphSubstitutionTable[];
20     static const size_t   glyphSubstitutionTableLen;
21     static const le_uint8 glyphDefinitionTable[];
22     static const size_t   glyphDefinitionTableLen;
23 
24     static void reorderMarks(const LEUnicode *inChars, le_int32 charCount, le_bool rightToLeft,
25                                    LEUnicode *outChars, LEGlyphStorage &glyphStorage);
26 
27 private:
28     static void sortMarks(le_int32 *indices, const le_int32 *combiningClasses, le_int32 index, le_int32 limit);
29 };
30 
31 U_NAMESPACE_END
32 #endif
33