Web Analytics Made Easy - Statcounter
Skip to content

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.

enum SBDTypePhysicalIAVector3::OverlapType {
    IncludeNone = 0,
    IncludeAll = 1,
    Subdivide = 2
};


typedef QuantityCubed#

The type of the cubed quantity.

typedef SBQuantityProduct3<Quantity,Quantity,Quantity>::Type QuantityCubed;


typedef QuantitySquared#

The type of the squared quantity.

typedef SBQuantityProduct2<Quantity,Quantity>::Type QuantitySquared;


Public Attributes Documentation#

variable i#

The components of the physical interval vector.

SBDTypePhysicalInterval<Quantity> i[3];


Public Static Attributes Documentation#

variable empty#

The empty physical interval vector, with all components set to (+infinite, -infinite)

SBDTypePhysicalIAVector3< Quantity > const empty;


variable infinite#

The infinite physical interval vector, with all components set to (+infinite, -infinite)

SBDTypePhysicalIAVector3< Quantity > const infinite;


variable zero#

The zero physical interval vector.

SBDTypePhysicalIAVector3< Quantity > const zero;


Public Functions Documentation#

function SBDTypePhysicalIAVector3 [1/13]#

Constructs a physical interval vector with all components set to [0,0].

inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 () 


function SBDTypePhysicalIAVector3 [2/13]#

Constructs a physical interval vector with all components set to [ x ,x ].

inline explicit SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
    const Quantity & 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]] ].

inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
    Quantity v
) 


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 ].

inline explicit SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
    double x
) 


function SBDTypePhysicalIAVector3 [11/13]#

Constructs the dimensionless physical interval vector [ [ x ,x ] [y ,y ] [z ,z ] ].

inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
    double x,
    double y,
    double 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]] ].

inline SBDTypePhysicalIAVector3::SBDTypePhysicalIAVector3 (
    double val
) 


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.

inline QuantitySquared SBDTypePhysicalIAVector3::area () const


function bound [1/2]#

Enlarges this physical interval vector to contain the physical vector u .

inline void SBDTypePhysicalIAVector3::bound (
    const SBDTypePhysicalVector3 < Quantity > & u
) 


function bound [2/2]#

Enlarges this physical interval vector to contain the physical interval vector u .

inline void SBDTypePhysicalIAVector3::bound (
    const SBDTypePhysicalIAVector3 < Quantity > & 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.

inline SBDTypePhysicalVector3 < Quantity > SBDTypePhysicalIAVector3::center () const


function collapseToLowerBound#

Sets the lower bounds of the intervals equal to the upper bounds.

inline void SBDTypePhysicalIAVector3::collapseToLowerBound () 


function collapseToUpperBound#

Sets the upper bounds of the intervals equal to the lower bounds.

inline void SBDTypePhysicalIAVector3::collapseToUpperBound () 


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 .

inline bool SBDTypePhysicalIAVector3::contains (
    const SBDTypePhysicalIAVector3 & u
) const


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.

inline SBDTypePhysicalVector3 < Quantity > SBDTypePhysicalIAVector3::diameter () const


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 .

inline void SBDTypePhysicalIAVector3::expand (
    Quantity 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 .

inline bool SBDTypePhysicalIAVector3::isContainedIn (
    const SBDTypePhysicalIAVector3 & u
) const


function lengthsSum#

Returns the sum i[0]. diameter() +i[1].diameter() +i[2].diameter() of the components diameters of the physical interval vector.

inline Quantity SBDTypePhysicalIAVector3::lengthsSum () const


function lowerBound#

Returns the lower bound [ i[0].i[0] i[1].i[0] i[2].i[0] ] of the physical interval vector.

inline SBDTypePhysicalVector3 < Quantity > SBDTypePhysicalIAVector3::lowerBound () const


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 .

inline SBDTypePhysicalIAVector3 < Quantity > SBDTypePhysicalIAVector3::operator* (
    double d
) const


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.

inline SBDTypePhysicalIAVector3 < Quantity > SBDTypePhysicalIAVector3::operator- () const


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 .

inline SBDTypePhysicalIAVector3 < Quantity > SBDTypePhysicalIAVector3::operator/ (
    double d
) const


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 .

inline SBDTypePhysicalInterval < Quantity > & SBDTypePhysicalIAVector3::operator[] (
    int 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.

inline void SBDTypePhysicalIAVector3::print () const


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]] ].

inline void SBDTypePhysicalIAVector3::reset (
    const SBDTypePhysicalVector3 < Quantity > & v
) 


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].

inline void SBDTypePhysicalIAVector3::setZero () 


function shrink#

Shrinks all components of this physical interval vector by offset r .

inline void SBDTypePhysicalIAVector3::shrink (
    Quantity 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.

inline SBDTypePhysicalVector3 < Quantity > SBDTypePhysicalIAVector3::upperBound () const


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.

inline QuantityCubed SBDTypePhysicalIAVector3::volume () const