24BEGIN_MOOTOOLS_NAMESPACE
31 virtual ~CStack( ) { xDeleteArray(Array, MaxSize); }
35 void Push(
const Etype & X );
39 Etype & GetAt(
int i )
const;
40 bool Find(
const Etype& X)
const;
41 int IsEmpty( )
const {
return TopOfStack == -1; }
42 int IsFull( )
const {
return 0; }
43 void MakeEmpty( ) { TopOfStack = -1; }
44 int Size()
const {
return TopOfStack+1; }
49 enum { InitStackSize = 5 };
63 InitSize(InitStackSize);
69 XASSERT(TopOfStack == -1);
76 xDeleteArray(Array, MaxSize);
79 Array = xNewArray(
Etype, MaxSize);
91 xDeleteArray(Array, MaxSize);
92 Array = xNewArray(
Etype,
Rhs.MaxSize );
95 MaxSize =
Rhs.MaxSize;
96 TopOfStack =
Rhs.TopOfStack;
97 for(
int i = 0;
i <= TopOfStack;
i++ )
98 Array[
i ] =
Rhs.Array[
i ];
103template <
class Etype>
107 if( TopOfStack + 1 == MaxSize )
113 Array = xNewArray(
Etype , MaxSize);
115 for(
int i = 0;
i <= TopOfStack;
i++ )
116 Array[
i ] =
Old[
i ];
121 Array[ ++TopOfStack ] = X;
124template <
class Etype>
131template <
class Etype>
135 XASSERT(TopOfStack > -1);
136 X = Array[ TopOfStack ];
141template <
class Etype>
145 XASSERT(TopOfStack > -1);
146 return Array[ TopOfStack ];
149template <
class Etype>
153 XASSERT(
i <= TopOfStack);
157template <
class Etype>
161 for (
int i = TopOfStack;
i >= 0;
i--)
168END_MOOTOOLS_NAMESPACE
The class defines an x, y, z 3D point which can use int, float or double.
Definition 3DPoint.h:27