26 # error DIM must be defined as 2 or 3 to compile this module.
32 class Vector :
public Vector2<T> {
39 Vector(
const Vector2<T> &v) : Vector2<T>(v) { }
41 explicit Vector(
const T &t) : Vector2<T>(t) { }
70 using I64Vect = I64Vect2;
72 using U64Vect = U64Vect2;
81 using VAccum = itasca::Accumulator2;
82 using AVAccum = itasca::Accumulator;
90 static constexpr
const char *dimstr =
"2d";
91 static constexpr
const char *cdimstr =
"2D";
93 # define itascaxd itasca2d
94 # define DIMRET(x,y) x
95 template <
class T>
inline const Vector2<T> &
toVect(
const Vector2<T> &in) {
return toVect2(in); }
104 template <
class T>
inline IVect toIVect(
const Vector2<T> &in) {
IVect iv(to<int32>(in.x()),to<int32>(in.y()));
return iv; }
105 template <
class T>
inline FVect toFVect(
const Vector2<T> &in) {
FVect fv(to<float>(in.x()),to<float>(in.y()));
return fv; }
106 template <
class T>
inline DVect toDVect(
const Vector2<T> &in) {
DVect dv(to<double>(in.x()),to<double>(in.y()));
return dv; }
107 template <
class T>
inline DVect toDVect(
const Vector3<T> &in) {
DVect dv(to<double>(in.x()),to<double>(in.y()));
return dv; }
108 template <
class T,
class U>
inline constexpr
const T &
dimval(
const T &val2,
const U &) {
return val2; }
109 static const unsigned int totdof = 3;
120 Vector(
const Vector3<T> &v) : Vector3<T>(v) { }
122 Vector(
const T &x,
const T &y,
const T &z) : Vector3<T>(x,y,z) { }
124 explicit Vector(
const T &t) : Vector3<T>(t) { }
153 using I64Vect = I64Vect3;
155 using U64Vect = U64Vect3;
171 # define CDIMSTR "3D"
172 static constexpr
const char *dimstr =
"3d";
173 static constexpr
const char *cdimstr =
"3D";
175 # define itascaxd itasca3d
176 # define DIMRET(x,y) y
177 template <
class T>
inline Vector3<T>
toVect(
const Vector2<T> &in) {
return toVect3(in); }
178 template <
class T>
inline const Vector3<T> &
toVect(
const Vector3<T> &in) {
return in; }
179 template <
class T>
inline Vector3<T>
toVect(
const AVector2<T> &in) {
return Vector3<T>(0,0,in.
z()); }
186 template <
class T>
inline IVect toIVect(
const Vector3<T> &in) {
IVect iv(to<int32>(in.x()),to<int32>(in.y()),to<int32>(in.z()));
return iv; }
187 template <
class T>
inline FVect toFVect(
const Vector3<T> &in) {
FVect fv(to<float>(in.x()),to<float>(in.y()),to<float>(in.z()));
return fv; }
188 template <
class T>
inline DVect toDVect(
const Vector3<T> &in) {
DVect dv(to<double>(in.x()),to<double>(in.y()),to<double>(in.z()));
return dv; }
189 template <
class T,
class U>
190 inline constexpr
const U &
dimval(
const T &,
const U &val3) {
return val3; }
191 static const unsigned int totdof = 6;
194 static constexpr uint32 dim = DIM;
195 static constexpr
bool is2D =
dimval(
true,
false);
196 static constexpr
bool is3D =
dimval(
false,
true);
197 static constexpr uint32 adof =
dimval(1,3);
198 static constexpr uint32 tdof =
dimval(2,3);
One stop include for all objects defined as part of base interface.
2D Angular vector class.
Definition: avect.h:43
const T & z() const
Member access - returns the z component of the 2D angular vector.
Definition: avect.h:70
3D Angular vector class.
Definition: avect.h:176
An AVector2 in 2D, an AVector3 in 3D.
Definition: dim.h:128
AVector()
Default constructor, no data initialization.
Definition: dim.h:131
AVector(const AVector3< T > &av)
Copy constructor.
Definition: dim.h:135
AVector(const AVector &av)
Copy constructor.
Definition: dim.h:133
Class for specifying a particular 2D cartesian axes system, and converting to and from it.
Definition: axes.h:21
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: axes.h:121
Class for specifying a particular 2D cartesian axes system, and converting to and from it.
Definition: caxes.h:25
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: caxes.h:103
DMatrix is a Matrix that defaults to type double...
Definition: matrix.h:741
2D cartesian region in space.
Definition: extent2.h:12
const T & y1() const
Returns the lower y-bound.
Definition: extent2.h:37
const T & x1() const
Returns the lower x-bound.
Definition: extent2.h:33
const T & y2() const
Returns the upper y-bound.
Definition: extent2.h:39
const T & x2() const
Returns the upper x-bound.
Definition: extent2.h:35
A Class representing a cartesian extent in 3D.
Definition: extent3.h:16
const T & x1() const
Returns the lower bound of the extent in the x-direction.
Definition: extent3.h:42
const T & y2() const
Returns the upper bound of the extent in the y-direction.
Definition: extent3.h:48
const T & x2() const
Returns the upper bound of the extent in the x-direction.
Definition: extent3.h:44
const T & y1() const
Returns the lower bound of the extent in the y-direction.
Definition: extent3.h:46
A Extent2<T> in 2D, and a Extent3<T> in 2D.
Definition: dim.h:139
Extent(const Vector< T > &v11, const Vector< T > &v22)
Explicit constructor, given the lower and upper bound as two Vector.
Definition: dim.h:144
Extent(const Extent3< T > &r)
Copy constructor.
Definition: dim.h:148
Extent(const Extent &r)
Copy constructor.
Definition: dim.h:146
Extent()
Default constructor, not data initialization.
Definition: dim.h:142
Class for storing an "orientation", or a direction in 2D or 3D space.
Definition: orientation.h:50
Class for storing an "orientation", or a direction in 2D or 3D space.
Definition: orientation.h:99
2D quaternion-like utility class. In this case only the angle (in radians) is stored as opposed to th...
Definition: quat.h:20
3D quaternion utility class.
Definition: quat.h:109
A Vector2 in 2D, a Vector3 in 3D.
Definition: dim.h:113
Vector()
Default constructor, no data initialization.
Definition: dim.h:116
Vector(const Vector3< T > &v)
Copy constructor.
Definition: dim.h:120
Vector(const T &t)
Single component constructor.
Definition: dim.h:124
Vector(const T &x, const T &y, const T &z)
From three.
Definition: dim.h:122
Vector(const Vector< T > &v)
Copy constructor.
Definition: dim.h:118
BASE_EXPORT DMatrix< 2, 2 > toMatrix2(const SymTensor &s)
Definition: matrix.cpp:16
constexpr VMatrix< T, 2 > toMatrix(const Vector2< T > &v)
Definition: matrix.h:938
Vector2< T > toVect2(const AVector2< T > &)
Definition: avect.h:247
Vector3< T > toVect3(const AVector2< T > &v)
Definition: avect.h:250
DVect toDVect(const Vector3< T > &in)
Converts a Vector3<T> to a DVect.
Definition: dim.h:188
constexpr const U & dimval(const T &, const U &val3)
Returns the first argument in a 2D compile, and the second in a 3D compile.
Definition: dim.h:190
IVect toIVect(const Vector3< T > &in)
Converts a Vector3<T> to an IVect.
Definition: dim.h:186
FAVect3 FAVect
Angular vector of floats, either 2D or 3D.
Definition: dim.h:159
DExtent3 DExtent
A DExtent2 in 2D, a DExtent3 in 3D.
Definition: dim.h:156
FVect toFVect(const Vector3< T > &in)
Converts a Vector3<T> to a FVect.
Definition: dim.h:187
FVect3 FVect
Vector of floats, either 2D or 3D.
Definition: dim.h:151
AVector3< T > toAVect(const AVector2< T > &in)
Converts an AVector2 to an AVector.
Definition: dim.h:180
IExtent3 IExtent
An IExtent2 in 2D, an IExtent3 in 3D.
Definition: dim.h:157
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
Vector3< T > toVect(const Vector2< T > &in)
Converts a Vector2 to a Vector.
Definition: dim.h:177
UVect3 UVect
Vector of uints, either 2D or 3D.
Definition: dim.h:154
itasca::Accumulator3 AVAccum
3D angular accumulator
Definition: dim.h:165
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition: dim.h:158
itasca::Accumulator3 VAccum
3D vector accumulator
Definition: dim.h:164
Extent< T > toExtent(const Extent2< T > &t)
Converts Extent2 to an Extent.
Definition: dim.h:184
IVect3 IVect
Vector of ints, either 2D or 3D.
Definition: dim.h:152
namespace Itasca
Definition: basememory.cpp:10