Blender
V3.3
intern
dualcon
intern
Queue.h
Go to the documentation of this file.
1
/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3
#ifndef __QUEUE_H__
4
#define __QUEUE_H__
5
6
struct
gridQueueEle
{
7
int
x
,
y
,
z
;
8
UCHAR
dir
;
9
gridQueueEle
*
next
;
10
};
11
12
class
GridQueue
{
13
gridQueueEle
*head;
14
gridQueueEle
*tail;
15
int
numEles;
16
17
public
:
18
GridQueue
()
19
{
20
head =
NULL
;
21
tail =
NULL
;
22
numEles = 0;
23
}
24
25
gridQueueEle
*
getHead
()
26
{
27
return
head;
28
}
29
30
int
getNumElements
()
31
{
32
return
numEles;
33
}
34
35
void
pushQueue
(
int
st
[3],
int
dir)
36
{
37
gridQueueEle
*ele =
new
gridQueueEle
;
38
ele->
x
=
st
[0];
39
ele->
y
=
st
[1];
40
ele->
z
=
st
[2];
41
ele->
dir
= (
UCHAR
)dir;
42
ele->
next
=
NULL
;
43
if
(head ==
NULL
) {
44
head = ele;
45
}
46
else
{
47
tail->
next
= ele;
48
}
49
tail = ele;
50
numEles++;
51
}
52
53
int
popQueue
(
int
st
[3],
int
&dir)
54
{
55
if
(head ==
NULL
) {
56
return
0;
57
}
58
59
st
[0] = head->
x
;
60
st
[1] = head->
y
;
61
st
[2] = head->
z
;
62
dir = (int)(head->
dir
);
63
64
gridQueueEle
*temp = head;
65
head = head->
next
;
66
delete
temp;
67
68
if
(head ==
NULL
) {
69
tail =
NULL
;
70
}
71
numEles--;
72
73
return
1;
74
}
75
76
#ifdef WITH_CXX_GUARDEDALLOC
77
MEM_CXX_CLASS_ALLOC_FUNCS(
"DUALCON:GridQueue"
)
78
#endif
79
};
80
81
#endif
/* __QUEUE_H__ */
UCHAR
#define UCHAR
Definition:
GeoCommon.h:6
NULL
return NULL
Definition:
bmesh_operator_api_inline.h:205
GridQueue
Definition:
Queue.h:12
GridQueue::pushQueue
void pushQueue(int st[3], int dir)
Definition:
Queue.h:35
GridQueue::popQueue
int popQueue(int st[3], int &dir)
Definition:
Queue.h:53
GridQueue::getHead
gridQueueEle * getHead()
Definition:
Queue.h:25
GridQueue::getNumElements
int getNumElements()
Definition:
Queue.h:30
GridQueue::GridQueue
GridQueue()
Definition:
Queue.h:18
usdtokens::st
static const pxr::TfToken st("st", pxr::TfToken::Immortal)
gridQueueEle
Definition:
Queue.h:6
gridQueueEle::y
int y
Definition:
Queue.h:7
gridQueueEle::dir
UCHAR dir
Definition:
Queue.h:8
gridQueueEle::next
gridQueueEle * next
Definition:
Queue.h:9
gridQueueEle::x
int x
Definition:
Queue.h:7
gridQueueEle::z
int z
Definition:
Queue.h:7
Generated on Tue Oct 22 2024 13:18:25 for Blender by
doxygen
1.9.1