ReactOS
0.4.16-dev-91-g764881a
bin.h
Go to the documentation of this file.
1
/*
2
* SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
3
* Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
4
*
5
* Permission is hereby granted, free of charge, to any person obtaining a
6
* copy of this software and associated documentation files (the "Software"),
7
* to deal in the Software without restriction, including without limitation
8
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
9
* and/or sell copies of the Software, and to permit persons to whom the
10
* Software is furnished to do so, subject to the following conditions:
11
*
12
* The above copyright notice including the dates of first publication and
13
* either this permission notice or a reference to
14
* http://oss.sgi.com/projects/FreeB/
15
* shall be included in all copies or substantial portions of the Software.
16
*
17
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
18
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
20
* SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
21
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
22
* OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23
* SOFTWARE.
24
*
25
* Except as contained in this notice, the name of Silicon Graphics, Inc.
26
* shall not be used in advertising or otherwise to promote the sale, use or
27
* other dealings in this Software without prior written authorization from
28
* Silicon Graphics, Inc.
29
*/
30
31
/*
32
* bin.h
33
*
34
*/
35
36
#ifndef __glubin_h_
37
#define __glubin_h_
38
39
//#include "myassert.h"
40
#include "
arc.h
"
41
//#include "defines.h"
42
43
class
Bin
44
{
/* a linked list of jordan arcs */
45
private
:
46
Arc_ptr
head
;
/*first arc on list */
47
Arc_ptr
current
;
/* current arc on list */
48
public
:
49
Bin
();
50
~Bin
();
51
inline
Arc_ptr
firstarc
(
void
);
52
inline
Arc_ptr
nextarc
(
void
);
53
inline
Arc_ptr
removearc
(
void
);
54
inline
int
isnonempty
(
void
) {
return
(
head
? 1 : 0); }
55
inline
void
addarc
(
Arc_ptr
);
56
void
remove_this_arc
(
Arc_ptr
);
57
int
numarcs
(
void
);
58
void
adopt
(
void
);
59
void
markall
(
void
);
60
void
show
(
const
char
* );
61
void
listBezier
(
void
);
62
};
63
64
/*----------------------------------------------------------------------------
65
* Bin::addarc - add an Arc_ptr to head of linked list of Arc_ptr
66
*----------------------------------------------------------------------------
67
*/
68
69
inline
void
70
Bin::addarc
(
Arc_ptr
jarc )
71
{
72
jarc->link =
head
;
73
head
= jarc;
74
}
75
76
/*----------------------------------------------------------------------------
77
* Bin::removearc - remove first Arc_ptr from bin
78
*----------------------------------------------------------------------------
79
*/
80
81
inline
Arc_ptr
82
Bin::removearc
(
void
)
83
{
84
Arc_ptr
jarc =
head
;
85
86
if
( jarc )
head
= jarc->link;
87
return
jarc;
88
}
89
90
91
/*----------------------------------------------------------------------------
92
* BinIter::nextarc - return current arc in bin and advance pointer to next arc
93
*----------------------------------------------------------------------------
94
*/
95
96
inline
Arc_ptr
97
Bin::nextarc
(
void
)
98
{
99
Arc_ptr
jarc =
current
;
100
101
#ifdef DEBUG
102
assert
( jarc->check() != 0 );
103
#endif
104
105
if
( jarc )
current
= jarc->link;
106
return
jarc;
107
}
108
109
/*----------------------------------------------------------------------------
110
* BinIter::firstarc - set current arc to first arc of bin advance to next arc
111
*----------------------------------------------------------------------------
112
*/
113
114
inline
Arc_ptr
115
Bin::firstarc
(
void
)
116
{
117
current
=
head
;
118
return
nextarc
( );
119
}
120
121
#endif
/* __glubin_h_ */
Bin
Definition:
bin.h:44
Bin::markall
void markall(void)
Definition:
bin.cc:139
Bin::removearc
Arc_ptr removearc(void)
Definition:
bin.h:82
Bin::numarcs
int numarcs(void)
Definition:
bin.cc:84
Bin::show
void show(const char *)
Definition:
bin.cc:122
Bin::~Bin
~Bin()
Definition:
bin.cc:55
Bin::isnonempty
int isnonempty(void)
Definition:
bin.h:54
Bin::head
Arc_ptr head
Definition:
bin.h:46
Bin::adopt
void adopt(void)
Definition:
bin.cc:98
Bin::firstarc
Arc_ptr firstarc(void)
Definition:
bin.h:115
Bin::nextarc
Arc_ptr nextarc(void)
Definition:
bin.h:97
Bin::listBezier
void listBezier(void)
Definition:
bin.cc:151
Bin::current
Arc_ptr current
Definition:
bin.h:47
Bin::Bin
Bin()
Definition:
bin.cc:49
Bin::remove_this_arc
void remove_this_arc(Arc_ptr)
Definition:
bin.cc:66
Bin::addarc
void addarc(Arc_ptr)
Definition:
bin.h:70
Arc_ptr
class Arc * Arc_ptr
Definition:
arc.h:50
assert
#define assert(x)
Definition:
debug.h:53
arc.h
dll
opengl
glu32
src
libnurbs
internals
bin.h
Generated on Fri Oct 4 2024 06:03:18 for ReactOS by
1.9.6