Basic Image AlgorithmS Library
2.8.0
|
class HomgPoint3D describes a point with 3 degrees of freedom in projective coordinates. More...
#include <Base/Geometry/HomgPoint3D.hh>
Public Types | |
typedef HOMGPOINT3D_TYPE | value_type |
Public Member Functions | |
void | Add (const HOMGPOINT3D_TYPE &scalar, Vector4< HOMGPOINT3D_TYPE > &dest) const |
Addition with a scalar, storing results in destionation vector. More... | |
void | Add (const Vector4< HOMGPOINT3D_TYPE > &argvec, Vector4< HOMGPOINT3D_TYPE > &destvec) const |
adding of two vectors, storing the result in destvec More... | |
void | AddIP (const HOMGPOINT3D_TYPE &scalar) |
Addition (in place) of an scalar. More... | |
void | AddIP (const Vector4< HOMGPOINT3D_TYPE > &argvec) |
in place adding More... | |
void | clear () |
void | Copy (const HOMGPOINT3D_TYPE *pv) |
copy the array of vectorsize beginning at *T to this->data_ More... | |
double | Dist (const Vector4< HOMGPOINT3D_TYPE > &vec) const |
Return the euclidean distance of 2 vectors. More... | |
HOMGPOINT3D_TYPE | Distance (const HomgPoint3D &point) const |
void | Divide (const HOMGPOINT3D_TYPE &scalar, Vector4< HOMGPOINT3D_TYPE > &dest) const |
Division with a scalar, storing results in destionation vector. More... | |
void | DivideIP (const HOMGPOINT3D_TYPE &scalar) |
Division (in place) of an scalar. More... | |
void | ElementwiseProduct (const Vector4< HOMGPOINT3D_TYPE > &argvec, Vector4< HOMGPOINT3D_TYPE > &destvec) const |
multiply two vectors elementwise, storing the result in destvec More... | |
const HOMGPOINT3D_TYPE * | GetData () const |
get the data pointer the member function itself is const (before {..}) because it doesn't change the this object. More... | |
HOMGPOINT3D_TYPE * | GetData () |
void | GetEuclidean (Vector3< HOMGPOINT3D_TYPE > &dest) const |
calculate affine coordinates of this and write them to dest affine coordinates are projective coordinates with last element w == 1; For w==0 the first three elements are copied describing a direction, not a point. More... | |
Vector3< HOMGPOINT3D_TYPE > | GetEuclidean () const |
HOMGPOINT3D_TYPE | GetEuclideanX () const |
return the euclidean coordinates Only possible for w !=0 because w==0 describes points of infinity which are not in euclidean space (but may be interpreted as directions) More... | |
HOMGPOINT3D_TYPE | GetEuclideanY () const |
HOMGPOINT3D_TYPE | GetEuclideanZ () const |
void | GetEuclidian (Vector3< HOMGPOINT3D_TYPE > &dest) const |
deprecated versions More... | |
Vector3< HOMGPOINT3D_TYPE > | GetEuclidian () const |
HOMGPOINT3D_TYPE | GetEuclidianX () const |
deprecated versions More... | |
HOMGPOINT3D_TYPE | GetEuclidianY () const |
HOMGPOINT3D_TYPE | GetEuclidianZ () const |
const unsigned int | GetNumElements () const |
HOMGPOINT3D_TYPE | GetW () const |
HOMGPOINT3D_TYPE | GetW () |
HOMGPOINT3D_TYPE | GetX () const |
HOMGPOINT3D_TYPE | GetY () const |
HOMGPOINT3D_TYPE | GetZ () const |
HomgPoint3D () | |
HomgPoint3D (const HomgPoint3D &p) | |
HomgPoint3D (const Vector4< HOMGPOINT3D_TYPE > &p) | |
HomgPoint3D (const Vector3< HOMGPOINT3D_TYPE > &vec) | |
HomgPoint3D (const HOMGPOINT3D_TYPE &scalar) | |
assignment with a constant value for all elements More... | |
HomgPoint3D (const HOMGPOINT3D_TYPE *pv) | |
assignment with an array of values which is copied into this ones class members More... | |
HomgPoint3D (char *s) | |
constructor with element assignment More... | |
HomgPoint3D (const HOMGPOINT3D_TYPE &x, const HOMGPOINT3D_TYPE &y, const HOMGPOINT3D_TYPE &z) | |
constructor using euclidic coordinates, setting the 4th HomgPoint3D component to 1 More... | |
HomgPoint3D (const Vector< double > &vec) | |
constructor using projective coordinates and initializes *this from Vector<double> of length 4 or length 3 in this case the fourth entry is 1.0. More... | |
HomgPoint3D (const HOMGPOINT3D_TYPE &x, const HOMGPOINT3D_TYPE &y, const HOMGPOINT3D_TYPE &z, const HOMGPOINT3D_TYPE &w) | |
void | Homogenize () |
homogenize class data member elements to W==1 by divison by W More... | |
bool | IsAtInfinity () const |
bool | IsHomogenized () const |
bool | Load (const std::string &filename) |
method to load directly from a given filename. More... | |
void | Multiply (const HOMGPOINT3D_TYPE &scalar, Vector4< HOMGPOINT3D_TYPE > &dest) const |
Multiplication with a scalar, storing results in destionation vector. More... | |
void | MultiplyIP (const HOMGPOINT3D_TYPE &scalar) |
Multiplication (in place) of an scalar. More... | |
HOMGPOINT3D_TYPE | NormL1 () const |
Return the L1 norm: |a| + |b| + |c|+ |d|. More... | |
double | NormL2 () const |
Return the L2 norm: sqrt(a^2 + b^2 + c^2 + d^2) More... | |
bool | operator!= (const HomgPoint3D &arg) const |
Comparison operator 'not equal'. More... | |
bool | operator!= (const Vector4< HOMGPOINT3D_TYPE > &arg) const |
Comparison operator 'not equal'. More... | |
Vector4< HOMGPOINT3D_TYPE > & | operator*= (const HOMGPOINT3D_TYPE &scalar) |
Multiplication operator with scalar argument. More... | |
Vector4< HOMGPOINT3D_TYPE > & | operator+= (const HOMGPOINT3D_TYPE &scalar) |
Addition operator with scalar argument. More... | |
Vector4< HOMGPOINT3D_TYPE > & | operator+= (const Vector4< HOMGPOINT3D_TYPE > &argvec) |
add operator for two Vectors More... | |
Vector4< HOMGPOINT3D_TYPE > & | operator-= (const HOMGPOINT3D_TYPE &scalar) |
Substraction operator with scalar argument. More... | |
Vector4< HOMGPOINT3D_TYPE > & | operator-= (const Vector4< HOMGPOINT3D_TYPE > &argvec) |
sub operator for two Vectors More... | |
Vector4< HOMGPOINT3D_TYPE > & | operator/= (const HOMGPOINT3D_TYPE &scalar) |
Division operator with scalar argument. More... | |
HomgPoint3D & | operator= (const Vector4< HOMGPOINT3D_TYPE > &vec) |
assignment operator set the elements of this HomgPoint to the element of vec More... | |
HomgPoint3D & | operator= (const HOMGPOINT3D_TYPE &scalar) |
assignment operator set the vector elementwise to scalar value More... | |
HomgPoint3D & | operator= (const Vector3< HOMGPOINT3D_TYPE > &vec) |
bool | operator== (const HomgPoint3D &arg) const |
Comparison operator 'equal'. More... | |
bool | operator== (const Vector4< HOMGPOINT3D_TYPE > &arg) const |
Comparison operator 'equal'. More... | |
const HOMGPOINT3D_TYPE & | operator[] (const int i) const |
access an element of the vector with 0-based indizes. More... | |
HOMGPOINT3D_TYPE & | operator[] (const int i) |
access an element of the vector with 0-based indizes. More... | |
Matrix4x4< HOMGPOINT3D_TYPE > | OuterProduct (const Vector4< HOMGPOINT3D_TYPE > &v) const |
outer product, constructs a matrix. More... | |
bool | Save (const std::string &filename) const |
method to save directly to a given filename. More... | |
void | ScalarProduct (const Vector4< HOMGPOINT3D_TYPE > &argvec, HOMGPOINT3D_TYPE &result) const |
scalar product (=inner product) of two vectors, storing the result in result More... | |
HOMGPOINT3D_TYPE | ScalarProduct (const Vector4< HOMGPOINT3D_TYPE > &argvec) const |
void | Set (const HOMGPOINT3D_TYPE &scalar) |
set all elements to a scalat value More... | |
void | Set (const HOMGPOINT3D_TYPE &x, const HOMGPOINT3D_TYPE &y, const HOMGPOINT3D_TYPE &z) |
set elementwise with given 3 euclidean scalar values. More... | |
void | Set (const HOMGPOINT3D_TYPE &x, const HOMGPOINT3D_TYPE &y, const HOMGPOINT3D_TYPE &z, const HOMGPOINT3D_TYPE &w) |
set elementwise More... | |
void | Set (const Vector3< HOMGPOINT3D_TYPE > &vec) |
set from Vector3 More... | |
void | SetZero () |
set all values to 0 More... | |
const unsigned int | Size () const |
const unsigned int | size () const |
void | Sub (const HOMGPOINT3D_TYPE &scalar, Vector4< HOMGPOINT3D_TYPE > &dest) const |
Substraction with a scalar, storing results in destionation vector. More... | |
void | Sub (const Vector4< HOMGPOINT3D_TYPE > &argvec, Vector4< HOMGPOINT3D_TYPE > &destvec) const |
subtracting of two Vectors, storing the result in destvec More... | |
void | SubIP (const HOMGPOINT3D_TYPE &scalar) |
Substraction (in place) of an scalar. More... | |
void | SubIP (const Vector4< HOMGPOINT3D_TYPE > &argvec) |
in place substraction More... | |
Matrix< HOMGPOINT3D_TYPE > | transposed () const |
return a new Matrix with 1 row and 4 columns representing a transposed vector More... | |
~HomgPoint3D () | |
Iterator Functions | |
HOMGPOINT3D_TYPEconst * | begin () const |
Iterator to first component of vector. More... | |
HOMGPOINT3D_TYPE * | begin () |
HOMGPOINT3D_TYPEconst * | end () const |
Iterator pointing to one element after the last vector element. More... | |
HOMGPOINT3D_TYPE * | end () |
Protected Attributes | |
HOMGPOINT3D_TYPE | data_ [VECTOR4SIZE] |
class HomgPoint3D describes a point with 3 degrees of freedom in projective coordinates.
manual loop unrolling is used if possible. The Vector is in row-major order (4 rows, 1 column) the indizes begin with zero (to size-1)
constructors and assignment operators are never inherited, so they have be wrapped (or reimplemented) here.
To DO:
Definition at line 61 of file HomgPoint3D.hh.
|
inherited |
Definition at line 67 of file Vector4.hh.
|
inline |
Definition at line 65 of file HomgPoint3D.hh.
|
inline |
Definition at line 67 of file HomgPoint3D.hh.
|
inline |
Definition at line 70 of file HomgPoint3D.hh.
|
inlineexplicit |
Definition at line 220 of file HomgPoint3D.hh.
References Set().
|
inline |
Definition at line 75 of file HomgPoint3D.hh.
|
inlineexplicit |
assignment with a constant value for all elements
Definition at line 80 of file HomgPoint3D.hh.
|
inlineexplicit |
assignment with an array of values which is copied into this ones class members
Definition at line 87 of file HomgPoint3D.hh.
|
inlineexplicit |
constructor with element assignment
Definition at line 93 of file HomgPoint3D.hh.
|
inline |
constructor using euclidic coordinates, setting the 4th HomgPoint3D component to 1
Definition at line 225 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
constructor using projective coordinates and initializes *this from Vector<double> of length 4 or length 3 in this case the fourth entry is 1.0.
Definition at line 292 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_, and TNT::Vector< T >::size().
|
inline |
Definition at line 112 of file HomgPoint3D.hh.
|
inlineinherited |
Addition with a scalar, storing results in destionation vector.
|
inlineinherited |
adding of two vectors, storing the result in destvec
|
inlineinherited |
Addition (in place) of an scalar.
|
inlineinherited |
in place adding
|
inlineinherited |
Iterator to first component of vector.
Definition at line 152 of file Vector4.hh.
|
inlineinherited |
Definition at line 155 of file Vector4.hh.
|
inlineinherited |
|
inlineinherited |
copy the array of vectorsize beginning at *T to this->data_
Referenced by operator=().
|
inlineinherited |
Return the euclidean distance of 2 vectors.
|
inline |
Definition at line 404 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
Referenced by BIAS::DistanceMeasureControl::Draw(), and BIAS::DistanceMeasureControl::LeftMouseDoubleClicked().
|
inlineinherited |
Division with a scalar, storing results in destionation vector.
|
inlineinherited |
Division (in place) of an scalar.
|
inlineinherited |
multiply two vectors elementwise, storing the result in destvec
|
inlineinherited |
Iterator pointing to one element after the last vector element.
Definition at line 161 of file Vector4.hh.
|
inlineinherited |
Definition at line 164 of file Vector4.hh.
|
inlineinherited |
get the data pointer
the member function itself is const (before {..}) because it doesn't change the this object.
Definition at line 177 of file Vector4.hh.
|
inlineinherited |
Definition at line 181 of file Vector4.hh.
|
inline |
calculate affine coordinates of this and write them to dest affine coordinates are projective coordinates with last element w == 1; For w==0 the first three elements are copied describing a direction, not a point.
Definition at line 336 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_, and GetW().
Referenced by BIAS::TrifocalTensorBase::Compose(), BIAS::PMatrix::Decompose_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesCylindric_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesPerspective_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesSpherical_(), BIAS::RectificationViaProjectionMappingBase< InputStorageType, OutputStorageType >::Disp2Depth(), BIAS::ProjectionParametersBase::DoesPointProjectIntoImage(), BIAS::Projection::DoesPointProjectIntoImage(), BIAS::TriangleMesh::GenerateDenseMesh(), BIAS::TriangleMesh::GenerateImagePlane(), BIAS::ProjectionParametersBase::GetSphericalViewingRange(), BIAS::TriangleMesh::MakeTriangles_(), BIAS::clfTrimmedICP::setFromDepthMap_(), BIAS::ProjectionParametersPerspective::SetIntrinsics(), and BIAS::Projection::UnProjectToPointLocal().
|
inline |
Definition at line 350 of file HomgPoint3D.hh.
|
inline |
return the euclidean coordinates Only possible for w !=0 because w==0 describes points of infinity which are not in euclidean space (but may be interpreted as directions)
Definition at line 357 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_, and GetW().
|
inline |
Definition at line 364 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_, and GetW().
|
inline |
Definition at line 371 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_, and GetW().
|
inline |
deprecated versions
Definition at line 176 of file HomgPoint3D.hh.
|
inline |
Definition at line 179 of file HomgPoint3D.hh.
|
inline |
deprecated versions
Definition at line 193 of file HomgPoint3D.hh.
|
inline |
Definition at line 196 of file HomgPoint3D.hh.
|
inline |
Definition at line 199 of file HomgPoint3D.hh.
|
inlineinherited |
Definition at line 145 of file Vector4.hh.
|
inline |
Definition at line 257 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
Referenced by BIAS::HomgLine3D::CalculateFootpoint(), GetEuclidean(), GetEuclideanX(), GetEuclideanY(), GetEuclideanZ(), BIAS::HomgLine3D::Homogenize(), and Homogenize().
|
inline |
Definition at line 250 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
Definition at line 235 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
Definition at line 240 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
Definition at line 245 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
homogenize class data member elements to W==1 by divison by W
Definition at line 308 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_, and GetW().
Referenced by BIAS::PMatrix::BackprojectPseudoinverse(), BIAS::GenGroundTruth::CreateMatches(), BIAS::Projection::DoesPointProjectIntoImage(), BIAS::ProjectionParametersProjective::GetC(), BIAS::Triangulation::GetCovariance(), BIAS::Triangulation::GetCovariance2D(), BIAS::CovMatrix3x3::GetSearchArea(), BIAS::FMatrixEstimation::GoldStandard(), BIAS::HomgLine3D::Homogenize(), BIAS::HomgPoint3DCov::Homogenize(), BIAS::TrackballControl::MiddleMouseMoved(), BIAS::ProjectionParametersProjective::Project(), BIAS::Triangulation::Triangulate(), BIAS::Triangulation::TriangulateLinear(), and BIAS::ProjectionParametersProjective::UnProjectToRay().
|
inline |
Definition at line 398 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
Referenced by BIAS::PMatrixBase::Compose(), BIAS::PMatrix::Compose(), and BIAS::HomgPoint3DCov::Homogenize().
|
inline |
Definition at line 147 of file HomgPoint3D.hh.
Referenced by BIAS::ThreeDOut::AddEllipsoid(), BIAS::ThreeDOut::AddLine(), BIAS::ThreeDOut::AddPoint(), BIAS::Triangulation::GetCovarianceAnalytic(), BIAS::Covariance3Dto2DHomg::Project(), BIAS::ThreeDOut::UpdateEllipsoid(), BIAS::ThreeDOut::UpdateLine(), and BIAS::ThreeDOut::UpdatePoint().
|
inherited |
method to load directly from a given filename.
internally using stream operator
|
inlineinherited |
Multiplication with a scalar, storing results in destionation vector.
|
inlineinherited |
Multiplication (in place) of an scalar.
|
inlineinherited |
Return the L1 norm: |a| + |b| + |c|+ |d|.
|
inlineinherited |
Return the L2 norm: sqrt(a^2 + b^2 + c^2 + d^2)
|
inline |
Comparison operator 'not equal'.
Definition at line 393 of file HomgPoint3D.hh.
|
inlineinherited |
Comparison operator 'not equal'.
|
inlineinherited |
Multiplication operator with scalar argument.
|
inlineinherited |
Addition operator with scalar argument.
|
inlineinherited |
add operator for two Vectors
|
inlineinherited |
Substraction operator with scalar argument.
|
inlineinherited |
sub operator for two Vectors
|
inlineinherited |
Division operator with scalar argument.
|
inline |
assignment operator set the elements of this HomgPoint to the element of vec
Definition at line 276 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::Copy(), and BIAS::Vector4< T >::GetData().
|
inline |
assignment operator set the vector elementwise to scalar value
Definition at line 283 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
Definition at line 266 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inline |
Comparison operator 'equal'.
Definition at line 378 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inlineinherited |
Comparison operator 'equal'.
|
inlineinherited |
access an element of the vector with 0-based indizes.
read only (no write) member funciton const because it doesn't change this object
|
inlineinherited |
access an element of the vector with 0-based indizes.
write allowed
|
inherited |
outer product, constructs a matrix.
Often written as v * v^T for col vectors
|
inherited |
method to save directly to a given filename.
internally using stream operator
|
inlineinherited |
scalar product (=inner product) of two vectors, storing
the result in result
|
inlineinherited |
|
inlineinherited |
set all elements to a scalat value
|
inline |
set elementwise with given 3 euclidean scalar values.
the additional W-coordinate is set to 1
Definition at line 321 of file HomgPoint3D.hh.
References BIAS::Vector4< T >::Set().
Referenced by BIAS::GenSynthMatches::_AreMovingObjectsVisible(), BIAS::GenSynthMatches::_CreateCamMovement(), BIAS::GenSynthMatches::_CreateStatic3DPoints(), BIAS::PMatrix::BackprojectByZDepth(), BIAS::PMatrix::BackprojectWorldCoo(), BIAS::GenSynthMatches::CreateStatic3DPoint(), BIAS::PMatrix::GetC(), BIAS::Triangulation::GetCovariance(), BIAS::PMatrix::GetNullVector(), BIAS::EMatrix::GetRotationTranslation(), BIAS::CovMatrix3x3::GetSearchArea(), BIAS::ProjectionParametersBase::GetSphericalViewingRange(), HomgPoint3D(), BIAS::DistanceMeasureControl::LeftMouseDoubleClicked(), BIAS::NurbsSurface::LoadFromXML(), BIAS::NurbsSurface::SetCTRLPointsToRandom(), BIAS::NurbsSurface::SetWeight(), BIAS::Cov3Dto2DPoseCertain::Transform_(), BIAS::Covariance3Dto2D::Transform_(), BIAS::Covariance3Dto2DHomg::Transform_(), BIAS::Triangulation::Triangulate(), BIAS::Triangulation::Triangulate2D(), and BIAS::Triangulation::TriangulateProjective().
|
inline |
set elementwise
Definition at line 161 of file HomgPoint3D.hh.
References BIAS::Vector4< T >::Set().
|
inline |
set from Vector3
Definition at line 328 of file HomgPoint3D.hh.
References BIAS::Vector4< HOMGPOINT3D_TYPE >::data_.
|
inlineinherited |
set all values to 0
|
inlineinherited |
@return the size of this vector
|
inlineinherited |
|
inlineinherited |
Substraction with a scalar, storing results in destionation vector.
|
inlineinherited |
subtracting of two Vectors, storing the result in destvec
|
inlineinherited |
Substraction (in place) of an scalar.
|
inlineinherited |
in place substraction
|
inlineinherited |
return a new Matrix with 1 row and 4 columns representing a
transposed vector
|
protectedinherited |
Definition at line 375 of file Vector4.hh.
Referenced by Distance(), GetEuclidean(), GetEuclideanX(), GetEuclideanY(), GetEuclideanZ(), GetW(), GetX(), GetY(), GetZ(), HomgPoint3D(), Homogenize(), IsAtInfinity(), operator=(), operator==(), and Set().