Class SBDTypePhysicalIAVector3#
template <typename Quantity>
ClassList > SBDTypePhysicalIAVector3
This template class represents three-dimensional physical interval vectors. More...
#include <SBDTypePhysicalIAVector3.hpp>
Public Types#
Type | Name |
---|---|
enum | OverlapType The overlap type. |
typedef SBQuantityProduct3< Quantity, Quantity, Quantity >::Type | QuantityCubed The type of the cubed quantity. |
typedef SBQuantityProduct2< Quantity, Quantity >::Type | QuantitySquared The type of the squared quantity. |
Public Attributes#
Type | Name |
---|---|
SBDTypePhysicalInterval< Quantity > | i The components of the physical interval vector. |
Public Static Attributes#
Type | Name |
---|---|
const SBDTypePhysicalIAVector3< Quantity > | empty The empty physical interval vector, with all components set to (+infinite, -infinite) |
const SBDTypePhysicalIAVector3< Quantity > | infinite The infinite physical interval vector, with all components set to (+infinite, -infinite) |
const SBDTypePhysicalIAVector3< Quantity > | zero The zero physical interval vector. |
Public Functions#
Type | Name |
---|---|
SBDTypePhysicalIAVector3 () Constructs a physical interval vector with all components set to [0,0]. |
|
SBDTypePhysicalIAVector3 (const Quantity & x) Constructs a physical interval vector with all components set to [ x ,x ]. |
|
SBDTypePhysicalIAVector3 (const Quantity & x, const Quantity & y, const Quantity & z) Constructs the physical interval vector [ [ x ,x ] [y ,y ] [z ,z ] ]. |
|
SBDTypePhysicalIAVector3 (Quantity v) Constructs the physical interval vector [ [ v [0][0],v [0][1]] [v [1][0],v [1][1]] [v [2][0],v [2][1]] ]. |
|
SBDTypePhysicalIAVector3 (Quantity xl, Quantity xu, Quantity yl, Quantity yu, Quantity zl, Quantity zu) Constructs the physical interval vector [ [ xl ,xu ] [yl ,yu ] [zl ,zu ] ]. |
|
SBDTypePhysicalIAVector3 (SBDTypePhysicalInterval< Quantity > v) Constructs the physical interval vector [ v [0]v [1]v [2] ]. |
|
SBDTypePhysicalIAVector3 (const SBDTypePhysicalInterval< Quantity > & x, const SBDTypePhysicalInterval< Quantity > & y, const SBDTypePhysicalInterval< Quantity > & z) Constructs the physical interval vector [ x y z ]. |
|
SBDTypePhysicalIAVector3 (SBDTypePhysicalVector3< Quantity > const & u) Constructs the physical interval vector [ [ u.v [0],u.v [0]] [u.v [1],u.v [1]] [u.v [2],u.v [2]] ]. |
|
SBDTypePhysicalIAVector3 (const SBDTypePhysicalIAVector3< Quantity > & u) Copy constructor. |
|
SBDTypePhysicalIAVector3 (double x) Constructs a dimensionless physical interval vector with all components set to [ x ,x ]. |
|
SBDTypePhysicalIAVector3 (double x, double y, double z) Constructs the dimensionless physical interval vector [ [ x ,x ] [y ,y ] [z ,z ] ]. |
|
SBDTypePhysicalIAVector3 (double val) Constructs the dimensionless physical interval vector [ [ v [0][0],v [0][1]] [v [1][0],v [1][1]] [v [2][0],v [2][1]] ]. |
|
SBDTypePhysicalIAVector3 (double xl, double xu, double yl, double yu, double zl, double zu) Constructs the physical interval vector [ [ xl ,xu ] [yl ,yu ] [zl ,zu ] ]. |
|
QuantitySquared | area () const Returns the area 2.0*((i[0].i[1]-i[0].i[0])*(i[0].i[1]-i[0].i[0])+(i[1].i[1]-i[1].i[0])*(i[1].i[1]-i[1].i[0])+(i[2].i[1]-i[2].i[0])*(i[2].i[1]-i[2].i[0])) of the physical interval vector. |
void | bound (const SBDTypePhysicalVector3< Quantity > & u) Enlarges this physical interval vector to contain the physical vector u . |
void | bound (const SBDTypePhysicalIAVector3< Quantity > & u) Enlarges this physical interval vector to contain the physical interval vector u . |
SBDTypePhysicalVector3< Quantity > | center () const Returns the center [ 0.5*(i[0].i[0]+i[0].i[1]) 0.5*(i[1].i[0]+i[1].i[1]) 0.5*(i[2].i[0]+i[2].i[1]) ] of the physical interval vector. |
void | collapseToLowerBound () Sets the lower bounds of the intervals equal to the upper bounds. |
void | collapseToUpperBound () Sets the upper bounds of the intervals equal to the lower bounds. |
bool | contains (const SBDTypePhysicalVector3< Quantity > & u) const Returns true when this physical interval vector contains the physical vector u . |
bool | contains (const SBDTypePhysicalIAVector3 & u) const Returns true when this physical interval vector contains in physical interval vector u . |
SBDTypePhysicalVector3< Quantity > | diameter () const Returns the diameter [ (i[0].i[1]-i[0].i[0]) (i[1].i[1]-i[1].i[0]) (i[2].i[1]-i[2].i[0]) ] of the physical interval vector. |
QuantitySquared | distance2ToPoint (const SBDTypePhysicalVector3< Quantity > & u) const Returns the squared Euclidean distance between this physical interval vector and physical vector u . |
void | expand (Quantity r) Expands all components of this physical interval vector by offset r . |
void | fit (const SBDTypePhysicalIAVector3< Quantity > & a, const SBDTypePhysicalIAVector3< Quantity > & b) Sets the components of this physical interval vector to exactly bound both physical interval vectors a andb . |
SBDTypePhysicalIAVector3< SBQuantity::dimensionless > | getValue () const Returns a dimensionless physical interval vector whose bounds are equal to those of this physical interval vector. |
bool | isContainedIn (const SBDTypePhysicalIAVector3 & u) const Returns true when this physical interval vector is contained in physical interval vector u . |
Quantity | lengthsSum () const Returns the sum i[0]. diameter() +i[1].diameter() +i[2].diameter() of the components diameters of the physical interval vector. |
SBDTypePhysicalVector3< Quantity > | lowerBound () const Returns the lower bound [ i[0].i[0] i[1].i[0] i[2].i[0] ] of the physical interval vector. |
operator SBDTypePhysicalIAVector3< QuantityB > () const Converts this physical interval vector to a physical interval vector with units QuantityB . |
|
bool | operator!= (const SBDTypePhysicalIAVector3< QuantityB > & u) const Returns true if this physical interval vector is different from physical interval vector u (component-wise) |
SBDTypePhysicalIAVector3< Quantity > | operator* (double d) const Returns the product of this physical interval vector with double d . |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator* (QuantityB d) const Returns the product of this physical interval vector with physical quantity d . |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator* (SBDTypePhysicalInterval< QuantityB > d) const Returns the product of this physical interval vector with physical interval d . |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator* (const SBDTypePhysicalIAVector3< QuantityB > & u) const Returns the component-wise product of this physical interval vector with physical interval vector u . |
SBDTypePhysicalIAVector3< Quantity > & | operator*= (QuantityB d) const Multiplies this physical interval vector with physical quantity d . |
SBDTypePhysicalIAVector3< Quantity > & | operator*= (SBDTypePhysicalInterval< QuantityB > d) const Multiplies this physical interval vector with physical interval d . |
SBDTypePhysicalIAVector3< Quantity > & | operator*= (SBDTypePhysicalIAVector3< QuantityB > d) const Multiplies this physical interval vector with physical interval vector d . |
SBDTypePhysicalIAVector3< Quantity > | operator+ (const SBDTypePhysicalIAVector3< Quantity > & u) const Returns the sum of this physical interval vector with physical interval vector u . |
SBDTypePhysicalIAVector3< Quantity > & | operator+= (const SBDTypePhysicalIAVector3< Quantity > & u) Adds physical interval vector u to this physical interval vector. |
SBDTypePhysicalIAVector3< Quantity > | operator- (const SBDTypePhysicalIAVector3< Quantity > & u) const Returns the difference of this physical interval vector with physical interval vector u . |
SBDTypePhysicalIAVector3< Quantity > | operator- () const Returns the opposite of this physical interval vector. |
SBDTypePhysicalIAVector3< Quantity > & | operator-= (const SBDTypePhysicalIAVector3< Quantity > & u) Subtracts physical interval vector u from this physical interval vector. |
SBDTypePhysicalIAVector3< Quantity > | operator/ (double d) const Returns the division of this physical interval vector by double d . |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitDivision< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator/ (QuantityB d) const Returns the division of this physical interval vector by physical quantity d . |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitDivision< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator/ (SBDTypePhysicalInterval< QuantityB > d) const Returns the division of this physical interval vector by physical interval d . |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitDivision< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator/ (const SBDTypePhysicalIAVector3< QuantityB > & u) const Returns the component-wise division of this physical interval vector by physical interval vector u . |
SBDTypePhysicalIAVector3< Quantity > & | operator/= (QuantityB d) const Divides this physical interval vector by physical quantity d . |
SBDTypePhysicalIAVector3< Quantity > & | operator/= (SBDTypePhysicalInterval< QuantityB > d) const Divides this physical interval vector by physical interval d . |
SBDTypePhysicalIAVector3< Quantity > & | operator/= (SBDTypePhysicalIAVector3< QuantityB > d) const Divides this physical interval vector by physical interval vector d . |
SBDTypePhysicalIAVector3< Quantity > & | operator= (const SBDTypePhysicalIAVector3< Quantity > & u) Copy assignment. |
bool | operator== (const SBDTypePhysicalIAVector3< QuantityB > & u) const Returns true if this physical interval vector is equal to physical interval vector u (component-wise) |
SBDTypePhysicalInterval< Quantity > & | operator[] (int index) Returns a reference to component index . |
const SBDTypePhysicalInterval< Quantity > & | operator[] (int index) const Returns a reference to component index (const version) |
SBDTypePhysicalIAVector3< SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator^ (const SBDTypePhysicalIAVector3< QuantityB > & u) const Returns the cross product of this physical interval vector with physical interval vector u . |
SBDTypePhysicalInterval< SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > | operator| (const SBDTypePhysicalIAVector3< QuantityB > & u) const Returns the dot product of this physical interval vector with physical interval vector u . |
bool | overlaps (const SBDTypePhysicalIAVector3< Quantity > & u) const Returns true when this physical interval vector overlaps physical interval vector u . |
bool | overlaps (const SBDTypePhysicalIAVector3< Quantity > & u, const Quantity & cutoffDistance) const Returns true when the Manhattan distance between this physical interval vector and physical interval vector u is smaller thancutoffDistance . |
bool | overlaps (const SBDTypePhysicalIAVector3< Quantity > & u, const SBDTypeSymmetryTransform & t) const Returns true when this physical interval vector overlaps physical interval vector u transformed byt . |
OverlapType | overlapsAdvanced (SBDTypePhysicalIAVector3< Quantity > & u, const Quantity & cutoff, const QuantitySquared & cutoff2) const Returns the OverlapType between this physical interval vector and physical interval vector u . |
OverlapType | overlapsAdvanced (SBDTypePhysicalIAVector3 & u, const Quantity & cutoff, const QuantitySquared & cutoff2, const SBDTypeSymmetryTransform & t) const Returns the OverlapType between this physical interval vector and physical interval vector u transformed byt . |
void | print () const Prints this physical interval vector. |
void | reset (const SBDTypePhysicalVector3< Quantity > & v) Sets this physical interval vector to [ [ u.v [0],u.v [0]] [u.v [1],u.v [1]] [u.v [2],u.v [2]] ]. |
void | serialize (SBCSerializer * serializer, const SBVersionNumber & sdkVersionNumber=SB_SDK_VERSION_NUMBER) const Serializes the physical interval vector using the provided serializer . |
void | setValue (const SBDTypePhysicalIAVector3< SBQuantity::dimensionless > & u) Sets the bounds of this physical interval vector equal to those of the dimensionless physical interval vector u . |
void | setZero () Sets all components to [0,0]. |
void | shrink (Quantity r) Shrinks all components of this physical interval vector by offset r . |
void | split (SBDTypePhysicalIAVector3< Quantity > & u1, SBDTypePhysicalIAVector3< Quantity > & u2) const Splits this physical interval vector along the longest axis into physical interval vectors u1 andu2 . |
void | unserialize (SBCSerializer * serializer, const SBVersionNumber & sdkVersionNumber=SB_SDK_VERSION_NUMBER) Unserializes the physical interval vector using the provided serializer . |
SBDTypePhysicalVector3< Quantity > | upperBound () const Returns the upper bound [ i[0].i[1] i[1].i[1] i[2].i[1] ] of the physical interval vector. |
QuantityCubed | volume () const Returns the volume (i[0].i[1]-i[0].i[0])*(i[1].i[1]-i[1].i[0])*(i[2].i[1]-i[2].i[0]) of the physical interval vector. |
Detailed Description#
Template parameters:
Quantity
The quantity type of the components
The SBDTypePhysicalIAVector3 template class represents physical three-dimensional interval vectors, i.e. three-dimensional vectors whose components are intervals of physical quantities. Interval vectors may be used to describe bounds on physical vectors (e.g. bounds on positions, on velocities, etc.), and perform interval arithmetics (IA) on these vectors.
Physical interval vectors use SAMSON's unit system. In a physical (interval) vector, all interval components have the same unit, so that the SBDTypePhysicalIAVector3 template class is parameterized by only one type: Quantity
.
Most of the time, developers of SAMSON Extensions do not have to use this template, but may directly use some predefined types, e.g. SBIAVector3 (dimensionless interval vector), SBIAPosition3 (interval vector with units of length), SBIAForce3 (interval vector with units of force), etc.
For example, SBIAPosition3 may be seen as the coordinates of a three-dimensional, axis-aligned box that bounds atomic coordinates, so that this class may be used to perform proximity queries (neighbor search), in particular thanks to functions such as SBIAPosition3::overlaps.
Interval arithmetics may be particularly useful to compute bounds on physical quantities:
// bound on the first position
SBIAPosition3 x1(
SBQuantity::angstrom(1.7), SBQuantity::angstrom(1.8),
SBQuantity::angstrom(0.8), SBQuantity::angstrom(0.9),
SBQuantity::angstrom(7.5), SBQuantity::angstrom(7.6)
);
// bound on the second position
SBIAPosition3 x2(
SBQuantity::angstrom(0.2), SBQuantity::angstrom(0.3),
SBQuantity::angstrom(0.4), SBQuantity::angstrom(0.5),
SBQuantity::angstrom(7.7), SBQuantity::angstrom(7.8)
);
// bound on the squared distance
SBSquareLengthInterval l2 = ((x2 - x1) | (x2 - x1));
Short name: SBPhysicalIAVector3
See also: SAMSON's unit system
See also: SBDTypePhysicalInterval
Public Types Documentation#
enum OverlapType#
The overlap type.
typedef QuantityCubed#
The type of the cubed quantity.
typedef QuantitySquared#
The type of the squared quantity.
Public Attributes Documentation#
variable i#
The components of the physical interval vector.
Public Static Attributes Documentation#
variable empty#
The empty physical interval vector, with all components set to (+infinite, -infinite)
variable infinite#
The infinite physical interval vector, with all components set to (+infinite, -infinite)
variable zero#
The zero physical interval vector.
Public Functions Documentation#
function SBDTypePhysicalIAVector3 [1/13]#
Constructs a physical interval vector with all components set to [0,0].
function SBDTypePhysicalIAVector3 [2/13]#
Constructs a physical interval vector with all components set to [ x
,x
].
function SBDTypePhysicalIAVector3 [3/13]#
Constructs the physical interval vector [ [ x
,x
] [y
,y
] [z
,z
] ].
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
const Quantity & x,
const Quantity & y,
const Quantity & z
)
function SBDTypePhysicalIAVector3 [4/13]#
Constructs the physical interval vector [ [ v
[0][0],v
[0][1]] [v
[1][0],v
[1][1]] [v
[2][0],v
[2][1]] ].
function SBDTypePhysicalIAVector3 [5/13]#
Constructs the physical interval vector [ [ xl
,xu
] [yl
,yu
] [zl
,zu
] ].
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
Quantity xl,
Quantity xu,
Quantity yl,
Quantity yu,
Quantity zl,
Quantity zu
)
function SBDTypePhysicalIAVector3 [6/13]#
Constructs the physical interval vector [ v
[0]v
[1]v
[2] ].
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
SBDTypePhysicalInterval < Quantity > v
)
function SBDTypePhysicalIAVector3 [7/13]#
Constructs the physical interval vector [ x
y
z
].
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
const SBDTypePhysicalInterval < Quantity > & x,
const SBDTypePhysicalInterval < Quantity > & y,
const SBDTypePhysicalInterval < Quantity > & z
)
function SBDTypePhysicalIAVector3 [8/13]#
Constructs the physical interval vector [ [ u.v
[0],u.v
[0]] [u.v
[1],u.v
[1]] [u.v
[2],u.v
[2]] ].
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
SBDTypePhysicalVector3 < Quantity > const & u
)
function SBDTypePhysicalIAVector3 [9/13]#
Copy constructor.
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
const SBDTypePhysicalIAVector3 < Quantity > & u
)
function SBDTypePhysicalIAVector3 [10/13]#
Constructs a dimensionless physical interval vector with all components set to [ x
,x
].
function SBDTypePhysicalIAVector3 [11/13]#
Constructs the dimensionless physical interval vector [ [ x
,x
] [y
,y
] [z
,z
] ].
function SBDTypePhysicalIAVector3 [12/13]#
Constructs the dimensionless physical interval vector [ [ v
[0][0],v
[0][1]] [v
[1][0],v
[1][1]] [v
[2][0],v
[2][1]] ].
function SBDTypePhysicalIAVector3 [13/13]#
Constructs the physical interval vector [ [ xl
,xu
] [yl
,yu
] [zl
,zu
] ].
inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
double xl,
double xu,
double yl,
double yu,
double zl,
double zu
)
function area#
Returns the area 2.0*((i[0].i[1]-i[0].i[0])*(i[0].i[1]-i[0].i[0])+(i[1].i[1]-i[1].i[0])*(i[1].i[1]-i[1].i[0])+(i[2].i[1]-i[2].i[0])*(i[2].i[1]-i[2].i[0])) of the physical interval vector.
function bound [1/2]#
Enlarges this physical interval vector to contain the physical vector u
.
function bound [2/2]#
Enlarges this physical interval vector to contain the physical interval vector u
.
function center#
Returns the center [ 0.5*(i[0].i[0]+i[0].i[1]) 0.5*(i[1].i[0]+i[1].i[1]) 0.5*(i[2].i[0]+i[2].i[1]) ] of the physical interval vector.
function collapseToLowerBound#
Sets the lower bounds of the intervals equal to the upper bounds.
function collapseToUpperBound#
Sets the upper bounds of the intervals equal to the lower bounds.
function contains [1/2]#
Returns true when this physical interval vector contains the physical vector u
.
inline bool SBDTypePhysicalIAVector3::contains (
const SBDTypePhysicalVector3 < Quantity > & u
) const
function contains [2/2]#
Returns true when this physical interval vector contains in physical interval vector u
.
function diameter#
Returns the diameter [ (i[0].i[1]-i[0].i[0]) (i[1].i[1]-i[1].i[0]) (i[2].i[1]-i[2].i[0]) ] of the physical interval vector.
function distance2ToPoint#
Returns the squared Euclidean distance between this physical interval vector and physical vector u
.
inline QuantitySquared SBDTypePhysicalIAVector3::distance2ToPoint (
const SBDTypePhysicalVector3 < Quantity > & u
) const
function expand#
Expands all components of this physical interval vector by offset r
.
function fit#
Sets the components of this physical interval vector to exactly bound both physical interval vectors a
andb
.
inline void SBDTypePhysicalIAVector3::fit (
const SBDTypePhysicalIAVector3 < Quantity > & a,
const SBDTypePhysicalIAVector3 < Quantity > & b
)
function getValue#
Returns a dimensionless physical interval vector whose bounds are equal to those of this physical interval vector.
inline SBDTypePhysicalIAVector3 < SBQuantity::dimensionless > SBDTypePhysicalIAVector3::getValue () const
function isContainedIn#
Returns true when this physical interval vector is contained in physical interval vector u
.
function lengthsSum#
Returns the sum i[0]. diameter() +i[1].diameter() +i[2].diameter() of the components diameters of the physical interval vector.
function lowerBound#
Returns the lower bound [ i[0].i[0] i[1].i[0] i[2].i[0] ] of the physical interval vector.
function operator SBDTypePhysicalIAVector3< QuantityB >#
Converts this physical interval vector to a physical interval vector with units QuantityB
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3::operator SBDTypePhysicalIAVector3< QuantityB > () const
function operator!=#
Returns true if this physical interval vector is different from physical interval vector u
(component-wise)
template<typename QuantityB>
inline bool SBDTypePhysicalIAVector3::operator!= (
const SBDTypePhysicalIAVector3 < QuantityB > & u
) const
function operator*#
Returns the product of this physical interval vector with double d
.
function operator*#
Returns the product of this physical interval vector with physical quantity d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator* (
QuantityB d
) const
function operator*#
Returns the product of this physical interval vector with physical interval d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator* (
SBDTypePhysicalInterval < QuantityB > d
) const
function operator*#
Returns the component-wise product of this physical interval vector with physical interval vector u
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator* (
const SBDTypePhysicalIAVector3 < QuantityB > & u
) const
This operator returns the component-wise product of this physical interval vector with physical interval vector u
, i.e. a physical interval vector in which each component is the product of the corresponding components in this physical interval vector and physical interval vector u
.
function operator*=#
Multiplies this physical interval vector with physical quantity d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator*= (
QuantityB d
) const
Parameters:
d
A dimensionless physical quantity or a numeric type (i.e. int, float, double, etc)
function operator*=#
Multiplies this physical interval vector with physical interval d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator*= (
SBDTypePhysicalInterval < QuantityB > d
) const
Parameters:
d
A dimensionless physical interval
function operator*=#
Multiplies this physical interval vector with physical interval vector d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator*= (
SBDTypePhysicalIAVector3 < QuantityB > d
) const
Parameters:
d
A dimensionless physical interval vector
function operator+#
Returns the sum of this physical interval vector with physical interval vector u
.
inline SBDTypePhysicalIAVector3 < Quantity > SBDTypePhysicalIAVector3::operator+ (
const SBDTypePhysicalIAVector3 < Quantity > & u
) const
function operator+=#
Adds physical interval vector u
to this physical interval vector.
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator+= (
const SBDTypePhysicalIAVector3 < Quantity > & u
)
function operator-#
Returns the difference of this physical interval vector with physical interval vector u
.
inline SBDTypePhysicalIAVector3 < Quantity > SBDTypePhysicalIAVector3::operator- (
const SBDTypePhysicalIAVector3 < Quantity > & u
) const
function operator-#
Returns the opposite of this physical interval vector.
function operator-=#
Subtracts physical interval vector u
from this physical interval vector.
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator-= (
const SBDTypePhysicalIAVector3 < Quantity > & u
)
function operator/#
Returns the division of this physical interval vector by double d
.
function operator/#
Returns the division of this physical interval vector by physical quantity d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitDivision< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator/ (
QuantityB d
) const
function operator/#
Returns the division of this physical interval vector by physical interval d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitDivision< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator/ (
SBDTypePhysicalInterval < QuantityB > d
) const
function operator/#
Returns the component-wise division of this physical interval vector by physical interval vector u
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitDivision< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator/ (
const SBDTypePhysicalIAVector3 < QuantityB > & u
) const
This operator returns the component-wise division of this physical interval vector by physical interval vector u
, i.e. a physical interval vector in which each component is the division of the corresponding components in this physical interval vector and physical interval vector u
.
function operator/=#
Divides this physical interval vector by physical quantity d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator/= (
QuantityB d
) const
Parameters:
d
A dimensionless physical quantity or a numeric type (i.e. int, float, double, etc)
function operator/=#
Divides this physical interval vector by physical interval d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator/= (
SBDTypePhysicalInterval < QuantityB > d
) const
Parameters:
d
A dimensionless physical interval
function operator/=#
Divides this physical interval vector by physical interval vector d
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator/= (
SBDTypePhysicalIAVector3 < QuantityB > d
) const
Parameters:
d
A dimensionless physical interval vector
function operator=#
Copy assignment.
inline SBDTypePhysicalIAVector3 < Quantity > & SBDTypePhysicalIAVector3::operator= (
const SBDTypePhysicalIAVector3 < Quantity > & u
)
function operator==#
Returns true if this physical interval vector is equal to physical interval vector u
(component-wise)
template<typename QuantityB>
inline bool SBDTypePhysicalIAVector3::operator== (
const SBDTypePhysicalIAVector3 < QuantityB > & u
) const
function operator[]#
Returns a reference to component index
.
function operator[]#
Returns a reference to component index
(const version)
inline const SBDTypePhysicalInterval < Quantity > & SBDTypePhysicalIAVector3::operator[] (
int index
) const
function operator^#
Returns the cross product of this physical interval vector with physical interval vector u
.
template<typename QuantityB>
inline SBDTypePhysicalIAVector3 < SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator^ (
const SBDTypePhysicalIAVector3 < QuantityB > & u
) const
function operator|#
Returns the dot product of this physical interval vector with physical interval vector u
.
template<typename QuantityB>
inline SBDTypePhysicalInterval < SBQuantityType< typename SBDQuantityUnitMultiplication< typename Quantity::UnitType, typename QuantityB::UnitType >::UnitType > > SBDTypePhysicalIAVector3::operator| (
const SBDTypePhysicalIAVector3 < QuantityB > & u
) const
function overlaps [1/3]#
Returns true when this physical interval vector overlaps physical interval vector u
.
inline bool SBDTypePhysicalIAVector3::overlaps (
const SBDTypePhysicalIAVector3 < Quantity > & u
) const
function overlaps [2/3]#
Returns true when the Manhattan distance between this physical interval vector and physical interval vector u
is smaller thancutoffDistance
.
inline bool SBDTypePhysicalIAVector3::overlaps (
const SBDTypePhysicalIAVector3 < Quantity > & u,
const Quantity & cutoffDistance
) const
function overlaps [3/3]#
Returns true when this physical interval vector overlaps physical interval vector u
transformed byt
.
inline bool SBDTypePhysicalIAVector3::overlaps (
const SBDTypePhysicalIAVector3 < Quantity > & u,
const SBDTypeSymmetryTransform & t
) const
function overlapsAdvanced [1/2]#
Returns the OverlapType between this physical interval vector and physical interval vector u
.
inline OverlapType SBDTypePhysicalIAVector3::overlapsAdvanced (
SBDTypePhysicalIAVector3 < Quantity > & u,
const Quantity & cutoff,
const QuantitySquared & cutoff2
) const
function overlapsAdvanced [2/2]#
Returns the OverlapType between this physical interval vector and physical interval vector u
transformed byt
.
inline OverlapType SBDTypePhysicalIAVector3::overlapsAdvanced (
SBDTypePhysicalIAVector3 & u,
const Quantity & cutoff,
const QuantitySquared & cutoff2,
const SBDTypeSymmetryTransform & t
) const
function print#
Prints this physical interval vector.
function reset#
Sets this physical interval vector to [ [ u.v
[0],u.v
[0]] [u.v
[1],u.v
[1]] [u.v
[2],u.v
[2]] ].
function serialize#
Serializes the physical interval vector using the provided serializer
.
inline void SBDTypePhysicalIAVector3::serialize (
SBCSerializer * serializer,
const SBVersionNumber & sdkVersionNumber=SB_SDK_VERSION_NUMBER
) const
function setValue#
Sets the bounds of this physical interval vector equal to those of the dimensionless physical interval vector u
.
inline void SBDTypePhysicalIAVector3::setValue (
const SBDTypePhysicalIAVector3 < SBQuantity::dimensionless > & u
)
function setZero#
Sets all components to [0,0].
function shrink#
Shrinks all components of this physical interval vector by offset r
.
function split#
Splits this physical interval vector along the longest axis into physical interval vectors u1
andu2
.
inline void SBDTypePhysicalIAVector3::split (
SBDTypePhysicalIAVector3 < Quantity > & u1,
SBDTypePhysicalIAVector3 < Quantity > & u2
) const
function unserialize#
Unserializes the physical interval vector using the provided serializer
.
inline void SBDTypePhysicalIAVector3::unserialize (
SBCSerializer * serializer,
const SBVersionNumber & sdkVersionNumber=SB_SDK_VERSION_NUMBER
)
function upperBound#
Returns the upper bound [ i[0].i[1] i[1].i[1] i[2].i[1] ] of the physical interval vector.
function volume#
Returns the volume (i[0].i[1]-i[0].i[0])*(i[1].i[1]-i[1].i[0])*(i[2].i[1]-i[2].i[0]) of the physical interval vector.