Basic Image AlgorithmS Library
2.8.0
|
A homogeneous plane (in P^3) All points X on the plane p fulfill p ' * X = 0. More...
#include <Base/Geometry/HomgPlane3D.hh>
Public Types | |
typedef HOMGPLANE3D_TYPE | value_type |
Public Member Functions | |
void | Add (const HOMGPLANE3D_TYPE &scalar, Vector4< HOMGPLANE3D_TYPE > &dest) const |
Addition with a scalar, storing results in destionation vector. More... | |
void | Add (const Vector4< HOMGPLANE3D_TYPE > &argvec, Vector4< HOMGPLANE3D_TYPE > &destvec) const |
adding of two vectors, storing the result in destvec More... | |
void | AddIP (const HOMGPLANE3D_TYPE &scalar) |
Addition (in place) of an scalar. More... | |
void | AddIP (const Vector4< HOMGPLANE3D_TYPE > &argvec) |
in place adding More... | |
void | clear () |
void | Copy (const HOMGPLANE3D_TYPE *pv) |
copy the array of vectorsize beginning at *T to this->data_ More... | |
double | Dist (const Vector4< HOMGPLANE3D_TYPE > &vec) const |
Return the euclidean distance of 2 vectors. More... | |
HOMGPLANE3D_TYPE | DistanceSquared (const HomgPoint3D &point) const |
calculates squared distance of a point from plane More... | |
void | Divide (const HOMGPLANE3D_TYPE &scalar, Vector4< HOMGPLANE3D_TYPE > &dest) const |
Division with a scalar, storing results in destionation vector. More... | |
void | DivideIP (const HOMGPLANE3D_TYPE &scalar) |
Division (in place) of an scalar. More... | |
void | ElementwiseProduct (const Vector4< HOMGPLANE3D_TYPE > &argvec, Vector4< HOMGPLANE3D_TYPE > &destvec) const |
multiply two vectors elementwise, storing the result in destvec More... | |
const HOMGPLANE3D_TYPE * | GetData () const |
get the data pointer the member function itself is const (before {..}) because it doesn't change the this object. More... | |
HOMGPLANE3D_TYPE * | GetData () |
int | GetLineIntersection (const HomgPoint3D &PointOnLine, const HomgPoint3D &LineDir, HomgPoint3D &Intersection) const |
compute the intersection point of the plane with a line (defined by point and direction) More... | |
void | GetNormalVector (Vector3< HOMGPLANE3D_TYPE > &normalv) const |
returns normal vector More... | |
Vector3< HOMGPLANE3D_TYPE > | GetNormalVector () const |
returns normal vector, only wrapper More... | |
const unsigned int | GetNumElements () const |
HomgPlane3D () | |
HomgPlane3D (HOMGPLANE3D_TYPE a, HOMGPLANE3D_TYPE b, HOMGPLANE3D_TYPE c, HOMGPLANE3D_TYPE d) | |
set four values of the plane vector More... | |
HomgPlane3D (const HomgPoint3D &p1, const HomgPoint3D &p2, const HomgPoint3D &p3) | |
constructs a homogeneous plane from three points More... | |
HomgPlane3D (const Vector3< double > &PointOnPlane, const Vector3< double > &NormalVector) | |
construct plane, given arbitrary point and normal More... | |
HomgPlane3D (const HomgPoint3D &PointOnPlane, const Vector3< double > &NormalVector) | |
HomgPlane3D (const Vector4< HOMGPLANE3D_TYPE > &theplane) | |
HomgPlane3D (const Vector< HOMGPLANE3D_TYPE > &theplane) | |
bool | Load (const std::string &filename) |
method to load directly from a given filename. More... | |
void | Multiply (const HOMGPLANE3D_TYPE &scalar, Vector4< HOMGPLANE3D_TYPE > &dest) const |
Multiplication with a scalar, storing results in destionation vector. More... | |
void | MultiplyIP (const HOMGPLANE3D_TYPE &scalar) |
Multiplication (in place) of an scalar. More... | |
void | Normalize () |
set first three components to vector of norm 1 and scales w accordingly => encodes Hesse normal form More... | |
HOMGPLANE3D_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 Vector4< HOMGPLANE3D_TYPE > &arg) const |
Comparison operator 'not equal'. More... | |
Vector4< HOMGPLANE3D_TYPE > & | operator*= (const HOMGPLANE3D_TYPE &scalar) |
Multiplication operator with scalar argument. More... | |
Vector4< HOMGPLANE3D_TYPE > & | operator+= (const HOMGPLANE3D_TYPE &scalar) |
Addition operator with scalar argument. More... | |
Vector4< HOMGPLANE3D_TYPE > & | operator+= (const Vector4< HOMGPLANE3D_TYPE > &argvec) |
add operator for two Vectors More... | |
Vector4< HOMGPLANE3D_TYPE > & | operator-= (const HOMGPLANE3D_TYPE &scalar) |
Substraction operator with scalar argument. More... | |
Vector4< HOMGPLANE3D_TYPE > & | operator-= (const Vector4< HOMGPLANE3D_TYPE > &argvec) |
sub operator for two Vectors More... | |
Vector4< HOMGPLANE3D_TYPE > & | operator/= (const HOMGPLANE3D_TYPE &scalar) |
Division operator with scalar argument. More... | |
bool | operator== (const Vector4< HOMGPLANE3D_TYPE > &arg) const |
Comparison operator 'equal'. More... | |
const HOMGPLANE3D_TYPE & | operator[] (const int i) const |
access an element of the vector with 0-based indizes. More... | |
HOMGPLANE3D_TYPE & | operator[] (const int i) |
access an element of the vector with 0-based indizes. More... | |
Matrix4x4< HOMGPLANE3D_TYPE > | OuterProduct (const Vector4< HOMGPLANE3D_TYPE > &v) const |
outer product, constructs a matrix. More... | |
HomgPoint3D | ProjectPoint (const HomgPoint3D &origPoint) const |
finds the closest point which is on the plane More... | |
bool | Save (const std::string &filename) const |
method to save directly to a given filename. More... | |
void | ScalarProduct (const Vector4< HOMGPLANE3D_TYPE > &argvec, HOMGPLANE3D_TYPE &result) const |
scalar product (=inner product) of two vectors, storing the result in result More... | |
HOMGPLANE3D_TYPE | ScalarProduct (const Vector4< HOMGPLANE3D_TYPE > &argvec) const |
void | Set (const Vector3< double > &PointOnPlane, const Vector3< double > &NormalVector) |
construct plane, given arbitrary point and normal More... | |
void | Set (const HomgPoint3D &PointOnPlane, const Vector3< double > &NormalVector) |
construct plane, given arbitrary point and normal More... | |
void | Set (const HOMGPLANE3D_TYPE &scalar) |
set all elements to a scalat value More... | |
void | Set (const HOMGPLANE3D_TYPE &x, const HOMGPLANE3D_TYPE &y, const HOMGPLANE3D_TYPE &z, const HOMGPLANE3D_TYPE &w) |
set elementwise with given scalr values More... | |
void | SetFromPoints (const HomgPoint3D &p1, const HomgPoint3D &p2, const HomgPoint3D &p3) |
constructs a homogeneous plane from three points More... | |
void | SetFromVector (const Vector< HOMGPLANE3D_TYPE > &theplane) |
void | SetZero () |
set all values to 0 More... | |
const unsigned int | Size () const |
const unsigned int | size () const |
void | Sub (const HOMGPLANE3D_TYPE &scalar, Vector4< HOMGPLANE3D_TYPE > &dest) const |
Substraction with a scalar, storing results in destionation vector. More... | |
void | Sub (const Vector4< HOMGPLANE3D_TYPE > &argvec, Vector4< HOMGPLANE3D_TYPE > &destvec) const |
subtracting of two Vectors, storing the result in destvec More... | |
void | SubIP (const HOMGPLANE3D_TYPE &scalar) |
Substraction (in place) of an scalar. More... | |
void | SubIP (const Vector4< HOMGPLANE3D_TYPE > &argvec) |
in place substraction More... | |
Matrix< HOMGPLANE3D_TYPE > | transposed () const |
return a new Matrix with 1 row and 4 columns representing a transposed vector More... | |
~HomgPlane3D () | |
empty destructor More... | |
Iterator Functions | |
HOMGPLANE3D_TYPEconst * | begin () const |
Iterator to first component of vector. More... | |
HOMGPLANE3D_TYPE * | begin () |
HOMGPLANE3D_TYPEconst * | end () const |
Iterator pointing to one element after the last vector element. More... | |
HOMGPLANE3D_TYPE * | end () |
Protected Attributes | |
HOMGPLANE3D_TYPE | data_ [VECTOR4SIZE] |
A homogeneous plane (in P^3) All points X on the plane p fulfill p ' * X = 0.
Definition at line 46 of file HomgPlane3D.hh.
|
inherited |
Definition at line 67 of file Vector4.hh.
|
inline |
Definition at line 50 of file HomgPlane3D.hh.
|
inline |
set four values of the plane vector
Definition at line 54 of file HomgPlane3D.hh.
|
inline |
constructs a homogeneous plane from three points
Definition at line 60 of file HomgPlane3D.hh.
|
inlineexplicit |
construct plane, given arbitrary point and normal
NormalVector | unit length normal vector |
PointOnPlane | arbitrary point on the plane |
Definition at line 70 of file HomgPlane3D.hh.
|
inlineexplicit |
Definition at line 74 of file HomgPlane3D.hh.
|
inlineexplicit |
Definition at line 78 of file HomgPlane3D.hh.
References BIAS::Vector4< T >::operator=().
|
inlineexplicit |
Definition at line 81 of file HomgPlane3D.hh.
|
inline |
empty destructor
Definition at line 97 of file HomgPlane3D.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_
|
inlineinherited |
Return the euclidean distance of 2 vectors.
|
inline |
calculates squared distance of a point from plane
Definition at line 184 of file HomgPlane3D.hh.
References BIAS::Vector4< HOMGPLANE3D_TYPE >::data_.
Referenced by BIAS::PlaneRANSAC::EvaluateSolution().
|
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 |
compute the intersection point of the plane with a line (defined by point and direction)
PointOnLine | one arbitrary point on the line |
LineDir | The direction of the line, LineDir[3]==0 ! |
Intersection | (output) A point lying on the line and on the plane |
Definition at line 238 of file HomgPlane3D.hh.
References BIAS::Vector4< HOMGPLANE3D_TYPE >::data_.
Referenced by BIAS::TriangleMesh::MakeTriangles_(), and ProjectPoint().
|
inline |
returns normal vector
Definition at line 173 of file HomgPlane3D.hh.
References BIAS::Vector4< HOMGPLANE3D_TYPE >::data_.
Referenced by BIAS::ThreeDOut::AddPlane(), and BIAS::ThreeDOut::ComputePlaneCorners().
|
inline |
returns normal vector, only wrapper
Definition at line 163 of file HomgPlane3D.hh.
References BIAS::Vector4< HOMGPLANE3D_TYPE >::data_.
|
inlineinherited |
Definition at line 145 of file Vector4.hh.
|
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.
|
inline |
set first three components to vector of norm 1 and scales w accordingly => encodes Hesse normal form
afterwards w contains the distance of the plane from the origin, while the first three coordinates are the normal vector in euclidean 3-space. This is called the Hesse normal form.
Definition at line 158 of file HomgPlane3D.hh.
References BIAS::Vector4< HOMGPLANE3D_TYPE >::data_.
|
inlineinherited |
Return the L1 norm: |a| + |b| + |c|+ |d|.
|
inlineinherited |
Return the L2 norm: sqrt(a^2 + b^2 + c^2 + d^2)
|
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.
|
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
|
inline |
finds the closest point which is on the plane
Definition at line 276 of file HomgPlane3D.hh.
References BIAS::Vector4< HOMGPLANE3D_TYPE >::data_, and GetLineIntersection().
|
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 |
|
inline |
construct plane, given arbitrary point and normal
NormalVector | unit length normal vector |
PointOnPlane | arbitrary point on the plane |
Definition at line 103 of file HomgPlane3D.hh.
References BIAS::Vector3< T >::ScalarProduct().
void HomgPlane3D::Set | ( | const HomgPoint3D & | PointOnPlane, |
const Vector3< double > & | NormalVector | ||
) |
construct plane, given arbitrary point and normal
NormalVector | normal vector with length != 0 |
PointOnPlane | arbitrary point on the plane (also at infinity) |
Definition at line 29 of file HomgPlane3D.cpp.
References BIAS::Equal(), BIAS::Vector3< T >::NormL2(), BIAS::Vector4< T >::NormL2(), and BIAS::Vector3< T >::ScalarProduct().
|
inlineinherited |
set all elements to a scalat value
|
inlineinherited |
set elementwise with given scalr values
|
inline |
constructs a homogeneous plane from three points
Definition at line 195 of file HomgPlane3D.hh.
References BIAS::Matrix3x3< T >::GetDeterminant().
Referenced by BIAS::TriangleMesh::MakeTriangles_().
|
inline |
Definition at line 90 of file HomgPlane3D.hh.
References TNT::Vector< T >::size().
|
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 DistanceSquared(), GetLineIntersection(), GetNormalVector(), Normalize(), and ProjectPoint().