declaration_list
{ "{"
enum_specifier
enum "enum"
type_identifier "ClipType"
enumerator_list
{ "{"
enumerator
identifier "ctIntersection"
, ","
enumerator
identifier "ctUnion"
, ","
enumerator
identifier "ctDifference"
, ","
enumerator
identifier "ctXor"
} "}"
; ";"
enum_specifier
enum "enum"
type_identifier "PolyType"
enumerator_list
{ "{"
enumerator
identifier "ptSubject"
, ","
enumerator
identifier "ptClip"
} "}"
; ";"
comment "// By far the most widely used winding rules for polygon fil"...
comment "// EvenOdd & NonZero (GDI, GDI+, XLib, OpenGL, Cairo, AGG, Q"...
comment "// Others rules include Positive, Negative and ABS_GTR_EQ_TW"...
comment "// see http://glprogramming.com/red/chapter11.html"
enum_specifier
enum "enum"
type_identifier "PolyFillType"
enumerator_list
{ "{"
enumerator
identifier "pftEvenOdd"
, ","
enumerator
identifier "pftNonZero"
, ","
enumerator
identifier "pftPositive"
, ","
enumerator
identifier "pftNegative"
} "}"
; ";"
preproc_ifdef (+80 nodes collapsed)
struct_specifier (+221 nodes collapsed)
; ";"
comment "//----------------------------------------------------------"...
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "IntPoint"
> ">"
type_identifier "Path"
; ";"
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "Path"
> ">"
type_identifier "Paths"
; ";"
function_definition (+44 nodes collapsed)
function_definition (+44 nodes collapsed)
declaration (+31 nodes collapsed)
declaration (+31 nodes collapsed)
declaration (+31 nodes collapsed)
struct_specifier (+92 nodes collapsed)
; ";"
comment "//----------------------------------------------------------"...
preproc_ifdef (+47 nodes collapsed)
enum_specifier
enum "enum"
type_identifier "InitOptions"
enumerator_list
{ "{"
enumerator
identifier "ioReverseSolution"
= "="
number_literal "1"
, ","
enumerator
identifier "ioStrictlySimple"
= "="
number_literal "2"
, ","
enumerator
identifier "ioPreserveCollinear"
= "="
number_literal "4"
} "}"
; ";"
enum_specifier
enum "enum"
type_identifier "JoinType"
enumerator_list
{ "{"
enumerator
identifier "jtSquare"
, ","
enumerator
identifier "jtRound"
, ","
enumerator
identifier "jtMiter"
} "}"
; ";"
enum_specifier
enum "enum"
type_identifier "EndType"
enumerator_list
{ "{"
enumerator
identifier "etClosedPolygon"
, ","
enumerator
identifier "etClosedLine"
, ","
enumerator
identifier "etOpenButt"
, ","
enumerator
identifier "etOpenSquare"
, ","
enumerator
identifier "etOpenRound"
} "}"
; ";"
class_specifier
class "class"
type_identifier "PolyNode"
; ";"
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "PolyNode"
abstract_pointer_declarator
* "*"
> ">"
type_identifier "PolyNodes"
; ";"
class_specifier
class "class"
type_identifier "PolyNode"
field_declaration_list
{ "{"
access_specifier
public "public"
: ":"
declaration
function_declarator
identifier "PolyNode"
parameter_list
( "("
) ")"
; ";"
function_definition
virtual "virtual"
function_declarator
destructor_name
~ "~"
identifier "PolyNode"
parameter_list
( "("
) ")"
compound_statement
{ "{"
} "}"
; ";"
field_declaration
type_identifier "Path"
field_identifier "Contour"
; ";"
field_declaration
type_identifier "PolyNodes"
field_identifier "Childs"
; ";"
field_declaration
type_identifier "PolyNode"
pointer_declarator
* "*"
field_identifier "Parent"
; ";"
field_declaration
type_identifier "PolyNode"
pointer_declarator
* "*"
function_declarator
field_identifier "GetNext"
parameter_list
( "("
) ")"
type_qualifier
const "const"
; ";"
field_declaration
primitive_type "bool"
function_declarator
field_identifier "IsHole"
parameter_list
( "("
) ")"
type_qualifier
const "const"
; ";"
field_declaration
primitive_type "bool"
function_declarator
field_identifier "IsOpen"
parameter_list
( "("
) ")"
type_qualifier
const "const"
; ";"
field_declaration
primitive_type "int"
function_declarator
field_identifier "ChildCount"
parameter_list
( "("
) ")"
type_qualifier
const "const"
; ";"
access_specifier
private "private"
: ":"
comment "// PolyNode& operator =(PolyNode& other);"
field_declaration
sized_type_specifier
unsigned "unsigned"
field_identifier "Index"
; ";"
comment "// node index in Parent.Childs"
field_declaration
primitive_type "bool"
field_identifier "m_IsOpen"
; ";"
field_declaration
type_identifier "JoinType"
field_identifier "m_jointype"
; ";"
field_declaration
type_identifier "EndType"
field_identifier "m_endtype"
; ";"
field_declaration
type_identifier "PolyNode"
pointer_declarator
* "*"
function_declarator
field_identifier "GetNextSiblingUp"
parameter_list
( "("
) ")"
type_qualifier
const "const"
; ";"
field_declaration
primitive_type "void"
function_declarator
field_identifier "AddChild"
parameter_list
( "("
parameter_declaration
type_identifier "PolyNode"
reference_declarator
& "&"
identifier "child"
) ")"
; ";"
friend_declaration
friend "friend"
class "class"
type_identifier "Clipper"
; ";"
comment "// to access Index"
friend_declaration
friend "friend"
class "class"
type_identifier "ClipperOffset"
; ";"
} "}"
; ";"
class_specifier (+77 nodes collapsed)
; ";"
declaration
primitive_type "bool"
function_declarator
identifier "Orientation"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Path"
reference_declarator
& "&"
identifier "poly"
) ")"
; ";"
declaration
primitive_type "double"
function_declarator
identifier "Area"
parameter_list
( "("
parameter_declaration
type_qualifier
const "const"
type_identifier "Path"
reference_declarator
& "&"
identifier "poly"
) ")"
; ";"
declaration (+23 nodes collapsed)
declaration (+27 nodes collapsed)
declaration (+27 nodes collapsed)
declaration
primitive_type "void"
function_declarator
identifier "SimplifyPolygons"
parameter_list
( "("
parameter_declaration
type_identifier "Paths"
reference_declarator
& "&"
identifier "polys"
, ","
optional_parameter_declaration
type_identifier "PolyFillType"
identifier "fillType"
= "="
identifier "pftEvenOdd"
) ")"
; ";"
declaration (+27 nodes collapsed)
declaration
primitive_type "void"
function_declarator
identifier "CleanPolygon"
parameter_list
( "("
parameter_declaration
type_identifier "Path"
reference_declarator
& "&"
identifier "poly"
, ","
optional_parameter_declaration
primitive_type "double"
identifier "distance"
= "="
number_literal "1.415"
) ")"
; ";"
declaration (+27 nodes collapsed)
declaration
primitive_type "void"
function_declarator
identifier "CleanPolygons"
parameter_list
( "("
parameter_declaration
type_identifier "Paths"
reference_declarator
& "&"
identifier "polys"
, ","
optional_parameter_declaration
primitive_type "double"
identifier "distance"
= "="
number_literal "1.415"
) ")"
; ";"
declaration (+33 nodes collapsed)
declaration (+33 nodes collapsed)
declaration (+29 nodes collapsed)
declaration (+21 nodes collapsed)
declaration (+21 nodes collapsed)
declaration
primitive_type "void"
function_declarator
identifier "OpenPathsFromPolyTree"
parameter_list
( "("
parameter_declaration
type_identifier "PolyTree"
reference_declarator
& "&"
identifier "polytree"
, ","
parameter_declaration
type_identifier "Paths"
reference_declarator
& "&"
identifier "paths"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "ReversePath"
parameter_list
( "("
parameter_declaration
type_identifier "Path"
reference_declarator
& "&"
identifier "p"
) ")"
; ";"
declaration
primitive_type "void"
function_declarator
identifier "ReversePaths"
parameter_list
( "("
parameter_declaration
type_identifier "Paths"
reference_declarator
& "&"
identifier "p"
) ")"
; ";"
struct_specifier (+22 nodes collapsed)
; ";"
comment "// enums that are used internally ..."
enum_specifier
enum "enum"
type_identifier "EdgeSide"
enumerator_list
{ "{"
enumerator
identifier "esLeft"
= "="
number_literal "1"
, ","
enumerator
identifier "esRight"
= "="
number_literal "2"
} "}"
; ";"
comment "// forward declarations (for stuff used internally) ..."
struct_specifier
struct "struct"
type_identifier "TEdge"
; ";"
struct_specifier
struct "struct"
type_identifier "IntersectNode"
; ";"
struct_specifier
struct "struct"
type_identifier "LocalMinimum"
; ";"
struct_specifier
struct "struct"
type_identifier "OutPt"
; ";"
struct_specifier
struct "struct"
type_identifier "OutRec"
; ";"
struct_specifier
struct "struct"
type_identifier "Join"
; ";"
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "OutRec"
abstract_pointer_declarator
* "*"
> ">"
type_identifier "PolyOutList"
; ";"
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "TEdge"
abstract_pointer_declarator
* "*"
> ">"
type_identifier "EdgeList"
; ";"
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "Join"
abstract_pointer_declarator
* "*"
> ">"
type_identifier "JoinList"
; ";"
type_definition
typedef "typedef"
qualified_identifier
namespace_identifier "std"
:: "::"
template_type
type_identifier "vector"
template_argument_list
< "<"
type_descriptor
type_identifier "IntersectNode"
abstract_pointer_declarator
* "*"
> ">"
type_identifier "IntersectList"
; ";"
comment "//----------------------------------------------------------"...
comment "// ClipperBase is the ancestor to the Clipper class. It shou"...
comment "// instantiated directly. This class simply abstracts the co"...
comment "// polygon coordinates into edge objects that are stored in "...
class_specifier (+386 nodes collapsed)
; ";"
comment "//----------------------------------------------------------"...
class_specifier (+1028 nodes collapsed)
; ";"
comment "//----------------------------------------------------------"...
class_specifier (+273 nodes collapsed)
; ";"
comment "//----------------------------------------------------------"...
class_specifier (+99 nodes collapsed)
; ";"
comment "//----------------------------------------------------------"...
} "}"