Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Classes | Macros | Typedefs | Enumerations | Functions
pshalgo.h File Reference
#include "pshrec.h"
#include "pshglob.h"

Go to the source code of this file.

Classes

struct  PSH_HintRec_
 
struct  PSH_ZoneRec_
 
struct  PSH_Hint_TableRec_
 
struct  PSH_PointRec_
 
struct  PSH_ContourRec_
 
struct  PSH_GlyphRec_
 

Macros

#define psh_hint_is_active(x)   ( ( (x)->flags & PSH_HINT_ACTIVE ) != 0 )
 
#define psh_hint_is_ghost(x)   ( ( (x)->flags & PSH_HINT_GHOST ) != 0 )
 
#define psh_hint_is_fitted(x)   ( ( (x)->flags & PSH_HINT_FITTED ) != 0 )
 
#define psh_hint_activate(x)   (x)->flags |= PSH_HINT_ACTIVE
 
#define psh_hint_deactivate(x)   (x)->flags &= ~PSH_HINT_ACTIVE
 
#define psh_hint_set_fitted(x)   (x)->flags |= PSH_HINT_FITTED
 
#define PSH_DIR_HORIZONTAL   2
 
#define PSH_DIR_VERTICAL   1
 
#define PSH_DIR_COMPARE(d1, d2)   ( (d1) == (d2) || (d1) == -(d2) )
 
#define PSH_DIR_IS_HORIZONTAL(d)   PSH_DIR_COMPARE( d, PSH_DIR_HORIZONTAL )
 
#define PSH_DIR_IS_VERTICAL(d)   PSH_DIR_COMPARE( d, PSH_DIR_VERTICAL )
 
#define psh_point_is_smooth(p)   ( (p)->flags & PSH_POINT_SMOOTH )
 
#define psh_point_is_off(p)   ( (p)->flags & PSH_POINT_OFF )
 
#define psh_point_is_inflex(p)   ( (p)->flags & PSH_POINT_INFLEX )
 
#define psh_point_set_smooth(p)   (p)->flags |= PSH_POINT_SMOOTH
 
#define psh_point_set_off(p)   (p)->flags |= PSH_POINT_OFF
 
#define psh_point_set_inflex(p)   (p)->flags |= PSH_POINT_INFLEX
 
#define psh_point_is_strong(p)   ( (p)->flags2 & PSH_POINT_STRONG )
 
#define psh_point_is_fitted(p)   ( (p)->flags2 & PSH_POINT_FITTED )
 
#define psh_point_is_extremum(p)   ( (p)->flags2 & PSH_POINT_EXTREMUM )
 
#define psh_point_is_positive(p)   ( (p)->flags2 & PSH_POINT_POSITIVE )
 
#define psh_point_is_negative(p)   ( (p)->flags2 & PSH_POINT_NEGATIVE )
 
#define psh_point_is_edge_min(p)   ( (p)->flags2 & PSH_POINT_EDGE_MIN )
 
#define psh_point_is_edge_max(p)   ( (p)->flags2 & PSH_POINT_EDGE_MAX )
 
#define psh_point_set_strong(p)   (p)->flags2 |= PSH_POINT_STRONG
 
#define psh_point_set_fitted(p)   (p)->flags2 |= PSH_POINT_FITTED
 
#define psh_point_set_extremum(p)   (p)->flags2 |= PSH_POINT_EXTREMUM
 
#define psh_point_set_positive(p)   (p)->flags2 |= PSH_POINT_POSITIVE
 
#define psh_point_set_negative(p)   (p)->flags2 |= PSH_POINT_NEGATIVE
 
#define psh_point_set_edge_min(p)   (p)->flags2 |= PSH_POINT_EDGE_MIN
 
#define psh_point_set_edge_max(p)   (p)->flags2 |= PSH_POINT_EDGE_MAX
 

Typedefs

typedef typedefFT_BEGIN_HEADER struct PSH_HintRec_PSH_Hint
 
typedef enum PSH_Hint_Flags_ PSH_Hint_Flags
 
typedef struct PSH_HintRec_ PSH_HintRec
 
typedef struct PSH_ZoneRec_ PSH_ZoneRec
 
typedef struct PSH_ZoneRec_PSH_Zone
 
typedef struct PSH_Hint_TableRec_ PSH_Hint_TableRec
 
typedef struct PSH_Hint_TableRec_PSH_Hint_Table
 
typedef struct PSH_PointRec_PSH_Point
 
typedef struct PSH_ContourRec_PSH_Contour
 
typedef struct PSH_PointRec_ PSH_PointRec
 
typedef struct PSH_ContourRec_ PSH_ContourRec
 
typedef struct PSH_GlyphRec_ PSH_GlyphRec
 
typedef struct PSH_GlyphRec_PSH_Glyph
 

Enumerations

enum  PSH_Hint_Flags_ { PSH_HINT_GHOST = PS_HINT_FLAG_GHOST, PSH_HINT_BOTTOM = PS_HINT_FLAG_BOTTOM, PSH_HINT_ACTIVE = 4, PSH_HINT_FITTED = 8 }
 
enum  {
  PSH_DIR_NONE = 4, PSH_DIR_UP = -1, PSH_DIR_DOWN = 1, PSH_DIR_LEFT = -2,
  PSH_DIR_RIGHT = 2
}
 
enum  { PSH_POINT_OFF = 1, PSH_POINT_SMOOTH = 2, PSH_POINT_INFLEX = 4 }
 
enum  {
  PSH_POINT_STRONG = 16, PSH_POINT_FITTED = 32, PSH_POINT_EXTREMUM = 64, PSH_POINT_POSITIVE = 128,
  PSH_POINT_NEGATIVE = 256, PSH_POINT_EDGE_MIN = 512, PSH_POINT_EDGE_MAX = 1024
}
 

Functions

FT_Error ps_hints_apply (PS_Hints ps_hints, FT_Outline *outline, PSH_Globals globals, FT_Render_Mode hint_mode)
 

Macro Definition Documentation

◆ PSH_DIR_COMPARE

#define PSH_DIR_COMPARE (   d1,
  d2 
)    ( (d1) == (d2) || (d1) == -(d2) )

Definition at line 110 of file pshalgo.h.

◆ PSH_DIR_HORIZONTAL

#define PSH_DIR_HORIZONTAL   2

Definition at line 107 of file pshalgo.h.

◆ PSH_DIR_IS_HORIZONTAL

#define PSH_DIR_IS_HORIZONTAL (   d)    PSH_DIR_COMPARE( d, PSH_DIR_HORIZONTAL )

Definition at line 111 of file pshalgo.h.

◆ PSH_DIR_IS_VERTICAL

#define PSH_DIR_IS_VERTICAL (   d)    PSH_DIR_COMPARE( d, PSH_DIR_VERTICAL )

Definition at line 112 of file pshalgo.h.

◆ PSH_DIR_VERTICAL

#define PSH_DIR_VERTICAL   1

Definition at line 108 of file pshalgo.h.

◆ psh_hint_activate

#define psh_hint_activate (   x)    (x)->flags |= PSH_HINT_ACTIVE

Definition at line 48 of file pshalgo.h.

◆ psh_hint_deactivate

#define psh_hint_deactivate (   x)    (x)->flags &= ~PSH_HINT_ACTIVE

Definition at line 49 of file pshalgo.h.

◆ psh_hint_is_active

#define psh_hint_is_active (   x)    ( ( (x)->flags & PSH_HINT_ACTIVE ) != 0 )

Definition at line 44 of file pshalgo.h.

◆ psh_hint_is_fitted

#define psh_hint_is_fitted (   x)    ( ( (x)->flags & PSH_HINT_FITTED ) != 0 )

Definition at line 46 of file pshalgo.h.

◆ psh_hint_is_ghost

#define psh_hint_is_ghost (   x)    ( ( (x)->flags & PSH_HINT_GHOST ) != 0 )

Definition at line 45 of file pshalgo.h.

◆ psh_hint_set_fitted

#define psh_hint_set_fitted (   x)    (x)->flags |= PSH_HINT_FITTED

Definition at line 50 of file pshalgo.h.

◆ psh_point_is_edge_max

#define psh_point_is_edge_max (   p)    ( (p)->flags2 & PSH_POINT_EDGE_MAX )

Definition at line 150 of file pshalgo.h.

◆ psh_point_is_edge_min

#define psh_point_is_edge_min (   p)    ( (p)->flags2 & PSH_POINT_EDGE_MIN )

Definition at line 149 of file pshalgo.h.

◆ psh_point_is_extremum

#define psh_point_is_extremum (   p)    ( (p)->flags2 & PSH_POINT_EXTREMUM )

Definition at line 146 of file pshalgo.h.

◆ psh_point_is_fitted

#define psh_point_is_fitted (   p)    ( (p)->flags2 & PSH_POINT_FITTED )

Definition at line 145 of file pshalgo.h.

◆ psh_point_is_inflex

#define psh_point_is_inflex (   p)    ( (p)->flags & PSH_POINT_INFLEX )

Definition at line 126 of file pshalgo.h.

◆ psh_point_is_negative

#define psh_point_is_negative (   p)    ( (p)->flags2 & PSH_POINT_NEGATIVE )

Definition at line 148 of file pshalgo.h.

◆ psh_point_is_off

#define psh_point_is_off (   p)    ( (p)->flags & PSH_POINT_OFF )

Definition at line 125 of file pshalgo.h.

◆ psh_point_is_positive

#define psh_point_is_positive (   p)    ( (p)->flags2 & PSH_POINT_POSITIVE )

Definition at line 147 of file pshalgo.h.

◆ psh_point_is_smooth

#define psh_point_is_smooth (   p)    ( (p)->flags & PSH_POINT_SMOOTH )

Definition at line 124 of file pshalgo.h.

◆ psh_point_is_strong

#define psh_point_is_strong (   p)    ( (p)->flags2 & PSH_POINT_STRONG )

Definition at line 144 of file pshalgo.h.

◆ psh_point_set_edge_max

#define psh_point_set_edge_max (   p)    (p)->flags2 |= PSH_POINT_EDGE_MAX

Definition at line 158 of file pshalgo.h.

◆ psh_point_set_edge_min

#define psh_point_set_edge_min (   p)    (p)->flags2 |= PSH_POINT_EDGE_MIN

Definition at line 157 of file pshalgo.h.

◆ psh_point_set_extremum

#define psh_point_set_extremum (   p)    (p)->flags2 |= PSH_POINT_EXTREMUM

Definition at line 154 of file pshalgo.h.

◆ psh_point_set_fitted

#define psh_point_set_fitted (   p)    (p)->flags2 |= PSH_POINT_FITTED

Definition at line 153 of file pshalgo.h.

◆ psh_point_set_inflex

#define psh_point_set_inflex (   p)    (p)->flags |= PSH_POINT_INFLEX

Definition at line 130 of file pshalgo.h.

◆ psh_point_set_negative

#define psh_point_set_negative (   p)    (p)->flags2 |= PSH_POINT_NEGATIVE

Definition at line 156 of file pshalgo.h.

◆ psh_point_set_off

#define psh_point_set_off (   p)    (p)->flags |= PSH_POINT_OFF

Definition at line 129 of file pshalgo.h.

◆ psh_point_set_positive

#define psh_point_set_positive (   p)    (p)->flags2 |= PSH_POINT_POSITIVE

Definition at line 155 of file pshalgo.h.

◆ psh_point_set_smooth

#define psh_point_set_smooth (   p)    (p)->flags |= PSH_POINT_SMOOTH

Definition at line 128 of file pshalgo.h.

◆ psh_point_set_strong

#define psh_point_set_strong (   p)    (p)->flags2 |= PSH_POINT_STRONG

Definition at line 152 of file pshalgo.h.

Typedef Documentation

◆ PSH_Contour

typedef struct PSH_ContourRec_* PSH_Contour

Definition at line 96 of file pshalgo.h.

◆ PSH_ContourRec

◆ PSH_Glyph

typedef struct PSH_GlyphRec_ * PSH_Glyph

◆ PSH_GlyphRec

typedef struct PSH_GlyphRec_ PSH_GlyphRec

◆ PSH_Hint

typedef typedefFT_BEGIN_HEADER struct PSH_HintRec_* PSH_Hint

Definition at line 31 of file pshalgo.h.

◆ PSH_Hint_Flags

◆ PSH_Hint_Table

◆ PSH_Hint_TableRec

◆ PSH_HintRec

typedef struct PSH_HintRec_ PSH_HintRec

◆ PSH_Point

typedef struct PSH_PointRec_* PSH_Point

Definition at line 95 of file pshalgo.h.

◆ PSH_PointRec

typedef struct PSH_PointRec_ PSH_PointRec

◆ PSH_Zone

typedef struct PSH_ZoneRec_ * PSH_Zone

◆ PSH_ZoneRec

typedef struct PSH_ZoneRec_ PSH_ZoneRec

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PSH_DIR_NONE 
PSH_DIR_UP 
PSH_DIR_DOWN 
PSH_DIR_LEFT 
PSH_DIR_RIGHT 

Definition at line 98 of file pshalgo.h.

◆ anonymous enum

anonymous enum
Enumerator
PSH_POINT_OFF 
PSH_POINT_SMOOTH 
PSH_POINT_INFLEX 

Definition at line 117 of file pshalgo.h.

◆ anonymous enum

anonymous enum
Enumerator
PSH_POINT_STRONG 
PSH_POINT_FITTED 
PSH_POINT_EXTREMUM 
PSH_POINT_POSITIVE 
PSH_POINT_NEGATIVE 
PSH_POINT_EDGE_MIN 
PSH_POINT_EDGE_MAX 

Definition at line 133 of file pshalgo.h.

◆ PSH_Hint_Flags_

Enumerator
PSH_HINT_GHOST 
PSH_HINT_BOTTOM 
PSH_HINT_ACTIVE 
PSH_HINT_FITTED 

Definition at line 34 of file pshalgo.h.

Function Documentation

◆ ps_hints_apply()

FT_Error ps_hints_apply ( PS_Hints  ps_hints,
FT_Outline outline,
PSH_Globals  globals,
FT_Render_Mode  hint_mode 
)

Definition at line 2180 of file pshalgo.c.

References error, FT_Err_Ok, FT_Outline_::n_contours, and FT_Outline_::n_points.