ReactOS
0.4.16-dev-125-g798ea90
trimline.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
* trimline.h
33
*
34
*/
35
36
#ifndef __glutrimline_h_
37
#define __glutrimline_h_
38
39
class
Arc
;
40
class
Backend
;
41
42
//#include "trimvertex.h"
43
#include "
jarcloc.h
"
44
45
46
class
Trimline
{
47
private
:
48
TrimVertex
**
pts
;
49
long
numverts
;
50
long
i
;
51
long
size
;
52
Jarcloc
jarcl
;
53
TrimVertex
t
,
b
;
54
TrimVertex
*
tinterp
, *
binterp
;
55
void
reset
(
void
) {
numverts
= 0; }
56
inline
void
grow
(
long
);
57
inline
void
swap
(
void
);
58
inline
void
append
(
TrimVertex
* );
59
static
long
interpvert
(
TrimVertex
*,
TrimVertex
*,
TrimVertex
*,
REAL
);
60
61
62
63
public
:
64
Trimline
();
65
~Trimline
();
66
void
init
(
TrimVertex
* );
67
void
init
(
long
,
Arc_ptr
,
long
);
68
void
getNextPt
(
void
);
69
void
getPrevPt
(
void
);
70
void
getNextPts
(
REAL
,
Backend
& );
71
void
getPrevPts
(
REAL
,
Backend
& );
72
void
getNextPts
(
Arc_ptr
);
73
void
getPrevPts
(
Arc_ptr
);
74
inline
TrimVertex
*
next
(
void
);
75
inline
TrimVertex
*
prev
(
void
);
76
inline
TrimVertex
*
first
(
void
);
77
inline
TrimVertex
*
last
(
void
);
78
};
79
80
inline
TrimVertex
*
81
Trimline::next
(
void
)
82
{
83
if
(
i
<
numverts
)
return
pts
[
i
++];
else
return
0;
84
}
85
86
inline
TrimVertex
*
87
Trimline::prev
(
void
)
88
{
89
if
(
i
>= 0 )
return
pts
[
i
--];
else
return
0;
90
}
91
92
inline
TrimVertex
*
93
Trimline::first
(
void
)
94
{
95
i
= 0;
return
pts
[
i
];
96
}
97
98
inline
TrimVertex
*
99
Trimline::last
(
void
)
100
{
101
i
=
numverts
;
return
pts
[--
i
];
102
}
103
#endif
/* __glutrimline_h_ */
Arc
Definition:
arc.h:55
Backend
Definition:
backend.h:46
Jarcloc
Definition:
jarcloc.h:41
TrimVertex
Definition:
trimvertex.h:43
Trimline
Definition:
trimline.h:46
Trimline::append
void append(TrimVertex *)
Definition:
trimline.cc:76
Trimline::b
TrimVertex b
Definition:
trimline.h:53
Trimline::jarcl
Jarcloc jarcl
Definition:
trimline.h:52
Trimline::reset
void reset(void)
Definition:
trimline.h:55
Trimline::binterp
TrimVertex * binterp
Definition:
trimline.h:54
Trimline::t
TrimVertex t
Definition:
trimline.h:53
Trimline::tinterp
TrimVertex * tinterp
Definition:
trimline.h:54
Trimline::getNextPts
void getNextPts(REAL, Backend &)
Definition:
trimline.cc:115
Trimline::prev
TrimVertex * prev(void)
Definition:
trimline.h:87
Trimline::~Trimline
~Trimline()
Definition:
trimline.cc:52
Trimline::first
TrimVertex * first(void)
Definition:
trimline.h:93
Trimline::grow
void grow(long)
Definition:
trimline.cc:66
Trimline::interpvert
static long interpvert(TrimVertex *, TrimVertex *, TrimVertex *, REAL)
Definition:
trimline.cc:195
Trimline::pts
TrimVertex ** pts
Definition:
trimline.h:48
Trimline::getNextPt
void getNextPt(void)
Definition:
trimline.cc:98
Trimline::Trimline
Trimline()
Definition:
trimline.cc:46
Trimline::numverts
long numverts
Definition:
trimline.h:49
Trimline::getPrevPt
void getPrevPt(void)
Definition:
trimline.cc:104
Trimline::i
long i
Definition:
trimline.h:50
Trimline::size
long size
Definition:
trimline.h:51
Trimline::swap
void swap(void)
Definition:
trimline.cc:90
Trimline::getPrevPts
void getPrevPts(REAL, Backend &)
Definition:
trimline.cc:137
Trimline::last
TrimVertex * last(void)
Definition:
trimline.h:99
Trimline::next
TrimVertex * next(void)
Definition:
trimline.h:81
Arc_ptr
class Arc * Arc_ptr
Definition:
arc.h:50
REAL
float REAL
Definition:
types.h:41
jarcloc.h
init
static int init
Definition:
wintirpc.c:33
dll
opengl
glu32
src
libnurbs
internals
trimline.h
Generated on Mon Oct 14 2024 06:03:23 for ReactOS by
1.9.6