Anti-Grain Geometry Tutorial
agg_bitset_iterator.h
1
//----------------------------------------------------------------------------
2
// Anti-Grain Geometry - Version 2.4
3
// Copyright (C) 2002-2005 Maxim Shemanarev (http://www.antigrain.com)
4
//
5
// Permission to copy, use, modify, sell and distribute this software
6
// is granted provided this copyright notice appears in all copies.
7
// This software is provided "as is" without express or implied
8
// warranty, and with no claim as to its suitability for any purpose.
9
//
10
//----------------------------------------------------------------------------
11
// Contact: mcseem@antigrain.com
12
// mcseemagg@yahoo.com
13
// http://www.antigrain.com
14
//----------------------------------------------------------------------------
15
16
#ifndef AGG_BITSET_ITERATOR_INCLUDED
17
#define AGG_BITSET_ITERATOR_INCLUDED
18
19
#include "agg_basics.h"
20
21
namespace
agg
22
{
23
24
class
bitset_iterator
25
{
26
public
:
27
bitset_iterator
(
const
int8u* bits,
unsigned
offset = 0) :
28
m_bits(bits + (offset >> 3)),
29
m_mask(0x80 >> (offset & 7))
30
{}
31
32
void
operator ++ ()
33
{
34
m_mask >>= 1;
35
if
(m_mask == 0)
36
{
37
++m_bits;
38
m_mask = 0x80;
39
}
40
}
41
42
unsigned
bit()
const
43
{
44
return
(*m_bits) & m_mask;
45
}
46
47
private
:
48
const
int8u* m_bits;
49
int8u m_mask;
50
};
51
52
}
53
54
#endif
agg::bitset_iterator
Definition:
agg_bitset_iterator.h:24
agg
Definition:
agg_arc.cpp:24
agg-2.4
include
agg_bitset_iterator.h
Generated by
1.8.13