#ifndef ROOT_Math_GenVector_DisplacementVector3D
#define ROOT_Math_GenVector_DisplacementVector3D 1
#ifndef ROOT_Math_GenVector_Cartesian3D
#include "Math/GenVector/Cartesian3D.h"
#endif
#ifndef ROOT_Math_GenVector_PositionVector3Dfwd
#include "Math/GenVector/PositionVector3Dfwd.h"
#endif
#ifndef ROOT_Math_GenVector_GenVectorIO
#include "Math/GenVector/GenVectorIO.h"
#endif
#ifndef ROOT_Math_GenVector_BitReproducible
#include "Math/GenVector/BitReproducible.h"
#endif
#ifndef ROOT_Math_GenVector_CoordinateSystemTags
#include "Math/GenVector/CoordinateSystemTags.h"
#endif
#include <cassert>
namespace ROOT {
namespace Math {
template <class CoordSystem, class Tag = DefaultCoordinateSystemTag >
class DisplacementVector3D {
public:
typedef typename CoordSystem::Scalar Scalar;
typedef CoordSystem CoordinateType;
typedef Tag CoordinateSystemTag;
DisplacementVector3D ( ) : fCoordinates() { }
DisplacementVector3D(Scalar a, Scalar b, Scalar c) :
fCoordinates ( a , b, c ) { }
template <class OtherCoords>
explicit DisplacementVector3D( const DisplacementVector3D<OtherCoords, Tag> & v) :
fCoordinates ( v.Coordinates() ) { }
template <class OtherCoords>
explicit DisplacementVector3D( const PositionVector3D<OtherCoords,Tag> & p) :
fCoordinates ( p.Coordinates() ) { }
template <class ForeignVector>
explicit DisplacementVector3D( const ForeignVector & v) :
fCoordinates ( Cartesian3D<Scalar>( v.x(), v.y(), v.z() ) ) { }
#ifdef LATER
template <class LAVector>
DisplacementVector3D(const LAVector & v, size_t index0 ) {
fCoordinates = CoordSystem ( v[index0], v[index0+1], v[index0+2] );
}
#endif
template <class OtherCoords>
DisplacementVector3D & operator=
( const DisplacementVector3D<OtherCoords, Tag> & v) {
fCoordinates = v.Coordinates();
return *this;
}
template <class OtherCoords>
DisplacementVector3D & operator=
( const PositionVector3D<OtherCoords,Tag> & rhs) {
SetXYZ(rhs.x(), rhs.y(), rhs.z());
return *this;
}
template <class ForeignVector>
DisplacementVector3D & operator= ( const ForeignVector & v) {
SetXYZ( v.x(), v.y(), v.z() );
return *this;
}
#ifdef LATER
template <class LAVector>
DisplacementVector3D & assignFrom(const LAVector & v, size_t index0 = 0) {
fCoordinates = CoordSystem ( v[index0], v[index0+1], v[index0+2] );
return *this;
}
#endif
CoordSystem Coordinates() const {
return fCoordinates;
}
DisplacementVector3D<CoordSystem, Tag>& SetCoordinates( const Scalar src[] )
{ fCoordinates.SetCoordinates(src); return *this; }
DisplacementVector3D<CoordSystem, Tag>& SetCoordinates( Scalar a, Scalar b, Scalar c )
{ fCoordinates.SetCoordinates(a, b, c); return *this; }
template <class IT>
#ifndef NDEBUG
DisplacementVector3D<CoordSystem, Tag>& SetCoordinates( IT begin, IT end )
#else
DisplacementVector3D<CoordSystem, Tag>& SetCoordinates( IT begin, IT )
#endif
{ IT a = begin; IT b = ++begin; IT c = ++begin;
assert (++begin==end);
SetCoordinates (*a,*b,*c);
return *this;
}
void GetCoordinates( Scalar& a, Scalar& b, Scalar& c ) const
{ fCoordinates.GetCoordinates(a, b, c); }
void GetCoordinates( Scalar dest[] ) const
{ fCoordinates.GetCoordinates(dest); }
template <class IT>
#ifndef NDEBUG
void GetCoordinates( IT begin, IT end ) const
#else
void GetCoordinates( IT begin, IT ) const
#endif
{ IT a = begin; IT b = ++begin; IT c = ++begin;
assert (++begin==end);
GetCoordinates (*a,*b,*c);
}
template <class IT>
void GetCoordinates( IT begin) const {
Scalar a,b,c = 0;
GetCoordinates (a,b,c);
*begin++ = a;
*begin++ = b;
*begin = c;
}
DisplacementVector3D<CoordSystem, Tag>& SetXYZ (Scalar a, Scalar b, Scalar c) {
fCoordinates.SetXYZ(a,b,c);
return *this;
}
bool operator==(const DisplacementVector3D & rhs) const {
return fCoordinates==rhs.fCoordinates;
}
bool operator!= (const DisplacementVector3D & rhs) const {
return !(operator==(rhs));
}
Scalar X() const { return fCoordinates.X(); }
Scalar Y() const { return fCoordinates.Y(); }
Scalar Z() const { return fCoordinates.Z(); }
Scalar R() const { return fCoordinates.R(); }
Scalar Theta() const { return fCoordinates.Theta(); }
Scalar Phi() const { return fCoordinates.Phi(); }
Scalar Eta() const { return fCoordinates.Eta(); }
Scalar Rho() const { return fCoordinates.Rho(); }
Scalar Mag2() const { return fCoordinates.Mag2();}
Scalar Perp2() const { return fCoordinates.Perp2();}
DisplacementVector3D Unit() const {
Scalar tot = R();
return tot == 0 ? *this : DisplacementVector3D(*this) / tot;
}
DisplacementVector3D<CoordSystem, Tag>& SetX (Scalar xx) { fCoordinates.SetX(xx); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetY (Scalar yy) { fCoordinates.SetY(yy); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetZ (Scalar zz) { fCoordinates.SetZ(zz); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetR (Scalar rr) { fCoordinates.SetR(rr); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetTheta (Scalar ang) { fCoordinates.SetTheta(ang); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetPhi (Scalar ang) { fCoordinates.SetPhi(ang); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetRho (Scalar rr) { fCoordinates.SetRho(rr); return *this;}
DisplacementVector3D<CoordSystem, Tag>& SetEta (Scalar etaval) { fCoordinates.SetEta(etaval); return *this;}
template< class OtherCoords >
Scalar Dot( const DisplacementVector3D<OtherCoords,Tag> & v) const {
return X()*v.X() + Y()*v.Y() + Z()*v.Z();
}
template< class OtherVector >
Scalar Dot( const OtherVector & v) const {
return X()*v.x() + Y()*v.y() + Z()*v.z();
}
template <class OtherCoords>
DisplacementVector3D Cross( const DisplacementVector3D<OtherCoords,Tag> & v) const {
DisplacementVector3D result;
result.SetXYZ ( Y()*v.Z() - v.Y()*Z(),
Z()*v.X() - v.Z()*X(),
X()*v.Y() - v.X()*Y() );
return result;
}
template <class OtherVector>
DisplacementVector3D Cross( const OtherVector & v) const {
DisplacementVector3D result;
result.SetXYZ ( Y()*v.z() - v.y()*Z(),
Z()*v.x() - v.z()*X(),
X()*v.y() - v.x()*Y() );
return result;
}
template <class OtherCoords>
DisplacementVector3D & operator+=
(const DisplacementVector3D<OtherCoords,Tag> & v) {
SetXYZ( X() + v.X(), Y() + v.Y(), Z() + v.Z() );
return *this;
}
template <class OtherCoords>
DisplacementVector3D & operator-=
(const DisplacementVector3D<OtherCoords,Tag> & v) {
SetXYZ( x() - v.x(), y() - v.y(), z() - v.z() );
return *this;
}
DisplacementVector3D & operator*= (Scalar a) {
fCoordinates.Scale(a);
return *this;
}
DisplacementVector3D & operator/= (Scalar a) {
fCoordinates.Scale(1/a);
return *this;
}
DisplacementVector3D operator * ( Scalar a ) const {
DisplacementVector3D tmp(*this);
tmp *= a;
return tmp;
}
DisplacementVector3D operator - ( ) const {
return operator*( Scalar(-1) );
}
DisplacementVector3D operator + ( ) const {return *this;}
DisplacementVector3D operator/ (Scalar a) const {
DisplacementVector3D tmp(*this);
tmp /= a;
return tmp;
}
Scalar x() const { return fCoordinates.X(); }
Scalar y() const { return fCoordinates.Y(); }
Scalar z() const { return fCoordinates.Z(); }
Scalar r() const { return fCoordinates.R(); }
Scalar theta() const { return fCoordinates.Theta(); }
Scalar phi() const { return fCoordinates.Phi(); }
Scalar eta() const { return fCoordinates.Eta(); }
Scalar rho() const { return fCoordinates.Rho(); }
Scalar mag2() const { return fCoordinates.Mag2(); }
Scalar perp2() const { return fCoordinates.Perp2(); }
DisplacementVector3D unit() const {return Unit();}
private:
CoordSystem fCoordinates;
#ifdef NOT_SURE_THIS_SHOULD_BE_FORBIDDEN
template <class T2>
DisplacementVector3D Cross( const PositionVector3D<T2> & ) const;
#endif
template <class OtherCoords, class OtherTag>
explicit DisplacementVector3D( const DisplacementVector3D<OtherCoords, OtherTag> & ) {}
template <class OtherCoords, class OtherTag>
explicit DisplacementVector3D( const PositionVector3D<OtherCoords, OtherTag> & ) {}
template <class OtherCoords, class OtherTag>
DisplacementVector3D & operator=( const DisplacementVector3D<OtherCoords, OtherTag> & );
template <class OtherCoords, class OtherTag>
DisplacementVector3D & operator=( const PositionVector3D<OtherCoords, OtherTag> & );
template <class OtherCoords, class OtherTag>
DisplacementVector3D & operator+=(const DisplacementVector3D<OtherCoords, OtherTag> & );
template <class OtherCoords, class OtherTag>
DisplacementVector3D & operator-=(const DisplacementVector3D<OtherCoords, OtherTag> & );
template<class OtherCoords, class OtherTag >
Scalar Dot( const DisplacementVector3D<OtherCoords, OtherTag> & ) const;
template<class OtherCoords, class OtherTag >
DisplacementVector3D Cross( const DisplacementVector3D<OtherCoords, OtherTag> & ) const;
};
template <class CoordSystem1, class CoordSystem2, class U>
inline
DisplacementVector3D<CoordSystem1,U>
operator+( DisplacementVector3D<CoordSystem1,U> v1,
const DisplacementVector3D<CoordSystem2,U> & v2) {
return v1 += v2;
}
template <class CoordSystem1, class CoordSystem2, class U>
inline
DisplacementVector3D<CoordSystem1,U>
operator-( DisplacementVector3D<CoordSystem1,U> v1,
DisplacementVector3D<CoordSystem2,U> const & v2) {
return v1 -= v2;
}
template <class CoordSystem, class U>
inline
DisplacementVector3D<CoordSystem,U>
operator * ( typename DisplacementVector3D<CoordSystem,U>::Scalar a,
DisplacementVector3D<CoordSystem,U> v) {
return v *= a;
}
template< class char_t, class traits_t, class T, class U >
inline
std::basic_ostream<char_t,traits_t> &
operator << ( std::basic_ostream<char_t,traits_t> & os
, DisplacementVector3D<T,U> const & v
)
{
if( !os ) return os;
typename T::Scalar a, b, c;
v.GetCoordinates(a, b, c);
if( detail::get_manip( os, detail::bitforbit ) ) {
detail::set_manip( os, detail::bitforbit, '\00' );
typedef GenVector_detail::BitReproducible BR;
BR::Output(os, a);
BR::Output(os, b);
BR::Output(os, c);
}
else {
os << detail::get_manip( os, detail::open ) << a
<< detail::get_manip( os, detail::sep ) << b
<< detail::get_manip( os, detail::sep ) << c
<< detail::get_manip( os, detail::close );
}
return os;
}
template< class char_t, class traits_t, class T, class U >
inline
std::basic_istream<char_t,traits_t> &
operator >> ( std::basic_istream<char_t,traits_t> & is
, DisplacementVector3D<T,U> & v
)
{
if( !is ) return is;
typename T::Scalar a, b, c;
if( detail::get_manip( is, detail::bitforbit ) ) {
detail::set_manip( is, detail::bitforbit, '\00' );
typedef GenVector_detail::BitReproducible BR;
BR::Input(is, a);
BR::Input(is, b);
BR::Input(is, c);
}
else {
detail::require_delim( is, detail::open ); is >> a;
detail::require_delim( is, detail::sep ); is >> b;
detail::require_delim( is, detail::sep ); is >> c;
detail::require_delim( is, detail::close );
}
if( is )
v.SetCoordinates(a, b, c);
return is;
}
}
}
#endif /* ROOT_Math_GenVector_DisplacementVector3D */
DisplacementVector3D.h:10 DisplacementVector3D.h:11 DisplacementVector3D.h:12 DisplacementVector3D.h:13 DisplacementVector3D.h:14 DisplacementVector3D.h:15 DisplacementVector3D.h:16 DisplacementVector3D.h:17 DisplacementVector3D.h:18 DisplacementVector3D.h:19 DisplacementVector3D.h:20 DisplacementVector3D.h:21 DisplacementVector3D.h:22 DisplacementVector3D.h:23 DisplacementVector3D.h:24 DisplacementVector3D.h:25 DisplacementVector3D.h:26 DisplacementVector3D.h:27 DisplacementVector3D.h:28 DisplacementVector3D.h:29 DisplacementVector3D.h:30 DisplacementVector3D.h:31 DisplacementVector3D.h:32 DisplacementVector3D.h:33 DisplacementVector3D.h:34 DisplacementVector3D.h:35 DisplacementVector3D.h:36 DisplacementVector3D.h:37 DisplacementVector3D.h:38 DisplacementVector3D.h:39 DisplacementVector3D.h:40 DisplacementVector3D.h:41 DisplacementVector3D.h:42 DisplacementVector3D.h:43 DisplacementVector3D.h:44 DisplacementVector3D.h:45 DisplacementVector3D.h:46 DisplacementVector3D.h:47 DisplacementVector3D.h:48 DisplacementVector3D.h:49 DisplacementVector3D.h:50 DisplacementVector3D.h:51 DisplacementVector3D.h:52 DisplacementVector3D.h:53 DisplacementVector3D.h:54 DisplacementVector3D.h:55 DisplacementVector3D.h:56 DisplacementVector3D.h:57 DisplacementVector3D.h:58 DisplacementVector3D.h:59 DisplacementVector3D.h:60 DisplacementVector3D.h:61 DisplacementVector3D.h:62 DisplacementVector3D.h:63 DisplacementVector3D.h:64 DisplacementVector3D.h:65 DisplacementVector3D.h:66 DisplacementVector3D.h:67 DisplacementVector3D.h:68 DisplacementVector3D.h:69 DisplacementVector3D.h:70 DisplacementVector3D.h:71 DisplacementVector3D.h:72 DisplacementVector3D.h:73 DisplacementVector3D.h:74 DisplacementVector3D.h:75 DisplacementVector3D.h:76 DisplacementVector3D.h:77 DisplacementVector3D.h:78 DisplacementVector3D.h:79 DisplacementVector3D.h:80 DisplacementVector3D.h:81 DisplacementVector3D.h:82 DisplacementVector3D.h:83 DisplacementVector3D.h:84 DisplacementVector3D.h:85 DisplacementVector3D.h:86 DisplacementVector3D.h:87 DisplacementVector3D.h:88 DisplacementVector3D.h:89 DisplacementVector3D.h:90 DisplacementVector3D.h:91 DisplacementVector3D.h:92 DisplacementVector3D.h:93 DisplacementVector3D.h:94 DisplacementVector3D.h:95 DisplacementVector3D.h:96 DisplacementVector3D.h:97 DisplacementVector3D.h:98 DisplacementVector3D.h:99 DisplacementVector3D.h:100 DisplacementVector3D.h:101 DisplacementVector3D.h:102 DisplacementVector3D.h:103 DisplacementVector3D.h:104 DisplacementVector3D.h:105 DisplacementVector3D.h:106 DisplacementVector3D.h:107 DisplacementVector3D.h:108 DisplacementVector3D.h:109 DisplacementVector3D.h:110 DisplacementVector3D.h:111 DisplacementVector3D.h:112 DisplacementVector3D.h:113 DisplacementVector3D.h:114 DisplacementVector3D.h:115 DisplacementVector3D.h:116 DisplacementVector3D.h:117 DisplacementVector3D.h:118 DisplacementVector3D.h:119 DisplacementVector3D.h:120 DisplacementVector3D.h:121 DisplacementVector3D.h:122 DisplacementVector3D.h:123 DisplacementVector3D.h:124 DisplacementVector3D.h:125 DisplacementVector3D.h:126 DisplacementVector3D.h:127 DisplacementVector3D.h:128 DisplacementVector3D.h:129 DisplacementVector3D.h:130 DisplacementVector3D.h:131 DisplacementVector3D.h:132 DisplacementVector3D.h:133 DisplacementVector3D.h:134 DisplacementVector3D.h:135 DisplacementVector3D.h:136 DisplacementVector3D.h:137 DisplacementVector3D.h:138 DisplacementVector3D.h:139 DisplacementVector3D.h:140 DisplacementVector3D.h:141 DisplacementVector3D.h:142 DisplacementVector3D.h:143 DisplacementVector3D.h:144 DisplacementVector3D.h:145 DisplacementVector3D.h:146 DisplacementVector3D.h:147 DisplacementVector3D.h:148 DisplacementVector3D.h:149 DisplacementVector3D.h:150 DisplacementVector3D.h:151 DisplacementVector3D.h:152 DisplacementVector3D.h:153 DisplacementVector3D.h:154 DisplacementVector3D.h:155 DisplacementVector3D.h:156 DisplacementVector3D.h:157 DisplacementVector3D.h:158 DisplacementVector3D.h:159 DisplacementVector3D.h:160 DisplacementVector3D.h:161 DisplacementVector3D.h:162 DisplacementVector3D.h:163 DisplacementVector3D.h:164 DisplacementVector3D.h:165 DisplacementVector3D.h:166 DisplacementVector3D.h:167 DisplacementVector3D.h:168 DisplacementVector3D.h:169 DisplacementVector3D.h:170 DisplacementVector3D.h:171 DisplacementVector3D.h:172 DisplacementVector3D.h:173 DisplacementVector3D.h:174 DisplacementVector3D.h:175 DisplacementVector3D.h:176 DisplacementVector3D.h:177 DisplacementVector3D.h:178 DisplacementVector3D.h:179 DisplacementVector3D.h:180 DisplacementVector3D.h:181 DisplacementVector3D.h:182 DisplacementVector3D.h:183 DisplacementVector3D.h:184 DisplacementVector3D.h:185 DisplacementVector3D.h:186 DisplacementVector3D.h:187 DisplacementVector3D.h:188 DisplacementVector3D.h:189 DisplacementVector3D.h:190 DisplacementVector3D.h:191 DisplacementVector3D.h:192 DisplacementVector3D.h:193 DisplacementVector3D.h:194 DisplacementVector3D.h:195 DisplacementVector3D.h:196 DisplacementVector3D.h:197 DisplacementVector3D.h:198 DisplacementVector3D.h:199 DisplacementVector3D.h:200 DisplacementVector3D.h:201 DisplacementVector3D.h:202 DisplacementVector3D.h:203 DisplacementVector3D.h:204 DisplacementVector3D.h:205 DisplacementVector3D.h:206 DisplacementVector3D.h:207 DisplacementVector3D.h:208 DisplacementVector3D.h:209 DisplacementVector3D.h:210 DisplacementVector3D.h:211 DisplacementVector3D.h:212 DisplacementVector3D.h:213 DisplacementVector3D.h:214 DisplacementVector3D.h:215 DisplacementVector3D.h:216 DisplacementVector3D.h:217 DisplacementVector3D.h:218 DisplacementVector3D.h:219 DisplacementVector3D.h:220 DisplacementVector3D.h:221 DisplacementVector3D.h:222 DisplacementVector3D.h:223 DisplacementVector3D.h:224 DisplacementVector3D.h:225 DisplacementVector3D.h:226 DisplacementVector3D.h:227 DisplacementVector3D.h:228 DisplacementVector3D.h:229 DisplacementVector3D.h:230 DisplacementVector3D.h:231 DisplacementVector3D.h:232 DisplacementVector3D.h:233 DisplacementVector3D.h:234 DisplacementVector3D.h:235 DisplacementVector3D.h:236 DisplacementVector3D.h:237 DisplacementVector3D.h:238 DisplacementVector3D.h:239 DisplacementVector3D.h:240 DisplacementVector3D.h:241 DisplacementVector3D.h:242 DisplacementVector3D.h:243 DisplacementVector3D.h:244 DisplacementVector3D.h:245 DisplacementVector3D.h:246 DisplacementVector3D.h:247 DisplacementVector3D.h:248 DisplacementVector3D.h:249 DisplacementVector3D.h:250 DisplacementVector3D.h:251 DisplacementVector3D.h:252 DisplacementVector3D.h:253 DisplacementVector3D.h:254 DisplacementVector3D.h:255 DisplacementVector3D.h:256 DisplacementVector3D.h:257 DisplacementVector3D.h:258 DisplacementVector3D.h:259 DisplacementVector3D.h:260 DisplacementVector3D.h:261 DisplacementVector3D.h:262 DisplacementVector3D.h:263 DisplacementVector3D.h:264 DisplacementVector3D.h:265 DisplacementVector3D.h:266 DisplacementVector3D.h:267 DisplacementVector3D.h:268 DisplacementVector3D.h:269 DisplacementVector3D.h:270 DisplacementVector3D.h:271 DisplacementVector3D.h:272 DisplacementVector3D.h:273 DisplacementVector3D.h:274 DisplacementVector3D.h:275 DisplacementVector3D.h:276 DisplacementVector3D.h:277 DisplacementVector3D.h:278 DisplacementVector3D.h:279 DisplacementVector3D.h:280 DisplacementVector3D.h:281 DisplacementVector3D.h:282 DisplacementVector3D.h:283 DisplacementVector3D.h:284 DisplacementVector3D.h:285 DisplacementVector3D.h:286 DisplacementVector3D.h:287 DisplacementVector3D.h:288 DisplacementVector3D.h:289 DisplacementVector3D.h:290 DisplacementVector3D.h:291 DisplacementVector3D.h:292 DisplacementVector3D.h:293 DisplacementVector3D.h:294 DisplacementVector3D.h:295 DisplacementVector3D.h:296 DisplacementVector3D.h:297 DisplacementVector3D.h:298 DisplacementVector3D.h:299 DisplacementVector3D.h:300 DisplacementVector3D.h:301 DisplacementVector3D.h:302 DisplacementVector3D.h:303 DisplacementVector3D.h:304 DisplacementVector3D.h:305 DisplacementVector3D.h:306 DisplacementVector3D.h:307 DisplacementVector3D.h:308 DisplacementVector3D.h:309 DisplacementVector3D.h:310 DisplacementVector3D.h:311 DisplacementVector3D.h:312 DisplacementVector3D.h:313 DisplacementVector3D.h:314 DisplacementVector3D.h:315 DisplacementVector3D.h:316 DisplacementVector3D.h:317 DisplacementVector3D.h:318 DisplacementVector3D.h:319 DisplacementVector3D.h:320 DisplacementVector3D.h:321 DisplacementVector3D.h:322 DisplacementVector3D.h:323 DisplacementVector3D.h:324 DisplacementVector3D.h:325 DisplacementVector3D.h:326 DisplacementVector3D.h:327 DisplacementVector3D.h:328 DisplacementVector3D.h:329 DisplacementVector3D.h:330 DisplacementVector3D.h:331 DisplacementVector3D.h:332 DisplacementVector3D.h:333 DisplacementVector3D.h:334 DisplacementVector3D.h:335 DisplacementVector3D.h:336 DisplacementVector3D.h:337 DisplacementVector3D.h:338 DisplacementVector3D.h:339 DisplacementVector3D.h:340 DisplacementVector3D.h:341 DisplacementVector3D.h:342 DisplacementVector3D.h:343 DisplacementVector3D.h:344 DisplacementVector3D.h:345 DisplacementVector3D.h:346 DisplacementVector3D.h:347 DisplacementVector3D.h:348 DisplacementVector3D.h:349 DisplacementVector3D.h:350 DisplacementVector3D.h:351 DisplacementVector3D.h:352 DisplacementVector3D.h:353 DisplacementVector3D.h:354 DisplacementVector3D.h:355 DisplacementVector3D.h:356 DisplacementVector3D.h:357 DisplacementVector3D.h:358 DisplacementVector3D.h:359 DisplacementVector3D.h:360 DisplacementVector3D.h:361 DisplacementVector3D.h:362 DisplacementVector3D.h:363 DisplacementVector3D.h:364 DisplacementVector3D.h:365 DisplacementVector3D.h:366 DisplacementVector3D.h:367 DisplacementVector3D.h:368 DisplacementVector3D.h:369 DisplacementVector3D.h:370 DisplacementVector3D.h:371 DisplacementVector3D.h:372 DisplacementVector3D.h:373 DisplacementVector3D.h:374 DisplacementVector3D.h:375 DisplacementVector3D.h:376 DisplacementVector3D.h:377 DisplacementVector3D.h:378 DisplacementVector3D.h:379 DisplacementVector3D.h:380 DisplacementVector3D.h:381 DisplacementVector3D.h:382 DisplacementVector3D.h:383 DisplacementVector3D.h:384 DisplacementVector3D.h:385 DisplacementVector3D.h:386 DisplacementVector3D.h:387 DisplacementVector3D.h:388 DisplacementVector3D.h:389 DisplacementVector3D.h:390 DisplacementVector3D.h:391 DisplacementVector3D.h:392 DisplacementVector3D.h:393 DisplacementVector3D.h:394 DisplacementVector3D.h:395 DisplacementVector3D.h:396 DisplacementVector3D.h:397 DisplacementVector3D.h:398 DisplacementVector3D.h:399 DisplacementVector3D.h:400 DisplacementVector3D.h:401 DisplacementVector3D.h:402 DisplacementVector3D.h:403 DisplacementVector3D.h:404 DisplacementVector3D.h:405 DisplacementVector3D.h:406 DisplacementVector3D.h:407 DisplacementVector3D.h:408 DisplacementVector3D.h:409 DisplacementVector3D.h:410 DisplacementVector3D.h:411 DisplacementVector3D.h:412 DisplacementVector3D.h:413 DisplacementVector3D.h:414 DisplacementVector3D.h:415 DisplacementVector3D.h:416 DisplacementVector3D.h:417 DisplacementVector3D.h:418 DisplacementVector3D.h:419 DisplacementVector3D.h:420 DisplacementVector3D.h:421 DisplacementVector3D.h:422 DisplacementVector3D.h:423 DisplacementVector3D.h:424 DisplacementVector3D.h:425 DisplacementVector3D.h:426 DisplacementVector3D.h:427 DisplacementVector3D.h:428 DisplacementVector3D.h:429 DisplacementVector3D.h:430 DisplacementVector3D.h:431 DisplacementVector3D.h:432 DisplacementVector3D.h:433 DisplacementVector3D.h:434 DisplacementVector3D.h:435 DisplacementVector3D.h:436 DisplacementVector3D.h:437 DisplacementVector3D.h:438 DisplacementVector3D.h:439 DisplacementVector3D.h:440 DisplacementVector3D.h:441 DisplacementVector3D.h:442 DisplacementVector3D.h:443 DisplacementVector3D.h:444 DisplacementVector3D.h:445 DisplacementVector3D.h:446 DisplacementVector3D.h:447 DisplacementVector3D.h:448 DisplacementVector3D.h:449 DisplacementVector3D.h:450 DisplacementVector3D.h:451 DisplacementVector3D.h:452 DisplacementVector3D.h:453 DisplacementVector3D.h:454 DisplacementVector3D.h:455 DisplacementVector3D.h:456 DisplacementVector3D.h:457 DisplacementVector3D.h:458 DisplacementVector3D.h:459 DisplacementVector3D.h:460 DisplacementVector3D.h:461 DisplacementVector3D.h:462 DisplacementVector3D.h:463 DisplacementVector3D.h:464 DisplacementVector3D.h:465 DisplacementVector3D.h:466 DisplacementVector3D.h:467 DisplacementVector3D.h:468 DisplacementVector3D.h:469 DisplacementVector3D.h:470 DisplacementVector3D.h:471 DisplacementVector3D.h:472 DisplacementVector3D.h:473 DisplacementVector3D.h:474 DisplacementVector3D.h:475 DisplacementVector3D.h:476 DisplacementVector3D.h:477 DisplacementVector3D.h:478 DisplacementVector3D.h:479 DisplacementVector3D.h:480 DisplacementVector3D.h:481 DisplacementVector3D.h:482 DisplacementVector3D.h:483 DisplacementVector3D.h:484 DisplacementVector3D.h:485 DisplacementVector3D.h:486 DisplacementVector3D.h:487 DisplacementVector3D.h:488 DisplacementVector3D.h:489 DisplacementVector3D.h:490 DisplacementVector3D.h:491 DisplacementVector3D.h:492 DisplacementVector3D.h:493 DisplacementVector3D.h:494 DisplacementVector3D.h:495 DisplacementVector3D.h:496 DisplacementVector3D.h:497 DisplacementVector3D.h:498 DisplacementVector3D.h:499 DisplacementVector3D.h:500 DisplacementVector3D.h:501 DisplacementVector3D.h:502 DisplacementVector3D.h:503 DisplacementVector3D.h:504 DisplacementVector3D.h:505 DisplacementVector3D.h:506 DisplacementVector3D.h:507 DisplacementVector3D.h:508 DisplacementVector3D.h:509 DisplacementVector3D.h:510 DisplacementVector3D.h:511 DisplacementVector3D.h:512 DisplacementVector3D.h:513 DisplacementVector3D.h:514 DisplacementVector3D.h:515 DisplacementVector3D.h:516 DisplacementVector3D.h:517 DisplacementVector3D.h:518 DisplacementVector3D.h:519 DisplacementVector3D.h:520 DisplacementVector3D.h:521 DisplacementVector3D.h:522 DisplacementVector3D.h:523 DisplacementVector3D.h:524 DisplacementVector3D.h:525 DisplacementVector3D.h:526 DisplacementVector3D.h:527 DisplacementVector3D.h:528 DisplacementVector3D.h:529 DisplacementVector3D.h:530 DisplacementVector3D.h:531 DisplacementVector3D.h:532 DisplacementVector3D.h:533 DisplacementVector3D.h:534 DisplacementVector3D.h:535 DisplacementVector3D.h:536 DisplacementVector3D.h:537 DisplacementVector3D.h:538 DisplacementVector3D.h:539 DisplacementVector3D.h:540 DisplacementVector3D.h:541 DisplacementVector3D.h:542 DisplacementVector3D.h:543 DisplacementVector3D.h:544 DisplacementVector3D.h:545 DisplacementVector3D.h:546 DisplacementVector3D.h:547 DisplacementVector3D.h:548 DisplacementVector3D.h:549 DisplacementVector3D.h:550 DisplacementVector3D.h:551 DisplacementVector3D.h:552 DisplacementVector3D.h:553 DisplacementVector3D.h:554 DisplacementVector3D.h:555 DisplacementVector3D.h:556 DisplacementVector3D.h:557 DisplacementVector3D.h:558 DisplacementVector3D.h:559 DisplacementVector3D.h:560 DisplacementVector3D.h:561 DisplacementVector3D.h:562 DisplacementVector3D.h:563 DisplacementVector3D.h:564 DisplacementVector3D.h:565 DisplacementVector3D.h:566 DisplacementVector3D.h:567 DisplacementVector3D.h:568 DisplacementVector3D.h:569 DisplacementVector3D.h:570 DisplacementVector3D.h:571 DisplacementVector3D.h:572 DisplacementVector3D.h:573 DisplacementVector3D.h:574 DisplacementVector3D.h:575 DisplacementVector3D.h:576 DisplacementVector3D.h:577 DisplacementVector3D.h:578 DisplacementVector3D.h:579 DisplacementVector3D.h:580 DisplacementVector3D.h:581 DisplacementVector3D.h:582 DisplacementVector3D.h:583 DisplacementVector3D.h:584 DisplacementVector3D.h:585 DisplacementVector3D.h:586 DisplacementVector3D.h:587 DisplacementVector3D.h:588 DisplacementVector3D.h:589 DisplacementVector3D.h:590 DisplacementVector3D.h:591 DisplacementVector3D.h:592 DisplacementVector3D.h:593 DisplacementVector3D.h:594 DisplacementVector3D.h:595 DisplacementVector3D.h:596 DisplacementVector3D.h:597 DisplacementVector3D.h:598 DisplacementVector3D.h:599 DisplacementVector3D.h:600 DisplacementVector3D.h:601 DisplacementVector3D.h:602 DisplacementVector3D.h:603 DisplacementVector3D.h:604 DisplacementVector3D.h:605 DisplacementVector3D.h:606 DisplacementVector3D.h:607 DisplacementVector3D.h:608 DisplacementVector3D.h:609 DisplacementVector3D.h:610 DisplacementVector3D.h:611 DisplacementVector3D.h:612 DisplacementVector3D.h:613 DisplacementVector3D.h:614 DisplacementVector3D.h:615 DisplacementVector3D.h:616 DisplacementVector3D.h:617 DisplacementVector3D.h:618 DisplacementVector3D.h:619 DisplacementVector3D.h:620 DisplacementVector3D.h:621 DisplacementVector3D.h:622 DisplacementVector3D.h:623 DisplacementVector3D.h:624 DisplacementVector3D.h:625 DisplacementVector3D.h:626 DisplacementVector3D.h:627 DisplacementVector3D.h:628 DisplacementVector3D.h:629 DisplacementVector3D.h:630 DisplacementVector3D.h:631 DisplacementVector3D.h:632 DisplacementVector3D.h:633 DisplacementVector3D.h:634 DisplacementVector3D.h:635 DisplacementVector3D.h:636 DisplacementVector3D.h:637 DisplacementVector3D.h:638 DisplacementVector3D.h:639 DisplacementVector3D.h:640 DisplacementVector3D.h:641 DisplacementVector3D.h:642 DisplacementVector3D.h:643 DisplacementVector3D.h:644 DisplacementVector3D.h:645 DisplacementVector3D.h:646 DisplacementVector3D.h:647 DisplacementVector3D.h:648 DisplacementVector3D.h:649 DisplacementVector3D.h:650 DisplacementVector3D.h:651 DisplacementVector3D.h:652 DisplacementVector3D.h:653 DisplacementVector3D.h:654 DisplacementVector3D.h:655 DisplacementVector3D.h:656 DisplacementVector3D.h:657 DisplacementVector3D.h:658 DisplacementVector3D.h:659 DisplacementVector3D.h:660 DisplacementVector3D.h:661 DisplacementVector3D.h:662 DisplacementVector3D.h:663 DisplacementVector3D.h:664 DisplacementVector3D.h:665 DisplacementVector3D.h:666 DisplacementVector3D.h:667 DisplacementVector3D.h:668 DisplacementVector3D.h:669 DisplacementVector3D.h:670 DisplacementVector3D.h:671 DisplacementVector3D.h:672 DisplacementVector3D.h:673 DisplacementVector3D.h:674 DisplacementVector3D.h:675 DisplacementVector3D.h:676 DisplacementVector3D.h:677 DisplacementVector3D.h:678 DisplacementVector3D.h:679 DisplacementVector3D.h:680 DisplacementVector3D.h:681 DisplacementVector3D.h:682 DisplacementVector3D.h:683 DisplacementVector3D.h:684 DisplacementVector3D.h:685 DisplacementVector3D.h:686 DisplacementVector3D.h:687 DisplacementVector3D.h:688 DisplacementVector3D.h:689 DisplacementVector3D.h:690 DisplacementVector3D.h:691 DisplacementVector3D.h:692 DisplacementVector3D.h:693 DisplacementVector3D.h:694 DisplacementVector3D.h:695 DisplacementVector3D.h:696 DisplacementVector3D.h:697 DisplacementVector3D.h:698 DisplacementVector3D.h:699 DisplacementVector3D.h:700