A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
building-position-allocator.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (C) 2012 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
4
*
5
* This program is free software; you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License version 2 as
7
* published by the Free Software Foundation;
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program; if not, write to the Free Software
16
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
*
18
* Author: Nicola Baldo <nbaldo@cttc.es>
19
*/
20
#ifndef BUILDING_POSITION_ALLOCATOR_H
21
#define BUILDING_POSITION_ALLOCATOR_H
22
23
#include <ns3/ptr.h>
24
#include <ns3/position-allocator.h>
25
#include <ns3/node-container.h>
26
#include "ns3/random-variable-stream.h"
27
28
namespace
ns3 {
29
30
class
Building;
31
class
UniformRandomVariable;
32
33
39
class
RandomBuildingPositionAllocator
:
public
PositionAllocator
40
{
41
public
:
42
RandomBuildingPositionAllocator
();
43
44
// inherited from Object
45
static
TypeId
GetTypeId
(
void
);
46
47
// inherited from PositionAllocator
48
virtual
Vector
GetNext
(
void
)
const
;
49
58
int64_t
AssignStreams
(int64_t stream);
59
60
private
:
61
62
bool
m_withReplacement
;
63
mutable
std::vector< Ptr<Building> >
m_buildingListWithoutReplacement
;
64
66
Ptr<UniformRandomVariable>
m_rand
;
67
};
68
69
76
class
RandomRoomPositionAllocator
:
public
PositionAllocator
77
{
78
public
:
79
RandomRoomPositionAllocator
();
80
81
// inherited from Object
82
static
TypeId
GetTypeId
(
void
);
83
84
// inherited from PositionAllocator
85
virtual
Vector
GetNext
(
void
)
const
;
86
95
int64_t
AssignStreams
(int64_t stream);
96
97
private
:
98
99
struct
RoomInfo
100
{
101
Ptr<Building>
b
;
102
uint32_t
roomx
;
103
uint32_t
roomy
;
104
uint32_t
floor
;
105
};
106
mutable
std::vector<RoomInfo>
m_roomListWithoutReplacement
;
107
109
Ptr<UniformRandomVariable>
m_rand
;
110
};
111
112
113
119
class
SameRoomPositionAllocator
:
public
PositionAllocator
120
{
121
public
:
122
SameRoomPositionAllocator
();
123
SameRoomPositionAllocator
(
NodeContainer
c);
124
125
// inherited from Object
126
static
TypeId
GetTypeId
(
void
);
127
128
// inherited from PositionAllocator
129
virtual
Vector
GetNext
(
void
)
const
;
130
139
int64_t
AssignStreams
(int64_t);
140
141
private
:
142
143
NodeContainer
m_nodes
;
144
mutable
NodeContainer::Iterator
m_nodeIt
;
145
147
Ptr<UniformRandomVariable>
m_rand
;
148
};
149
154
class
FixedRoomPositionAllocator
:
public
PositionAllocator
155
{
156
public
:
157
167
FixedRoomPositionAllocator
(uint32_t
x
,
168
uint32_t y,
169
uint32_t z,
170
Ptr<Building>
b);
171
// inherited from Object
172
static
TypeId
GetTypeId
(
void
);
173
// inherited from PositionAllocator
174
virtual
Vector
GetNext
(
void
)
const
;
175
184
int64_t
AssignStreams
(int64_t);
185
186
private
:
187
188
uint32_t
roomx
;
189
uint32_t
roomy
;
190
uint32_t
floor
;
191
192
Ptr<Building>
bptr
;
193
195
Ptr<UniformRandomVariable>
m_rand
;
196
};
197
198
199
}
// namespace ns3
200
201
#endif
/* BUILDING_POSITION_ALLOCATOR_H */
ns3::RandomRoomPositionAllocator::m_rand
Ptr< UniformRandomVariable > m_rand
Provides uniform random variables.
Definition:
building-position-allocator.h:109
ns3::FixedRoomPositionAllocator::FixedRoomPositionAllocator
FixedRoomPositionAllocator(uint32_t x, uint32_t y, uint32_t z, Ptr< Building > b)
Definition:
building-position-allocator.cc:292
ns3::RandomRoomPositionAllocator::RoomInfo::roomx
uint32_t roomx
Definition:
building-position-allocator.h:102
ns3::Ptr< UniformRandomVariable >
ns3::NodeContainer::Iterator
std::vector< Ptr< Node > >::const_iterator Iterator
Definition:
node-container.h:41
ns3::RandomBuildingPositionAllocator::m_withReplacement
bool m_withReplacement
Definition:
building-position-allocator.h:62
ns3::SameRoomPositionAllocator::m_nodes
NodeContainer m_nodes
Definition:
building-position-allocator.h:143
ns3::SameRoomPositionAllocator::GetTypeId
static TypeId GetTypeId(void)
Definition:
building-position-allocator.cc:223
ns3::SameRoomPositionAllocator
Walks a given NodeContainer sequentially, and for each node allocate a new position randomly in the s...
Definition:
building-position-allocator.h:119
ns3::RandomRoomPositionAllocator::GetNext
virtual Vector GetNext(void) const
Definition:
building-position-allocator.cc:128
ns3::Vector3D
a 3d vector
Definition:
vector.h:31
ns3::RandomBuildingPositionAllocator::RandomBuildingPositionAllocator
RandomBuildingPositionAllocator()
Definition:
building-position-allocator.cc:44
ns3::RandomRoomPositionAllocator::GetTypeId
static TypeId GetTypeId(void)
Definition:
building-position-allocator.cc:118
ns3::FixedRoomPositionAllocator
Generate a random position uniformly distributed in the volume of a chosen room inside a chosen build...
Definition:
building-position-allocator.h:154
ns3::RandomBuildingPositionAllocator
Allocate each position by randomly chosing a building from the list of all buildings, and then randomly chosing a position inside the building.
Definition:
building-position-allocator.h:39
ns3::FixedRoomPositionAllocator::AssignStreams
int64_t AssignStreams(int64_t)
Assign a fixed random variable stream number to the random variables used by this model...
Definition:
building-position-allocator.cc:346
ns3::RandomRoomPositionAllocator::AssignStreams
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
Definition:
building-position-allocator.cc:187
ns3::FixedRoomPositionAllocator::GetNext
virtual Vector GetNext(void) const
Definition:
building-position-allocator.cc:316
ns3::FixedRoomPositionAllocator::m_rand
Ptr< UniformRandomVariable > m_rand
Provides uniform random variables.
Definition:
building-position-allocator.h:195
ns3::NodeContainer
keep track of a set of node pointers.
Definition:
node-container.h:38
ns3::SameRoomPositionAllocator::m_rand
Ptr< UniformRandomVariable > m_rand
Provides uniform random variables.
Definition:
building-position-allocator.h:147
ns3::RandomRoomPositionAllocator::RoomInfo::roomy
uint32_t roomy
Definition:
building-position-allocator.h:103
ns3::SameRoomPositionAllocator::SameRoomPositionAllocator
SameRoomPositionAllocator()
Definition:
building-position-allocator.cc:200
ns3::RandomRoomPositionAllocator::RoomInfo
Definition:
building-position-allocator.h:99
ns3::RandomRoomPositionAllocator
Allocate each position by randomly chosing a room from the list of all buildings, and then randomly c...
Definition:
building-position-allocator.h:76
ns3::FixedRoomPositionAllocator::bptr
Ptr< Building > bptr
Definition:
building-position-allocator.h:192
ns3::RandomBuildingPositionAllocator::AssignStreams
int64_t AssignStreams(int64_t stream)
Assign a fixed random variable stream number to the random variables used by this model...
Definition:
building-position-allocator.cc:101
ns3::RandomBuildingPositionAllocator::m_rand
Ptr< UniformRandomVariable > m_rand
Provides uniform random variables.
Definition:
building-position-allocator.h:66
ns3::RandomBuildingPositionAllocator::m_buildingListWithoutReplacement
std::vector< Ptr< Building > > m_buildingListWithoutReplacement
Definition:
building-position-allocator.h:63
ns3::FixedRoomPositionAllocator::roomx
uint32_t roomx
Definition:
building-position-allocator.h:188
ns3::FixedRoomPositionAllocator::floor
uint32_t floor
Definition:
building-position-allocator.h:190
ns3::RandomBuildingPositionAllocator::GetTypeId
static TypeId GetTypeId(void)
Definition:
building-position-allocator.cc:50
ns3::RandomRoomPositionAllocator::RoomInfo::b
Ptr< Building > b
Definition:
building-position-allocator.h:101
ns3::RandomRoomPositionAllocator::RoomInfo::floor
uint32_t floor
Definition:
building-position-allocator.h:104
ns3::FixedRoomPositionAllocator::GetTypeId
static TypeId GetTypeId(void)
Definition:
building-position-allocator.cc:306
ns3::RandomBuildingPositionAllocator::GetNext
virtual Vector GetNext(void) const
Definition:
building-position-allocator.cc:68
ns3::SameRoomPositionAllocator::m_nodeIt
NodeContainer::Iterator m_nodeIt
Definition:
building-position-allocator.h:144
ns3::SameRoomPositionAllocator::GetNext
virtual Vector GetNext(void) const
Definition:
building-position-allocator.cc:233
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:49
ns3::RandomRoomPositionAllocator::RandomRoomPositionAllocator
RandomRoomPositionAllocator()
Definition:
building-position-allocator.cc:112
ns3::SameRoomPositionAllocator::AssignStreams
int64_t AssignStreams(int64_t)
Assign a fixed random variable stream number to the random variables used by this model...
Definition:
building-position-allocator.cc:282
ns3::FixedRoomPositionAllocator::roomy
uint32_t roomy
Definition:
building-position-allocator.h:189
sample-rng-plot.x
list x
Definition:
sample-rng-plot.py:26
ns3::PositionAllocator
Allocate a set of positions.
Definition:
position-allocator.h:35
ns3::RandomRoomPositionAllocator::m_roomListWithoutReplacement
std::vector< RoomInfo > m_roomListWithoutReplacement
Definition:
building-position-allocator.h:106
src
buildings
helper
building-position-allocator.h
Generated on Sat Apr 19 2014 14:06:50 for ns-3 by
1.8.6