1
//----------------------------------------------------------------------------
2
// Anti-Grain Geometry - Version 2.4 (Public License)
3
// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
5
// Anti-Grain Geometry - Version 2.4 Release Milano 3 (AggPas 2.4 RM3)
6
// Pascal Port By: Milan Marusinec alias Milano
8
// http://www.aggpas.org
9
// Copyright (c) 2005-2006
11
// Permission to copy, use, modify, sell and distribute this software
12
// is granted provided this copyright notice appears in all copies.
13
// This software is provided "as is" without express or implied
14
// warranty, and with no claim as to its suitability for any purpose.
16
//----------------------------------------------------------------------------
17
// Contact: mcseem@antigrain.com
18
// mcseemagg@yahoo.com
19
// http://www.antigrain.com
21
// [Pascal Port History] -----------------------------------------------------
23
// 15.01.2006-Milano: Unit port establishment
47
span_obj_ptr = ^span_obj;
49
function x : int; virtual;
50
function len : int; virtual;
51
function covers : int8u_ptr; virtual;
53
procedure inc_operator; virtual;
57
scanline_ptr = ^scanline;
59
procedure reset(min_x ,max_x : int ); virtual; abstract;
60
procedure reset_spans; virtual; abstract;
62
procedure finalize (y_ : int ); virtual; abstract;
63
procedure add_cell (x : int; cover : unsigned ); virtual; abstract;
64
procedure add_cells(x : int; len : unsigned; covers : int8u_ptr ); virtual; abstract;
65
procedure add_span (x : int; len ,cover : unsigned ); virtual; abstract;
67
function y : int; virtual; abstract;
68
function num_spans : unsigned; virtual; abstract;
69
function begin_ : pointer; virtual; abstract;
71
function sz_of_span : unsigned; virtual; abstract;
72
function is_plain_span : boolean; virtual;
73
function is_embedded : boolean; virtual;
75
procedure init (ptr : int8u_ptr; dx ,dy : int ); virtual; abstract;
76
procedure setup(scanline_idx : unsigned ); virtual; abstract;
84
{ LOCAL VARIABLES & CONSTANTS }
85
{ UNIT IMPLEMENTATION }
94
function span_obj.len;
101
function span_obj.covers;
108
procedure span_obj.inc_operator;
113
function scanline.is_plain_span;
120
function scanline.is_embedded;