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