From 66d20748cc0b0ca8e08ee741368663803da3b062 Mon Sep 17 00:00:00 2001 From: Patrik Gornicz Date: Tue, 1 Sep 2009 22:56:11 -0400 Subject: [PATCH] changed queue to array and abstracted a deque from it --- lib/include/bear/{Queue.h => Array.h} | 55 ++++++++++++++++------------------- lib/include/bear/Deque.h | 44 ++++++++++++++++++++++++++++ physics/src/entityCreator.cpp | 6 ++-- 3 files changed, 72 insertions(+), 33 deletions(-) rename lib/include/bear/{Queue.h => Array.h} (89%) create mode 100644 lib/include/bear/Deque.h diff --git a/lib/include/bear/Queue.h b/lib/include/bear/Array.h similarity index 89% rename from lib/include/bear/Queue.h rename to lib/include/bear/Array.h index ba0e5cb..5b8d56d 100644 --- a/lib/include/bear/Queue.h +++ b/lib/include/bear/Array.h @@ -1,5 +1,5 @@ /* - * File: Queue.h + * File: Array.h * Author: patrik * * Created on August 1, 2009, 7:12 PM @@ -10,21 +10,16 @@ #include "debug.h" #include "mathw.h" -// HACK -#ifndef NULL -#define NULL 0 -#endif - namespace bear { /// ***** Header Class ***** template < class Item > - class Queue + class Array { public: - Queue(); - ~Queue() {} + Array(); + virtual ~Array() {} void init(unsigned int uiStartSize = 8, unsigned int uiSizeMultiplier = 2); void fini(); @@ -74,7 +69,7 @@ namespace bear } // namespace bear template < class Item > -bear::Queue::Queue() +bear::Array::Array() : m_uiStartSize(0), m_uiSizeMultiplier(0), m_uiAllocated(0), @@ -86,7 +81,7 @@ bear::Queue::Queue() } template < class Item > -void bear::Queue::init +void bear::Array::init ( unsigned int uiStartSize, unsigned int uiSizeMultiplier @@ -109,7 +104,7 @@ void bear::Queue::init m_pTail = NULL; } template < class Item > -void bear::Queue::fini() +void bear::Array::fini() { m_uiStartSize = 0; m_uiSizeMultiplier = 0; @@ -127,7 +122,7 @@ void bear::Queue::fini() } template < class Item > -void bear::Queue::alloc(unsigned int uiSize) +void bear::Array::alloc(unsigned int uiSize) { if(NULL == m_pArrayItems) { @@ -144,7 +139,7 @@ void bear::Queue::alloc(unsigned int uiSize) } template < class Item > -void bear::Queue::trim() +void bear::Array::trim() { unsigned int uiSize = getLength(); if(NULL == m_pArrayItems) @@ -162,7 +157,7 @@ void bear::Queue::trim() } template < class Item > -bool bear::Queue::isEmpty() const +bool bear::Array::isEmpty() const { if ( NULL == m_pHead ) { @@ -177,7 +172,7 @@ bool bear::Queue::isEmpty() const } template < class Item > -const Item& bear::Queue::getFront() const +const Item& bear::Array::getFront() const { // This is very bad. Fix your code bear::DASSERT(!isEmpty()); @@ -189,7 +184,7 @@ const Item& bear::Queue::getFront() const } template < class Item > -const Item& bear::Queue::getBack() const +const Item& bear::Array::getBack() const { // This is very bad. Fix your code bear::DASSERT(!isEmpty()); @@ -201,7 +196,7 @@ const Item& bear::Queue::getBack() const } template < class Item > -void bear::Queue::pushFront(const Item& i) +void bear::Array::pushFront(const Item& i) { // Make sure we have the space to add an item allocWhenNeeded( getLength() + 1 ); @@ -220,7 +215,7 @@ void bear::Queue::pushFront(const Item& i) } template < class Item > -void bear::Queue::pushBack(const Item& i) +void bear::Array::pushBack(const Item& i) { // Make sure we have the space to add an item allocWhenNeeded( getLength() + 1 ); @@ -239,7 +234,7 @@ void bear::Queue::pushBack(const Item& i) } template < class Item > -void bear::Queue::popFront() +void bear::Array::popFront() { bear::DASSERT(!isEmpty()); @@ -255,7 +250,7 @@ void bear::Queue::popFront() } template < class Item > -void bear::Queue::popBack() +void bear::Array::popBack() { bear::DASSERT(!isEmpty()); @@ -272,7 +267,7 @@ void bear::Queue::popBack() template < class Item > -unsigned int bear::Queue::getLength() const +unsigned int bear::Array::getLength() const { if ( isEmpty() ) { @@ -285,7 +280,7 @@ unsigned int bear::Queue::getLength() const } template < class Item > -void bear::Queue::allocFirstTime(unsigned int uiSize) +void bear::Array::allocFirstTime(unsigned int uiSize) { // santiy checks bear::DASSERT(0 == m_uiAllocated); @@ -303,7 +298,7 @@ void bear::Queue::allocFirstTime(unsigned int uiSize) } template < class Item > -void bear::Queue::allocWhenNeeded(unsigned int uiSize) +void bear::Array::allocWhenNeeded(unsigned int uiSize) { unsigned int uiSizeNeeded = (0 == m_uiAllocated) ? m_uiStartSize : m_uiAllocated; @@ -322,7 +317,7 @@ void bear::Queue::allocWhenNeeded(unsigned int uiSize) } template < class Item > -void bear::Queue::allocForce(unsigned int uiSize) +void bear::Array::allocForce(unsigned int uiSize) { unsigned int uiOldLength = getLength(); @@ -371,7 +366,7 @@ void bear::Queue::allocForce(unsigned int uiSize) template < class Item > -Item* bear::Queue::getNextHead +Item* bear::Array::getNextHead ( Item* pHead, unsigned int uiAllocated, @@ -382,7 +377,7 @@ Item* bear::Queue::getNextHead } template < class Item > -Item* bear::Queue::getPrevHead +Item* bear::Array::getPrevHead ( Item* pHead, unsigned int uiAllocated, @@ -393,7 +388,7 @@ Item* bear::Queue::getPrevHead } template < class Item > -Item* bear::Queue::getNextTail +Item* bear::Array::getNextTail ( Item* pTail, unsigned int uiAllocated, @@ -404,7 +399,7 @@ Item* bear::Queue::getNextTail } template < class Item > -Item* bear::Queue::getPrevTail +Item* bear::Array::getPrevTail ( Item* pTail, unsigned int uiAllocated, @@ -415,7 +410,7 @@ Item* bear::Queue::getPrevTail } template < class Item > -Item* bear::Queue::withinBounds +Item* bear::Array::withinBounds ( Item* pValue, Item* pMinBound, diff --git a/lib/include/bear/Deque.h b/lib/include/bear/Deque.h new file mode 100644 index 0000000..27c8886 --- /dev/null +++ b/lib/include/bear/Deque.h @@ -0,0 +1,44 @@ +/* + * File: Deque.h + * Author: patrik + * + * Created on August 1, 2009, 7:12 PM + */ + +#pragma once + +#include "debug.h" +#include "mathw.h" +#include "Array.h" + +namespace bear +{ + /// ***** Header Class ***** + + template < class Item > + class Deque : protected Array + { + typedef Array inherited; + public: + Deque() : inherited() {} + virtual ~Deque() {} + + using inherited::init; + using inherited::fini; + + using inherited::alloc; + using inherited::trim; + + using inherited::isEmpty; + + using inherited::getFront; + using inherited::getBack; + + using inherited::pushFront; + using inherited::pushBack; + + using inherited::popFront; + using inherited::popBack; + }; + +} // namespace bear diff --git a/physics/src/entityCreator.cpp b/physics/src/entityCreator.cpp index 3f749e7..79ac89b 100644 --- a/physics/src/entityCreator.cpp +++ b/physics/src/entityCreator.cpp @@ -17,7 +17,7 @@ #include "entityCreator.h" -#include +#include #include "entityManager.h" #include "input/inputManager.h" @@ -29,8 +29,8 @@ /// ***** Private Variables ***** -typedef bear::Queue queBall; -typedef bear::Queue quePoly; +typedef bear::Deque queBall; +typedef bear::Deque quePoly; static queBall s_startBalls; static queBall s_mouseBalls; -- 2.10.2