Represents "glyf" table of the TTF Font file. More...

Inherits Aspose::Font::TtfTables::TtfTableBase.

Classes

class  PointDefinition
 
class  PointsCollection
 

Public Member Functions

virtual ASPOSE_FONT_SHARED_API bool ContainsGlyph (int32_t glyphIndex)
 Returns true in case the table contains glyph with glyphIndex. More...
 
virtual ASPOSE_FONT_SHARED_API System::SharedPtr< Aspose::Font::Glyphs::GlyphGetGlyph (uint32_t glyphIndex)
 Returns a glyph by glyph index. More...
 
- Public Member Functions inherited from Aspose::Font::TtfTables::TtfTableBase
ASPOSE_FONT_SHARED_API System::SharedPtr< TtfTableRepositoryget_TtfTables () const
 Reference to TTF table repository. More...
 
ASPOSE_FONT_SHARED_API uint32_t get_Offset () const
 Gets offset from beginning of sfnt. More...
 
- Public Member Functions inherited from System::Object
ASPOSECPP_SHARED_API Object ()
 Creates object. Initializes all internal data structures. More...
 
virtual ASPOSECPP_SHARED_API ~Object ()
 Destroys object. Frees all internal data structures. More...
 
ASPOSECPP_SHARED_API Object (Object const &x)
 Copy constructor. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
Objectoperator= (Object const &x)
 Assignment operator. Doesn't copy anything, really, just initializes new object and enables copy constructing subclasses. More...
 
ObjectSharedRefAdded ()
 Increments shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int SharedRefRemovedSafe ()
 Decrements and returns shared reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
int RemovedSharedRefs (int count)
 Decreases shared reference count by specified value. More...
 
Detail::SmartPtrCounter * WeakRefAdded ()
 Increments weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
void WeakRefRemoved ()
 Decrements weak reference count. Shouldn't be called directly; instead, use smart pointers or ThisProtector. More...
 
Detail::SmartPtrCounter * GetCounter ()
 Gets reference counter data structure associated with the object. More...
 
int SharedCount () const
 Gets current value of shared reference counter. More...
 
ASPOSECPP_SHARED_API void Lock ()
 Implements C# lock() statement locking. Call directly or use LockContext sentry object. More...
 
ASPOSECPP_SHARED_API void Unlock ()
 Implements C# lock() statement unlocking. Call directly or use LockContext sentry object. More...
 
virtual ASPOSECPP_SHARED_API bool Equals (ptr obj)
 Compares objects using C# Object.Equals semantics. More...
 
virtual ASPOSECPP_SHARED_API int32_t GetHashCode () const
 Analog of C# Object.GetHashCode() method. Enables hashing of custom objects. More...
 
virtual ASPOSECPP_SHARED_API String ToString () const
 Analog of C# Object.ToString() method. Enables converting custom objects to string. More...
 
virtual ASPOSECPP_SHARED_API ptr MemberwiseClone () const
 Analog of C# Object.MemberwiseClone() method. Enables cloning custom types. More...
 
virtual ASPOSECPP_SHARED_API const TypeInfoGetType () const
 Gets actual type of object. Analog of C# System.Object.GetType() call. More...
 
virtual ASPOSECPP_SHARED_API bool Is (const TypeInfo &targetType) const
 Check if object represents an instance of type described by targetType. Analog of C# 'is' operator. More...
 
virtual ASPOSECPP_SHARED_API void SetTemplateWeakPtr (uint32_t argument)
 Set n'th template argument a weak pointer (rather than shared). Allows switching pointers in containers to weak mode. More...
 
virtual ASPOSECPP_SHARED_API bool FastCast (const Details::FastRttiBase &helper, void **out_ptr) const
 For internal purposes only. More...
 
template<>
bool Equals (float const &objA, float const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool Equals (double const &objA, double const &objB)
 Emulates C#-style floating point comparison where two NaNs are considered equal even though according to IEC 60559:1989 NaN is not equal to any value, including NaN. More...
 
template<>
bool ReferenceEquals (String const &str, std::nullptr_t)
 Specialization of Object::ReferenceEquals for case of string and nullptr. More...
 
template<>
bool ReferenceEquals (String const &str1, String const &str2)
 Specialization of Object::ReferenceEquals for case of strings. More...
 

Static Public Member Functions

static ASPOSE_FONT_SHARED_API System::String get_Tag ()
 Gets table tag. More...
 
- Static Public Member Functions inherited from System::Object
static bool ReferenceEquals (ptr const &objA, ptr const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, T const &objB)
 Compares objects by reference. More...
 
template<typename T >
static std::enable_if<!IsSmartPtr< T >::value, bool >::type ReferenceEquals (T const &objA, std::nullptr_t)
 Reference-compares value type object with nullptr. More...
 
template<typename T1 , typename T2 >
static std::enable_if< IsSmartPtr< T1 >::value &&IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares reference type objects in C# style. More...
 
template<typename T1 , typename T2 >
static std::enable_if<!IsSmartPtr< T1 >::value &&!IsSmartPtr< T2 >::value, bool >::type Equals (T1 const &objA, T2 const &objB)
 Compares value type objects in C# style. More...
 
static const TypeInfoType ()
 Implements C# typeof(System.Object) construct. More...
 

Protected Types

enum  OutlineFlagsEnum : uint8_t {
  OutlineFlagsEnum::OnCurve = 1, OutlineFlagsEnum::XShortVector = 2, OutlineFlagsEnum::YShortVector = 4, OutlineFlagsEnum::Repeat = 8,
  OutlineFlagsEnum::PositiveXShortVector = 16, OutlineFlagsEnum::PositiveYShortVector = 32
}
 
enum  ComponentFlagsEnum : uint16_t {
  ComponentFlagsEnum::ARG_1_AND_2_ARE_WORDS = 1, ComponentFlagsEnum::ARGS_ARE_XY_VALUES = 2, ComponentFlagsEnum::ROUND_XY_TO_GRID = 4, ComponentFlagsEnum::WE_HAVE_A_SCALE = 8,
  ComponentFlagsEnum::MORE_COMPONENTS = 32, ComponentFlagsEnum::WE_HAVE_AN_X_AND_Y_SCALE = 64, ComponentFlagsEnum::WE_HAVE_A_TWO_BY_TWO = 128, ComponentFlagsEnum::WE_HAVE_INSTRUCTIONS = 256,
  ComponentFlagsEnum::USE_MY_METRICS = 512, ComponentFlagsEnum::OVERLAP_COMPOUND = 1024
}
 

Protected Member Functions

 DECLARE_FRIEND_ENUM_OPERATORS (Aspose::Font::TtfTables::TtfGlyfTable::OutlineFlagsEnum)
 
 DECLARE_FRIEND_ENUM_OPERATORS (Aspose::Font::TtfTables::TtfGlyfTable::ComponentFlagsEnum)
 
 TtfGlyfTable (System::SharedPtr< TtfTableRepository > ttfTables, System::SharedPtr< Aspose::Font::Ttf::TtfFont > font)
 
 MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION (TtfGlyfTable, CODEPORTING_ARGS(System::SharedPtr< TtfTableRepository > ttfTables, System::SharedPtr< Aspose::Font::Ttf::TtfFont > font))
 
 TtfGlyfTable (System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext > context, uint32_t checkSum, uint32_t offset, uint32_t length)
 
 MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION (TtfGlyfTable, CODEPORTING_ARGS(System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext > context, uint32_t checkSum, uint32_t offset, uint32_t length))
 
void GetComponentSubglyphs (int32_t glyphIndex, System::SharedPtr< Aspose::Font::Glyphs::GlyphIdList > glyphIds)
 
bool IsGlyphAdded (System::SharedPtr< Aspose::Font::Glyphs::Glyph > glyph)
 
uint16_t GetGlyphIndex (System::SharedPtr< Aspose::Font::Glyphs::Glyph > glyph)
 
System::String AddVirtualGlyph (System::SharedPtr< Aspose::Font::Glyphs::Glyph > glyph)
 
void RemoveVirtualGlyphByKey (System::String key)
 
void SaveGlyph (System::SharedPtr< Aspose::Font::Glyphs::Glyph > glyph, System::ArrayPtr< uint8_t > &glyphBytes, bool &isNewGlyph)
 
void UpdateAllGlyphsAsNewTable (System::SharedPtr< System::Collections::Generic::SortedDictionary< int32_t, System::SharedPtr< Aspose::Font::Glyphs::Glyph >>> sourceGlyphs, System::SharedPtr< System::Collections::Generic::SortedDictionary< int32_t, System::SharedPtr< Aspose::Font::Glyphs::Glyph >>> updatedGlyphs)
 
void ResetGlyphsData ()
 
void ClearNewFontGlyphsCache ()
 
ASPOSE_FONT_SHARED_API void Save (System::ArrayPtr< uint8_t > &tableBytes, uint32_t &length, uint32_t &checksum) override
 Saves the table to font stream More...
 
System::SharedPtr< Aspose::Font::Sources::StreamSourceGetStreamSourceForNewFont ()
 
- Protected Member Functions inherited from Aspose::Font::TtfTables::TtfTableBase
System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext > get_Context () const
 parser context More...
 
bool get_IsNewFont () const
 indicates that the font is new More...
 
void set_IsNewFont (bool value)
 indicates that the font is new More...
 
bool get_IsModified () const
 Indicates data state in current table, if this flag is true - table data was changd and needed to be saved. More...
 
void set_IsModified (bool value)
 Indicates data state in current table, if this flag is true - table data was changd and needed to be saved. More...
 
ASPOSE_FONT_SHARED_API uint32_t get_Length () const
 Gets length of this table in bytes (actual length not padded length). More...
 
 TtfTableBase (System::SharedPtr< TtfTableRepository > ttfTables, System::SharedPtr< Aspose::Font::Ttf::TtfFont > font)
 
 MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION (TtfTableBase, CODEPORTING_ARGS(System::SharedPtr< TtfTableRepository > ttfTables, System::SharedPtr< Aspose::Font::Ttf::TtfFont > font))
 
 TtfTableBase (System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext > context, uint32_t checkSum, uint32_t offset, uint32_t length)
 
 MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION (TtfTableBase, CODEPORTING_ARGS(System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext > context, uint32_t checkSum, uint32_t offset, uint32_t length))
 
void LazyLoad ()
 
virtual ASPOSE_FONT_SHARED_API void LazyLoadImpl (System::SharedPtr< Aspose::Font::Ttf::Internals::Parsing::TTFFileReader > ttfReader)
 
virtual ASPOSE_FONT_SHARED_API bool IsConsistent ()
 
virtual ASPOSE_FONT_SHARED_API void Load (System::SharedPtr< Aspose::Font::Ttf::Internals::Parsing::TTFFileReader > ttfReader)
 Loads current table More...
 
void LoadInitialBytes (System::ArrayPtr< uint8_t > &tableBytes, uint32_t &length, uint32_t &checksum)
 Read the initial data (all bytes) of the table and save it to array of bytes
Parameters
tableBytesArray of bytes of initial data
lengthOriginal value of length of the table
checksumOriginal value of checksum
More...
 
virtual ASPOSE_FONT_SHARED_API void SaveInitialBytes (System::ArrayPtr< uint8_t > &tableBytes, uint32_t &length, uint32_t &checksum)
 Saves the initial bytes of the table More...
 
void FinalizeWriting (System::SharedPtr< Aspose::Font::Ttf::Internals::Parsing::TTFFileWriter > writer, System::SharedPtr< System::IO::MemoryStream > stream, System::ArrayPtr< uint8_t > &tableBytes, uint32_t &length, uint32_t &checksum)
 
virtual ASPOSE_FONT_SHARED_API void AssignDataFrom (System::SharedPtr< TtfTableBase > table)
 Designed to copy data from another table with same type, for example hhea->hhea, hmtx->hmtx. This mechanism can be helpful when table of generated font needed to copy data from another existing font(not generated) to avoid problems with linking to data source(source table from existing font has link to data source(offset, length), but this link data is superfluous for destination table, so full copy (method like Copy()) is not decision for this case. Let the table takes necessary data via this assigning mechanism. More...
 

Static Protected Member Functions

static System::SharedPtr< System::Collections::Generic::List< System::SharedPtr< TtfGlyfTable::PointsCollection > > > GetGlyphContours (System::SharedPtr< Aspose::Font::RenderingPath::SegmentPath > path)
 
- Static Protected Member Functions inherited from Aspose::Font::TtfTables::TtfTableBase
static uint32_t CalculateChecksum (System::ArrayPtr< uint8_t > data)
 

Static Protected Attributes

static const System::String TAG
 Table Tag. More...
 
static const System::String LowerTag
 

Additional Inherited Members

- Public Types inherited from System::Object
typedef SmartPtr< Objectptr
 Alias for smart pointer type. More...
 
- Protected Attributes inherited from Aspose::Font::TtfTables::TtfTableBase
bool IsLoaded
 Used to detect whether table already loaded More...
 

Detailed Description

Represents "glyf" table of the TTF Font file.

Member Enumeration Documentation

◆ ComponentFlagsEnum

Enumerator
ARG_1_AND_2_ARE_WORDS 
ARGS_ARE_XY_VALUES 
ROUND_XY_TO_GRID 
WE_HAVE_A_SCALE 
MORE_COMPONENTS 
WE_HAVE_AN_X_AND_Y_SCALE 
WE_HAVE_A_TWO_BY_TWO 
WE_HAVE_INSTRUCTIONS 
USE_MY_METRICS 
OVERLAP_COMPOUND 

◆ OutlineFlagsEnum

Enumerator
OnCurve 
XShortVector 
YShortVector 
Repeat 
PositiveXShortVector 
PositiveYShortVector 

Constructor & Destructor Documentation

◆ TtfGlyfTable() [1/2]

Aspose::Font::TtfTables::TtfGlyfTable::TtfGlyfTable ( System::SharedPtr< TtfTableRepository ttfTables,
System::SharedPtr< Aspose::Font::Ttf::TtfFont font 
)
protected

◆ TtfGlyfTable() [2/2]

Aspose::Font::TtfTables::TtfGlyfTable::TtfGlyfTable ( System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext >  context,
uint32_t  checkSum,
uint32_t  offset,
uint32_t  length 
)
protected

Member Function Documentation

◆ AddVirtualGlyph()

System::String Aspose::Font::TtfTables::TtfGlyfTable::AddVirtualGlyph ( System::SharedPtr< Aspose::Font::Glyphs::Glyph glyph)
protected

◆ ClearNewFontGlyphsCache()

void Aspose::Font::TtfTables::TtfGlyfTable::ClearNewFontGlyphsCache ( )
protected

◆ ContainsGlyph()

virtual ASPOSE_FONT_SHARED_API bool Aspose::Font::TtfTables::TtfGlyfTable::ContainsGlyph ( int32_t  glyphIndex)
virtual

Returns true in case the table contains glyph with glyphIndex.

Parameters
glyphIndexGlyph index.
Returns
True if table contains glyph for index specified, false otherwise.

◆ DECLARE_FRIEND_ENUM_OPERATORS() [1/2]

Aspose::Font::TtfTables::TtfGlyfTable::DECLARE_FRIEND_ENUM_OPERATORS ( Aspose::Font::TtfTables::TtfGlyfTable::OutlineFlagsEnum  )
protected

◆ DECLARE_FRIEND_ENUM_OPERATORS() [2/2]

Aspose::Font::TtfTables::TtfGlyfTable::DECLARE_FRIEND_ENUM_OPERATORS ( Aspose::Font::TtfTables::TtfGlyfTable::ComponentFlagsEnum  )
protected

◆ get_Tag()

static ASPOSE_FONT_SHARED_API System::String Aspose::Font::TtfTables::TtfGlyfTable::get_Tag ( )
static

Gets table tag.

◆ GetComponentSubglyphs()

void Aspose::Font::TtfTables::TtfGlyfTable::GetComponentSubglyphs ( int32_t  glyphIndex,
System::SharedPtr< Aspose::Font::Glyphs::GlyphIdList glyphIds 
)
protected

◆ GetGlyph()

virtual ASPOSE_FONT_SHARED_API System::SharedPtr<Aspose::Font::Glyphs::Glyph> Aspose::Font::TtfTables::TtfGlyfTable::GetGlyph ( uint32_t  glyphIndex)
virtual

Returns a glyph by glyph index.

Parameters
glyphIndexGlyph index.
Returns
Glyph related to index specified.

◆ GetGlyphContours()

static System::SharedPtr<System::Collections::Generic::List<System::SharedPtr<TtfGlyfTable::PointsCollection> > > Aspose::Font::TtfTables::TtfGlyfTable::GetGlyphContours ( System::SharedPtr< Aspose::Font::RenderingPath::SegmentPath path)
staticprotected

◆ GetGlyphIndex()

uint16_t Aspose::Font::TtfTables::TtfGlyfTable::GetGlyphIndex ( System::SharedPtr< Aspose::Font::Glyphs::Glyph glyph)
protected

◆ GetStreamSourceForNewFont()

System::SharedPtr<Aspose::Font::Sources::StreamSource> Aspose::Font::TtfTables::TtfGlyfTable::GetStreamSourceForNewFont ( )
protected

◆ IsGlyphAdded()

bool Aspose::Font::TtfTables::TtfGlyfTable::IsGlyphAdded ( System::SharedPtr< Aspose::Font::Glyphs::Glyph glyph)
protected

◆ MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION() [1/2]

Aspose::Font::TtfTables::TtfGlyfTable::MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION ( TtfGlyfTable  ,
CODEPORTING_ARGS(System::SharedPtr< TtfTableRepository > ttfTables, System::SharedPtr< Aspose::Font::Ttf::TtfFont > font)   
)
protected

◆ MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION() [2/2]

Aspose::Font::TtfTables::TtfGlyfTable::MEMBER_FUNCTION_MAKE_OBJECT_DECLARATION ( TtfGlyfTable  ,
CODEPORTING_ARGS(System::SharedPtr< Aspose::Font::Ttf::Internals::TtfParserContext > context, uint32_t checkSum, uint32_t offset, uint32_t length)   
)
protected

◆ RemoveVirtualGlyphByKey()

void Aspose::Font::TtfTables::TtfGlyfTable::RemoveVirtualGlyphByKey ( System::String  key)
protected

◆ ResetGlyphsData()

void Aspose::Font::TtfTables::TtfGlyfTable::ResetGlyphsData ( )
protected

◆ Save()

ASPOSE_FONT_SHARED_API void Aspose::Font::TtfTables::TtfGlyfTable::Save ( System::ArrayPtr< uint8_t > &  tableBytes,
uint32_t &  length,
uint32_t &  checksum 
)
overrideprotectedvirtual

Saves the table to font stream

base mathod implementation simply retrieves initial table data

Reimplemented from Aspose::Font::TtfTables::TtfTableBase.

◆ SaveGlyph()

void Aspose::Font::TtfTables::TtfGlyfTable::SaveGlyph ( System::SharedPtr< Aspose::Font::Glyphs::Glyph glyph,
System::ArrayPtr< uint8_t > &  glyphBytes,
bool &  isNewGlyph 
)
protected

◆ UpdateAllGlyphsAsNewTable()

void Aspose::Font::TtfTables::TtfGlyfTable::UpdateAllGlyphsAsNewTable ( System::SharedPtr< System::Collections::Generic::SortedDictionary< int32_t, System::SharedPtr< Aspose::Font::Glyphs::Glyph >>>  sourceGlyphs,
System::SharedPtr< System::Collections::Generic::SortedDictionary< int32_t, System::SharedPtr< Aspose::Font::Glyphs::Glyph >>>  updatedGlyphs 
)
protected

Member Data Documentation

◆ LowerTag

const System::String Aspose::Font::TtfTables::TtfGlyfTable::LowerTag
staticprotected

◆ TAG

const System::String Aspose::Font::TtfTables::TtfGlyfTable::TAG
staticprotected

Table Tag.