src/buildings/model/building.h
author Marco Miozzo <marco.miozzo@cttc.es>
Wed, 28 Sep 2011 16:48:53 +0200
changeset 8248 986f7db9f056
parent 8209 src/mobility/model/building.h@7a795d377e61
child 8332 c6d3c7862cfb
permissions -rw-r--r--
Move Buildings related class to buildings folder
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     1
/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     2
/*
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     3
 * Copyright (c) 2011 Centre Tecnologic de Telecomunicacions de Catalunya (CTTC)
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     4
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or modify
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     6
 * it under the terms of the GNU General Public License version 2 as
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     7
 * published by the Free Software Foundation;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     8
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
     9
 * This program is distributed in the hope that it will be useful,
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    12
 * GNU General Public License for more details.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    13
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    14
 * You should have received a copy of the GNU General Public License
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    15
 * along with this program; if not, write to the Free Software
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    16
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    17
 *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    18
 * Author: Marco Miozzo  <marco.miozzo@cttc.es>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    19
 * 
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    20
 */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    21
#ifndef BUILDING_H
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    22
#define BUILDING_H
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    23
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    24
#include <ns3/attribute.h>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    25
#include <ns3/attribute-helper.h>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    26
#include <ns3/vector.h>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    27
#include <ns3/box.h>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    28
#include <ns3/simple-ref-count.h>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    29
8209
7a795d377e61 Finalized pathloss model compound test: passed
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8194
diff changeset
    30
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    31
namespace ns3 {
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    32
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    33
/**
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    34
 * \ingroup mobility
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    35
 * \brief a 3d building block
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    36
 */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    37
class Building : public SimpleRefCount<Building>
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    38
{
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    39
public:
8209
7a795d377e61 Finalized pathloss model compound test: passed
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8194
diff changeset
    40
  
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    41
  enum BuildingType_t
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    42
    {
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    43
      Residential, Office, Commercial
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    44
    };
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    45
  enum ExtWallsType_t
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    46
    {
8187
92c99a893aa2 Add StoneBlocks external walls penetration model
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8185
diff changeset
    47
      Wood, ConcreteWithWindows, ConcreteWithoutWindows, StoneBlocks
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    48
    };
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    49
  /**
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    50
  * \param _xMin x coordinates of left boundary.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    51
  * \param _xMax x coordinates of right boundary.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    52
  * \param _yMin y coordinates of bottom boundary.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    53
  * \param _yMax y coordinates of top boundary.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    54
  * \param _zMin z coordinates of down boundary.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    55
  * \param _zMax z coordinates of up boundary.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    56
  * \param _nFloors number of floors
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    57
  * \param _nRoomX number of rooms in the x axis
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    58
  * \param _nRoomY number of rooms in the y axis
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    59
  *
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    60
  * Create a building.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    61
  */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    62
  Building (double _xMin, double _xMax,
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    63
            double _yMin, double _yMax,
8194
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    64
            double _zMin, double _zMax/*,
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    65
            uint8_t _nFloors, uint8_t _nRoomX, uint8_t _nRoomY*/);
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    66
  
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    67
  /**
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    68
  * Create a zero-sized building located at coordinates (0.0,0.0,0.0)
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    69
  * and with no floors and 1 room.
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    70
  */
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    71
  Building ();
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
    72
  
8194
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    73
  
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
    74
  /**
8194
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    75
  * \param t the type of building (i.e., Residential, Office, Commercial)
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    76
  *
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    77
  * This method allows to set building type (default is Residential)
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    78
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    79
  void SetBuildingType (Building::BuildingType_t t);
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    80
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    81
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    82
  * \param t the type of external walls (i.e., Wood, ConcreteWithWindows,
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    83
  * ConcreteWithoutWindows and StoneBlocks), used for evaluating the loss
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    84
  * due to the penetration of external walls in outdoor <-> indoor comm.
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    85
  *
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    86
  * This method allows to set external walls type (default is Residential)
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    87
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    88
  void SetExtWallsType (Building::ExtWallsType_t t);
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    89
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    90
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    91
  * \param nfloors the number of floors in the building
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    92
  *
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    93
  * This method allows to set the number of floors in the building
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    94
  * (default is 1)
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    95
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    96
  void SetFloorsNumber (uint8_t nfloors);
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    97
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    98
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
    99
  * \param nroomx the number of rooms in the x axis
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   100
  *
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   101
  * This method allows to set the number of room in x-axis (default is 1)
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   102
  * The rooms are disposed as a grid of nº of rooms in X per nº of rooms in Y
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   103
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   104
  void SetNumberRoomX (uint8_t nroomx);
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   105
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   106
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   107
  * \param nroomy the number of floors in the building
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   108
  *
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   109
  * This method allows to set the number of floors in the building
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   110
  * (default is 1)
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   111
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   112
  void SetNumberRoomY (uint8_t nroomy);
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   113
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   114
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   115
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   116
  * \return the type of building
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   117
  * Return the type of building (i.e., Residential, Office, Commercial)
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   118
  */
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   119
  BuildingType_t GetBuildingType ();
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   120
  
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   121
  /**
8194
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   122
  * \return the type of external walls
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   123
  * Return the type of external walls (i.e., Wood, ConcreteWithWindows,
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   124
  * ConcreteWithoutWindows)
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   125
  */
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   126
  ExtWallsType_t GetExtWallsType ();
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   127
  
8194
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   128
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   129
  * \return the number of floors
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   130
  * Return the number of floors
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   131
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   132
  uint8_t GetNumberFloors ();
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   133
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   134
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   135
  * \return the number of room in x-axis
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   136
  * Return the number of room in x-axis
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   137
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   138
  uint8_t GetNumberRoomX ();
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   139
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   140
  /**
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   141
  * \return the number of room in y-axis
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   142
  * Return the number of room in y-axis
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   143
  */
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   144
  uint8_t GetNumberRoomY ();
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   145
  
481638aeb837 Add floor and room management methods to Building class
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8187
diff changeset
   146
  
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   147
private:
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   148
  Box m_buldingBounds;
8209
7a795d377e61 Finalized pathloss model compound test: passed
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8194
diff changeset
   149
  /**
7a795d377e61 Finalized pathloss model compound test: passed
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8194
diff changeset
   150
  * number of floors must be greater then 0 and 1 means only one floor
7a795d377e61 Finalized pathloss model compound test: passed
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8194
diff changeset
   151
  * (i.e., groundfloor)
7a795d377e61 Finalized pathloss model compound test: passed
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8194
diff changeset
   152
  */
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   153
  uint8_t m_floor;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   154
  uint8_t m_roomX;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   155
  uint8_t m_roomY;
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   156
  
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   157
  uint8_t m_buildingId;
8185
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   158
  BuildingType_t m_buildingType;
34b4d9b91019 Include pathloss models into BuildingsPropagationLossModel: Okumura Hata, ITU-R P.1411, ITU-R P.1238 and wall penetration loss
Marco Miozzo <marco.miozzo@cttc.es>
parents: 8184
diff changeset
   159
  ExtWallsType_t m_externalWalls;
8184
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   160
  
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   161
};
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   162
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   163
//std::ostream &operator << (std::ostream &os, const Box &box);
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   164
//std::istream &operator >> (std::istream &is, Box &box);
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   165
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   166
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   167
ATTRIBUTE_HELPER_HEADER (Building);
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   168
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   169
} // namespace ns3
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   170
b2d61f172004 Add Building class, BuildingMobilityModel and BuildingPropagationModel
Marco Miozzo <marco.miozzo@cttc.es>
parents:
diff changeset
   171
#endif /* BUILDING_H */