Class
List
Hierarchy
Modules
Common
Events
Math
Messages
Physics
Rendering
Sensors
Transport
Links
Gazebo Website
Wiki
Tutorials
Download
Report Documentation Issues
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
gazebo
math
Vector4.hh
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2012-2014 Open Source Robotics Foundation
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*
16
*/
17
/* Desc: 4 tuple
18
* Author: Nate Koenig
19
* Date: 19 Aug 2008
20
*/
21
22
#ifndef _VECTOR4_HH_
23
#define _VECTOR4_HH_
24
25
#include <iostream>
26
#include <fstream>
27
#include "
gazebo/math/Matrix4.hh
"
28
#include "
gazebo/util/system.hh
"
29
30
namespace
gazebo
31
{
32
namespace
math
33
{
36
39
class
GAZEBO_VISIBLE
Vector4
40
{
42
public
:
Vector4
();
43
49
public
:
Vector4
(
const
double
&_x,
const
double
&_y,
const
double
&_z,
50
const
double
&_w);
51
54
public
:
Vector4
(
const
Vector4
&_v);
55
56
58
public
:
virtual
~
Vector4
();
59
63
public
:
double
Distance(
const
Vector4
&_pt)
const
;
64
66
public
:
double
GetLength()
const
;
67
70
public
:
double
GetSquaredLength()
const
;
71
73
public
:
void
Normalize();
74
80
public
:
void
Set
(
double
_x = 0,
double
_y = 0 ,
double
_z = 0,
81
double
_w = 0);
82
86
public
:
Vector4
&operator =(
const
Vector4
&_v);
87
90
public
:
Vector4
&operator =(
double
_value);
91
95
public
:
Vector4
operator+(
const
Vector4
&_v)
const
;
96
100
public
:
const
Vector4
&operator+=(
const
Vector4
&_v);
101
105
public
:
Vector4
operator-(
const
Vector4
&_v)
const
;
106
110
public
:
const
Vector4
&operator-=(
const
Vector4
&_v);
111
117
public
:
const
Vector4
operator/(
const
Vector4
&_v)
const
;
118
124
public
:
const
Vector4
&operator/=(
const
Vector4
&_v);
125
131
public
:
const
Vector4
operator/(
double
_v)
const
;
132
136
public
:
const
Vector4
&operator/=(
double
_v);
137
143
public
:
const
Vector4
operator*(
const
Vector4
&_pt)
const
;
144
148
public
:
const
Vector4
operator*(
const
Matrix4
&_m)
const
;
149
155
public
:
const
Vector4
&operator*=(
const
Vector4
&_pt);
156
160
public
:
const
Vector4
operator*(
double
_v)
const
;
161
165
public
:
const
Vector4
&operator*=(
double
_v);
166
171
public
:
bool
operator ==(
const
Vector4
&_pt)
const
;
172
177
public
:
bool
operator!=(
const
Vector4
&_pt)
const
;
178
181
public
:
bool
IsFinite()
const
;
182
185
public
:
double
operator[](
unsigned
int
_index)
const
;
186
188
public
:
double
x
;
189
191
public
:
double
y
;
192
194
public
:
double
z
;
195
197
public
:
double
w
;
198
203
public
:
friend
std::ostream &
operator<<
(std::ostream &_out,
204
const
gazebo::math::Vector4
&_pt)
205
{
206
_out << _pt.
x
<<
" "
<< _pt.
y
<<
" "
<< _pt.
z
<<
" "
<< _pt.
w
;
207
return
_out;
208
}
209
214
public
:
friend
std::istream &operator >> (std::istream &_in,
215
gazebo::math::Vector4
&_pt)
216
{
217
// Skip white spaces
218
_in.setf(std::ios_base::skipws);
219
_in >> _pt.
x
>> _pt.
y
>> _pt.
z
>> _pt.
w
;
220
return
_in;
221
}
222
};
224
}
225
}
226
#endif
227
228
229