View | Details | Raw Unified | Return to bug 1384
Collapse All | Expand All

(-)a/src/core/model/vector.cc (+137 lines)
 Lines 47-52   Vector3D::Vector3D () Link Here 
47
{
47
{
48
}
48
}
49
49
50
double
51
Vector3D::GetLength () const
52
{
53
  return sqrt (x*x + y*y + z*z);
54
}
55
56
Vector3D& 
57
Vector3D::operator += (const Vector3D &v)
58
{
59
  x += v.x;
60
  y += v.y;
61
  z += v.z;
62
63
  return *this;
64
}
65
66
Vector3D& 
67
Vector3D::operator += (double v)
68
{
69
  x += v;
70
  y += v;
71
  z += v;
72
73
  return *this;
74
}
75
76
Vector3D  
77
Vector3D::operator + (const Vector3D &v) const
78
{
79
  return Vector3D (x+v.x, y+v.y, z+v.z);
80
}
81
82
Vector3D  
83
Vector3D::operator + (double v) const
84
{
85
  return Vector3D (x+v, y+v, z+v);
86
}
87
88
Vector3D  
89
Vector3D::operator * (const Vector3D &v) const
90
{
91
  return Vector3D (x*v.x, y*v.y, z*v.z);
92
}
93
94
Vector3D  
95
Vector3D::operator * (double v) const
96
{
97
  return Vector3D (x*v, y*v, z*v);
98
}
99
100
Vector3D
101
Vector3D::operator - (const Vector3D &v) const
102
{
103
  return Vector3D (x-v.x, y-v.y, z-v.z);
104
}
105
106
Vector3D
107
Vector3D::operator / (double div) const
108
{
109
  return Vector3D (x/div, y/div, z/div);
110
}
111
50
Vector2D::Vector2D (double _x, double _y)
112
Vector2D::Vector2D (double _x, double _y)
51
  : x (_x),
113
  : x (_x),
52
    y (_y)
114
    y (_y)
 Lines 60-65   Vector2D::Vector2D () Link Here 
60
}
122
}
61
123
62
double
124
double
125
Vector2D::GetLength () const
126
{
127
  return sqrt (x*x + y*y);
128
}
129
130
Vector2D& 
131
Vector2D::operator += (const Vector2D &v)
132
{
133
  x += v.x;
134
  y += v.y;
135
136
  return *this;
137
}
138
139
Vector2D& 
140
Vector2D::operator += (double v)
141
{
142
  x += v;
143
  y += v;
144
145
  return *this;
146
}
147
148
Vector2D  
149
Vector2D::operator + (const Vector2D &v) const
150
{
151
  return Vector2D (x+v.x, y+v.y);
152
}
153
154
Vector2D  
155
Vector2D::operator + (double v) const
156
{
157
  return Vector2D (x+v, y+v);
158
}
159
160
Vector2D  
161
Vector2D::operator * (const Vector2D &v) const
162
{
163
  return Vector2D (x*v.x, y*v.y);
164
}
165
166
Vector2D  
167
Vector2D::operator * (double v) const
168
{
169
  return Vector2D (x*v, y*v);
170
}
171
172
Vector2D
173
Vector2D::operator - (const Vector2D &v) const
174
{
175
  return Vector2D (x-v.x, y-v.y);
176
}
177
178
Vector2D
179
Vector2D::operator / (double div) const
180
{
181
  return Vector2D (x/div, y/div);
182
}
183
184
double
63
CalculateDistance (const Vector3D &a, const Vector3D &b)
185
CalculateDistance (const Vector3D &a, const Vector3D &b)
64
{
186
{
65
  double dx = b.x - a.x;
187
  double dx = b.x - a.x;
 Lines 77-82   CalculateDistance (const Vector2D &a, const Vector2D &b) Link Here 
77
  return distance;
199
  return distance;
78
}
200
}
79
201
202
203
double
204
ScalarMultiplication (const Vector3D &a, const Vector3D &b)
205
{
206
  Vector3D tmp = a * b;
207
  return tmp.x + tmp.y + tmp.z;
208
}
209
210
double
211
ScalarMultiplication (const Vector2D &a, const Vector2D &b)
212
{
213
  Vector2D tmp = a * b;
214
  return tmp.x + tmp.y;
215
}
216
80
std::ostream &operator << (std::ostream &os, const Vector3D &vector)
217
std::ostream &operator << (std::ostream &os, const Vector3D &vector)
81
{
218
{
82
  os << vector.x << ":" << vector.y << ":" << vector.z;
219
  os << vector.x << ":" << vector.y << ":" << vector.z;
(-)a/src/core/model/vector.h (-1 / +35 lines)
 Lines 55-60   public: Link Here 
55
   * z coordinate of vector
55
   * z coordinate of vector
56
   */
56
   */
57
  double z;
57
  double z;
58
59
  double GetLength () const;
60
61
  Vector3D& operator += (const Vector3D &);  
62
  Vector3D& operator += (double);
63
  Vector3D  operator + (const Vector3D &) const;
64
  Vector3D  operator + (double) const;
65
  Vector3D  operator * (const Vector3D &) const;
66
  Vector3D  operator * (double v) const;
67
  Vector3D  operator - (const Vector3D &) const;
68
  Vector3D  operator / (double) const;
58
};
69
};
59
70
60
/**
71
/**
 Lines 82-87   public: Link Here 
82
   * y coordinate of vector
93
   * y coordinate of vector
83
   */
94
   */
84
  double y;
95
  double y;
96
97
  double GetLength () const;
98
99
  Vector2D& operator += (const Vector2D &);  
100
  Vector2D& operator += (double);
101
  Vector2D  operator + (const Vector2D &) const;
102
  Vector2D  operator + (double) const;
103
  Vector2D  operator * (const Vector2D &) const;
104
  Vector2D  operator * (double v) const;
105
  Vector2D  operator - (const Vector2D &) const;
106
  Vector2D  operator / (double) const;
85
};
107
};
86
108
87
/**
109
/**
 Lines 99-104   double CalculateDistance (const Vector3D &a, const Vector3D &b); Link Here 
99
double CalculateDistance (const Vector2D &a, const Vector2D &b);
121
double CalculateDistance (const Vector2D &a, const Vector2D &b);
100
122
101
/**
123
/**
124
 * \brief Calculate scalar multiplication between two vectors
125
 * \param a one point
126
 * \param b another point
127
 */
128
double ScalarMultiplication (const Vector3D &a, const Vector3D &b);
129
/**
130
 * \brief Calculate scalar multiplication between two vectors
131
 * \param a one point
132
 * \param b another point
133
 */
134
double ScalarMultiplication (const Vector2D &a, const Vector2D &b);
135
136
/**
102
 * \class ns3::Vector3DValue
137
 * \class ns3::Vector3DValue
103
 * \brief hold objects of type ns3::Vector3D
138
 * \brief hold objects of type ns3::Vector3D
104
 */
139
 */
105
- 

Return to bug 1384