1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2006,2007 INRIA
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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 #ifndef CONSTANT_POSITION_MOBILITY_MODEL_H
21 #define CONSTANT_POSITION_MOBILITY_MODEL_H
22 
23 #include "mobility-model.h"
24 
25 namespace ns3 {
26 
27 /**
28  * \ingroup mobility
29  *
30  * \brief Mobility model for which the current position does not change once it has been set and until it is set again explicitly to a new value.
31  */
32 class ConstantPositionMobilityModel : public MobilityModel
33 {
34 public:
35   /**
36    * Register this type with the TypeId system.
37    * \return the object TypeId
38    */
39   static TypeId GetTypeId (void);
40   /**
41    * Create a position located at coordinates (0,0,0)
42    */
43   ConstantPositionMobilityModel ();
44   virtual ~ConstantPositionMobilityModel ();
45 
46 private:
47   virtual Vector DoGetPosition (void) const;
48   virtual void DoSetPosition (const Vector &position);
49   virtual Vector DoGetVelocity (void) const;
50 
51   Vector m_position; //!< the constant position
52 };
53 
54 } // namespace ns3
55 
56 #endif /* CONSTANT_POSITION_MOBILITY_MODEL_H */
57