OpenMesh::Geometry::QuadricT< Scalar > Class Template Reference

#include <QuadricT.hh>

List of all members.

Public Types

typedef QuadricT< Scalar > Self
typedef QuadricT< Scalar > type
typedef Scalar value_type

Public Member Functions

Scalar a () const
Scalar b () const
Scalar c () const
void clear ()
 set all entries to zero
Scalar d () const
Scalar e () const
Scalar f () const
Scalar g () const
Scalar h () const
Scalar i () const
Scalar j () const
template<class _Vec >
Scalar operator() (const _Vec &_v) const
 evaluate quadric Q at (3D or 4D) vector v: v*Q*v
template<class _Vec4 >
_Vec4 operator* (const _Vec4 &_v) const
 multiply 4D vector from right: Q*v
QuadricT< Scalar > & operator*= (Scalar _s)
 multiply by scalar
QuadricT< Scalar > & operator+= (const QuadricT< Scalar > &_q)
 add quadrics
template<class _Normal , class _Point >
 QuadricT (const _Normal &_n, const _Point &_p)
template<class _Point >
 QuadricT (const _Point &_pt)
 QuadricT (Scalar _a=0.0, Scalar _b=0.0, Scalar _c=0.0, Scalar _d=0.0)
 constructor from given plane equation: ax+by+cz+d_=0
 QuadricT (Scalar _a, Scalar _b, Scalar _c, Scalar _d, Scalar _e, Scalar _f, Scalar _g, Scalar _h, Scalar _i, Scalar _j)
 construct with upper triangle of symmetrix 4x4 matrix
void set (Scalar _a, Scalar _b, Scalar _c, Scalar _d, Scalar _e, Scalar _f, Scalar _g, Scalar _h, Scalar _i, Scalar _j)
template<class _Normal , class _Point >
void set_distance_to_plane (const _Normal &_n, const _Point &_p)
void set_distance_to_plane (Scalar _a, Scalar _b, Scalar _c, Scalar _d)
template<class _Point >
void set_distance_to_point (const _Point &_pt)
Scalar ww () const
Scalar xw () const
Scalar xx () const
Scalar xy () const
Scalar xz () const
Scalar yw () const
Scalar yy () const
Scalar yz () const
Scalar zw () const
Scalar zz () const

Protected Member Functions

template<class _Vec4 >
Scalar evaluate (const _Vec4 &_v, GenProg::Int2Type< 4 >) const
 evaluate quadric Q at 4D vector v: v*Q*v
template<class _Vec3 >
Scalar evaluate (const _Vec3 &_v, GenProg::Int2Type< 3 >) const
 evaluate quadric Q at 3D vector v: v*Q*v

Private Attributes

Scalar a_
Scalar b_
Scalar c_
Scalar d_
Scalar e_
Scalar f_
Scalar g_
Scalar h_
Scalar i_
Scalar j_

Detailed Description

template<class Scalar>
class OpenMesh::Geometry::QuadricT< Scalar >

/class QuadricT QuadricT.hh <OSG/Geometry/Types/QuadricT.hh>

Stores a quadric as a 4x4 symmetrix matrix. Used by the error quadric based mesh decimation algorithms.

Definition at line 74 of file QuadricT.hh.


Member Typedef Documentation

template<class Scalar >
typedef QuadricT<Scalar> OpenMesh::Geometry::QuadricT< Scalar >::Self

Definition at line 65 of file QuadricT.hh.

template<class Scalar >
typedef QuadricT<Scalar> OpenMesh::Geometry::QuadricT< Scalar >::type

Definition at line 64 of file QuadricT.hh.

template<class Scalar >
typedef Scalar OpenMesh::Geometry::QuadricT< Scalar >::value_type

Definition at line 63 of file QuadricT.hh.


Constructor & Destructor Documentation

template<class Scalar >
OpenMesh::Geometry::QuadricT< Scalar >::QuadricT ( Scalar  _a,
Scalar  _b,
Scalar  _c,
Scalar  _d,
Scalar  _e,
Scalar  _f,
Scalar  _g,
Scalar  _h,
Scalar  _i,
Scalar  _j 
) [inline]

construct with upper triangle of symmetrix 4x4 matrix

Definition at line 72 of file QuadricT.hh.

template<class Scalar >
OpenMesh::Geometry::QuadricT< Scalar >::QuadricT ( Scalar  _a = 0.0,
Scalar  _b = 0.0,
Scalar  _c = 0.0,
Scalar  _d = 0.0 
) [inline]

constructor from given plane equation: ax+by+cz+d_=0

Definition at line 85 of file QuadricT.hh.

template<class Scalar >
template<class _Point >
OpenMesh::Geometry::QuadricT< Scalar >::QuadricT ( const _Point &  _pt  )  [inline]

Definition at line 93 of file QuadricT.hh.

template<class Scalar >
template<class _Normal , class _Point >
OpenMesh::Geometry::QuadricT< Scalar >::QuadricT ( const _Normal &  _n,
const _Point &  _p 
) [inline]

Definition at line 99 of file QuadricT.hh.


Member Function Documentation

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::a (  )  const [inline]

Definition at line 186 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::b (  )  const [inline]

Definition at line 187 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::c (  )  const [inline]

Definition at line 188 of file QuadricT.hh.

template<class Scalar >
void OpenMesh::Geometry::QuadricT< Scalar >::clear (  )  [inline]

set all entries to zero

Definition at line 144 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::d (  )  const [inline]

Definition at line 189 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::e (  )  const [inline]

Definition at line 190 of file QuadricT.hh.

template<class Scalar >
template<class _Vec4 >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::evaluate ( const _Vec4 &  _v,
GenProg::Int2Type< 4 >   
) const [inline, protected]

evaluate quadric Q at 4D vector v: v*Q*v

Definition at line 223 of file QuadricT.hh.

template<class Scalar >
template<class _Vec3 >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::evaluate ( const _Vec3 &  _v,
GenProg::Int2Type< 3 >   
) const [inline, protected]

evaluate quadric Q at 3D vector v: v*Q*v

Definition at line 212 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::f (  )  const [inline]

Definition at line 191 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::g (  )  const [inline]

Definition at line 192 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::h (  )  const [inline]

Definition at line 193 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::i (  )  const [inline]

Definition at line 194 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::j (  )  const [inline]

Definition at line 195 of file QuadricT.hh.

template<class Scalar >
template<class _Vec >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::operator() ( const _Vec &  _v  )  const [inline]

evaluate quadric Q at (3D or 4D) vector v: v*Q*v

Definition at line 181 of file QuadricT.hh.

template<class Scalar >
template<class _Vec4 >
_Vec4 OpenMesh::Geometry::QuadricT< Scalar >::operator* ( const _Vec4 &  _v  )  const [inline]

multiply 4D vector from right: Q*v

Definition at line 170 of file QuadricT.hh.

template<class Scalar >
QuadricT<Scalar>& OpenMesh::Geometry::QuadricT< Scalar >::operator*= ( Scalar  _s  )  [inline]

multiply by scalar

Definition at line 158 of file QuadricT.hh.

template<class Scalar >
QuadricT<Scalar>& OpenMesh::Geometry::QuadricT< Scalar >::operator+= ( const QuadricT< Scalar > &  _q  )  [inline]

add quadrics

Definition at line 147 of file QuadricT.hh.

template<class Scalar >
void OpenMesh::Geometry::QuadricT< Scalar >::set ( Scalar  _a,
Scalar  _b,
Scalar  _c,
Scalar  _d,
Scalar  _e,
Scalar  _f,
Scalar  _g,
Scalar  _h,
Scalar  _i,
Scalar  _j 
) [inline]

Definition at line 105 of file QuadricT.hh.

template<class Scalar >
template<class _Normal , class _Point >
void OpenMesh::Geometry::QuadricT< Scalar >::set_distance_to_plane ( const _Normal &  _n,
const _Point &  _p 
) [inline]

Definition at line 138 of file QuadricT.hh.

template<class Scalar >
void OpenMesh::Geometry::QuadricT< Scalar >::set_distance_to_plane ( Scalar  _a,
Scalar  _b,
Scalar  _c,
Scalar  _d 
) [inline]

Definition at line 127 of file QuadricT.hh.

template<class Scalar >
template<class _Point >
void OpenMesh::Geometry::QuadricT< Scalar >::set_distance_to_point ( const _Point &  _pt  )  [inline]

Definition at line 118 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::ww (  )  const [inline]

Definition at line 206 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::xw (  )  const [inline]

Definition at line 200 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::xx (  )  const [inline]

Definition at line 197 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::xy (  )  const [inline]

Definition at line 198 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::xz (  )  const [inline]

Definition at line 199 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::yw (  )  const [inline]

Definition at line 203 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::yy (  )  const [inline]

Definition at line 201 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::yz (  )  const [inline]

Definition at line 202 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::zw (  )  const [inline]

Definition at line 205 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::zz (  )  const [inline]

Definition at line 204 of file QuadricT.hh.


Member Data Documentation

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::a_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::b_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::c_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::d_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::e_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::f_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::g_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::h_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::i_ [private]

Definition at line 234 of file QuadricT.hh.

template<class Scalar >
Scalar OpenMesh::Geometry::QuadricT< Scalar >::j_ [private]

Definition at line 234 of file QuadricT.hh.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


openmesh
Author(s): Benjamin Pitzer
autogenerated on Fri Jan 11 12:11:17 2013