add ListPositionAllocator
This commit is contained in:
@@ -46,6 +46,33 @@ PositionAllocator::PositionAllocator ()
|
||||
PositionAllocator::~PositionAllocator ()
|
||||
{}
|
||||
|
||||
NS_OBJECT_ENSURE_REGISTERED (ListPositionAllocator);
|
||||
|
||||
TypeId
|
||||
ListPositionAllocator::GetTypeId (void)
|
||||
{
|
||||
static TypeId tid = TypeId ("ListPositionAllocator")
|
||||
.SetParent<PositionAllocator> ()
|
||||
.AddConstructor<ListPositionAllocator> ()
|
||||
;
|
||||
return tid;
|
||||
}
|
||||
ListPositionAllocator::ListPositionAllocator ()
|
||||
{}
|
||||
void
|
||||
ListPositionAllocator::Add (Vector v)
|
||||
{
|
||||
m_positions.push_back (v);
|
||||
m_current = m_positions.begin ();
|
||||
}
|
||||
Vector
|
||||
ListPositionAllocator::GetNext (void) const
|
||||
{
|
||||
Vector v = *m_current;
|
||||
m_current++;
|
||||
return v;
|
||||
}
|
||||
|
||||
TypeId
|
||||
GridPositionAllocator::GetTypeId (void)
|
||||
{
|
||||
|
||||
@@ -43,7 +43,19 @@ public:
|
||||
virtual Vector GetNext (void) const = 0;
|
||||
};
|
||||
|
||||
class GridPositionAllocator : public Object
|
||||
class ListPositionAllocator : public PositionAllocator
|
||||
{
|
||||
public:
|
||||
static TypeId GetTypeId (void);
|
||||
ListPositionAllocator ();
|
||||
void Add (Vector v);
|
||||
virtual Vector GetNext (void) const;
|
||||
private:
|
||||
std::vector<Vector> m_positions;
|
||||
mutable std::vector<Vector>::const_iterator m_current;
|
||||
};
|
||||
|
||||
class GridPositionAllocator : public PositionAllocator
|
||||
{
|
||||
public:
|
||||
static TypeId GetTypeId (void);
|
||||
|
||||
Reference in New Issue
Block a user