Developer Documentation

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Namespace List
- Namespace Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Namespaces | Classes | Typedefs | Functions | Variables
OpenMesh Namespace Reference

## Namespaces
| Attributes
| Concepts
| Decimater
| GenProg
| IO
| Iterators
| Kernel_OSG
| Python
| Utils
| VDPM

## Classes
class | ArrayKernel
class | AttribKernelT
class | AutoPropertyHandleT
class | BaseHandle
| Base class for all handle types. More...
class | BaseKernel
class | BaseMesh
class | BaseProperty
struct | BasePropHandleT
| Base property handle. More...
class | CLASSNAME
struct | color_caster< osg::Color3f, osg::Color3ub >
struct | color_caster< osg::Color3ub, osg::Color3f >
class | DefaultTraits
struct | EdgeHandle
| Handle for a edge entity. More...
class | Endian
struct | EPropHandleT
struct | FaceHandle
| Handle for a face entity. More...
struct | FinalMeshItemsT
| Definition of the mesh entities (items). More...
struct | FPropHandleT
struct | HalfedgeHandle
| Handle for a halfedge entity. More...
struct | HPropHandleT
class | LoopSchemeMaskT
struct | MergeTraits
struct | MeshCast
| Cast a mesh with different but identical traits into each other. More...
struct | MeshCast< const LhsMeshT &, const RhsMeshT & >
struct | MeshCast< const LhsMeshT *, const RhsMeshT * >
struct | MeshCast< LhsMeshT &, RhsMeshT & >
struct | MeshCast< LhsMeshT *, RhsMeshT * >
struct | MPropHandleT
class | NormalConeT
class | PolyConnectivity
| Connectivity Class for polygonal meshes. More...
struct | PolyMesh_ArrayKernel_GeneratorT
| Helper class to build a PolyMesh-type. More...
class | PolyMesh_ArrayKernelT
class | PolyMeshT
class | PropertyContainer
| A a container for properties. More...
class | PropertyManager
class | PropertyT
| Default property class for any type T. More...
class | PropertyT< bool >
class | PropertyT< std::string >
class | RandomNumberGenerator
class | SingletonT
class | StripifierT
class | TriConnectivity
| Connectivity Class for Triangle Meshes. More...
struct | TriMesh_ArrayKernel_GeneratorT
| Helper class to create a TriMesh-type based on ArrayKernelT. More...
class | TriMesh_ArrayKernelT
class | TriMeshT
class | VDPMSynthesizerViewerWidget
struct | vector_traits
class | VectorDataT
class | VectorT
struct | VertexHandle
| Handle for a vertex entity. More...
struct | VPropHandleT

## Typedefs
typedef TriMesh_ArrayKernelT < VDPM::MeshTraits > | VDPMMesh
typedef MeshViewerWidgetT < VDPMMesh > | MeshViewerWidget
typedef LoopSchemeMaskT < double, 100 > | LoopSchemeMaskDouble
typedef SingletonT < LoopSchemeMaskDouble > | LoopSchemeMaskDoubleSingleton
typedef VectorT< signed char, 1 > | Vec1c
typedef VectorT< unsigned char, 1 > | Vec1uc
typedef VectorT< signed short int, 1 > | Vec1s
typedef VectorT< unsigned short int, 1 > | Vec1us
typedef VectorT< signed int, 1 > | Vec1i
typedef VectorT< unsigned int, 1 > | Vec1ui
typedef VectorT< float, 1 > | Vec1f
typedef VectorT< double, 1 > | Vec1d
typedef VectorT< signed char, 2 > | Vec2c
typedef VectorT< unsigned char, 2 > | Vec2uc
typedef VectorT< signed short int, 2 > | Vec2s
typedef VectorT< unsigned short int, 2 > | Vec2us
typedef VectorT< signed int, 2 > | Vec2i
typedef VectorT< unsigned int, 2 > | Vec2ui
typedef VectorT< float, 2 > | Vec2f
typedef VectorT< double, 2 > | Vec2d
typedef VectorT< signed char, 3 > | Vec3c
typedef VectorT< unsigned char, 3 > | Vec3uc
typedef VectorT< signed short int, 3 > | Vec3s
typedef VectorT< unsigned short int, 3 > | Vec3us
typedef VectorT< signed int, 3 > | Vec3i
typedef VectorT< unsigned int, 3 > | Vec3ui
typedef VectorT< float, 3 > | Vec3f
typedef VectorT< double, 3 > | Vec3d
typedef VectorT< bool, 3 > | Vec3b
typedef VectorT< signed char, 4 > | Vec4c
typedef VectorT< unsigned char, 4 > | Vec4uc
typedef VectorT< signed short int, 4 > | Vec4s
typedef VectorT< unsigned short int, 4 > | Vec4us
typedef VectorT< signed int, 4 > | Vec4i
typedef VectorT< unsigned int, 4 > | Vec4ui
typedef VectorT< float, 4 > | Vec4f
typedef VectorT< double, 4 > | Vec4d
typedef VectorT< signed char, 5 > | Vec5c
typedef VectorT< unsigned char, 5 > | Vec5uc
typedef VectorT< signed short int, 5 > | Vec5s
typedef VectorT< unsigned short int, 5 > | Vec5us
typedef VectorT< signed int, 5 > | Vec5i
typedef VectorT< unsigned int, 5 > | Vec5ui
typedef VectorT< float, 5 > | Vec5f
typedef VectorT< double, 5 > | Vec5d
typedef VectorT< signed char, 6 > | Vec6c
typedef VectorT< unsigned char, 6 > | Vec6uc
typedef VectorT< signed short int, 6 > | Vec6s
typedef VectorT< unsigned short int, 6 > | Vec6us
typedef VectorT< signed int, 6 > | Vec6i
typedef VectorT< unsigned int, 6 > | Vec6ui
typedef VectorT< float, 6 > | Vec6f
typedef VectorT< double, 6 > | Vec6d

## Functions
template<class T , typename Real >
bool | is_zero (const T &_a, Real _eps)
template<class T1 , class T2 , typename Real >
bool | is_eq (const T1 &a, const T2 &b, Real _eps)
template<class T1 , class T2 , typename Real >
bool | is_gt (const T1 &a, const T2 &b, Real _eps)
template<class T1 , class T2 , typename Real >
bool | is_ge (const T1 &a, const T2 &b, Real _eps)
template<class T1 , class T2 , typename Real >
bool | is_lt (const T1 &a, const T2 &b, Real _eps)
template<class T1 , class T2 , typename Real >
bool | is_le (const T1 &a, const T2 &b, Real _eps)
float | eps__ (float)
double | eps__ (double)
template<class T >
bool | is_zero (const T &a)
template<class T1 , class T2 >
bool | is_eq (const T1 &a, const T2 &b)
template<class T1 , class T2 >
bool | is_gt (const T1 &a, const T2 &b)
template<class T1 , class T2 >
bool | is_ge (const T1 &a, const T2 &b)
template<class T1 , class T2 >
bool | is_lt (const T1 &a, const T2 &b)
template<class T1 , class T2 >
bool | is_le (const T1 &a, const T2 &b)
template<class T >
T | sane_aarg (T _aarg)
| Trigonometry/angles - related.
template<class T >
T | angle (T _cos_angle, T _sin_angle)
template<class T >
T | positive_angle (T _angle)
template<class T >
T | positive_angle (T _cos_angle, T _sin_angle)
template<class T >
T | deg_to_rad (const T &_angle)
template<class T >
T | rad_to_deg (const T &_angle)
double | log_ (double _value)
template<typename Scalar , int DIM, typename OtherScalar >
auto | operator* (const OtherScalar &_s, const VectorT< Scalar, DIM > &rhs) -> decltype(rhs.operator*(_s))
| Component wise multiplication from the left.
template<typename Scalar , int DIM>
auto | operator<< (std::ostream &os, const VectorT< Scalar, DIM > &_vec) -> typename std::enable_if< sizeof(decltype(os<< _vec[0])) >=0
| output a vector by printing its space-separated compontens
| for (int i=1;i< DIM;++i)
template<typename Scalar , int DIM>
auto | operator>> (std::istream &is, VectorT< Scalar, DIM > &_vec) -> typename std::enable_if< sizeof(decltype(is >> _vec[0])) >=0
| read the space-separated components of a vector from a stream
template<class Traits >
TriMesh_ArrayKernelT< Traits > & | TRIMESH_CAST (PolyMesh_ArrayKernelT< Traits > &_poly_mesh)
template<class Traits >
const TriMesh_ArrayKernelT < Traits > & | TRIMESH_CAST (const PolyMesh_ArrayKernelT< Traits > &_poly_mesh)
template<class Traits >
PolyMesh_ArrayKernelT< Traits > & | POLYMESH_CAST (TriMesh_ArrayKernelT< Traits > &_tri_mesh)
template<class Traits >
const PolyMesh_ArrayKernelT < Traits > & | POLYMESH_CAST (const TriMesh_ArrayKernelT< Traits > &_tri_mesh)
size_t | hash_value (const BaseHandle &h)
std::ostream & | operator<< (std::ostream &_os, const BaseHandle &_hnd)
| Write handle `_hnd` to stream `_os`.
template<typename LHS , typename KERNEL >
LHS | mesh_cast (PolyMeshT< KERNEL > &rhs)
| Cast a mesh with different but identical traits into each other. More...
template<typename LHS , typename KERNEL >
LHS | mesh_cast (PolyMeshT< KERNEL > *rhs)
template<typename LHS , typename KERNEL >
const LHS | mesh_cast (const PolyMeshT< KERNEL > &rhs)
template<typename LHS , typename KERNEL >
const LHS | mesh_cast (const PolyMeshT< KERNEL > *rhs)
| OSG_VECTOR_TRAITS (osg::Pnt4f)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Pnt3f)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Pnt2f)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Vec4f)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Vec3f)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Vec2f)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Pnt4d)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Pnt3d)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Pnt2d)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Vec4d)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Vec3d)
| Vector traits for OpenSG vector type.
| OSG_VECTOR_TRAITS (osg::Vec4ub)
| Vector traits for OpenSG vector type.
| OSG_COLOR_TRAITS (osg::Color3ub, 3)
| Vector traits for OpenSG color type.
| OSG_COLOR_TRAITS (osg::Color4ub, 4)
| Vector traits for OpenSG color type.
| OSG_COLOR_TRAITS (osg::Color3f, 3)
| Vector traits for OpenSG color type.
| OSG_COLOR_TRAITS (osg::Color4f, 4)
| Vector traits for OpenSG color type.
| PNT2VEC_CASTER (osg::Vec3f, osg::Pnt3f)
| convert Pnt3f to Vec3f
| PNT2VEC_CASTER (osg::Vec4f, osg::Pnt4f)
| convert Pnt4f to Vec4f
| PNT2VEC_CASTER (osg::Vec3d, osg::Pnt3d)
| convert Pnt3d to Vec3d
| PNT2VEC_CASTER (osg::Vec4d, osg::Pnt4d)
| convert Pnt4d to Vec4d
template<class _Mesh , class _PropertyHandle >
void | smooth_mesh_property (unsigned int _n_iters, _Mesh &_m, _PropertyHandle _pph)
template<class _Mesh >
void | smooth_mesh (_Mesh &_m, uint _n_iters)
Cast vector type to another vector type.
template<typename src_t , typename dst_t , int n>
void | vector_cast (const src_t &_src, dst_t &_dst, GenProg::Int2Type< n >)
| Cast vector type to another vector type by copying the vector elements.
template<typename src_t , typename dst_t >
void | vector_cast (const src_t &, dst_t &, GenProg::Int2Type< 0 >)
| Cast vector type to another vector type by copying the vector elements.
template<typename src_t , typename dst_t , int n>
void | vector_copy (const src_t &_src, dst_t &_dst, GenProg::Int2Type< n >)
| Cast vector type to another vector type by copying the vector elements.
template<typename src_t , typename dst_t >
void | vector_copy (const src_t &, dst_t &, GenProg::Int2Type< 0 >)
| Cast vector type to another vector type by copying the vector elements.
template<typename dst_t , typename src_t >
vector_caster< dst_t, src_t > ::return_type | vector_cast (const src_t &_src)
| Cast vector type to another vector type by copying the vector elements.
osg::Vec3f::ValueType | dot (const osg::Vec3f &_v1, const osg::Vec3f &_v2)
| Adapter for osg vector member computing a scalar product.
osg::Vec3f::ValueType | dot (const osg::Vec3f &_v1, const osg::Pnt3f &_v2)
| Adapter for osg vector member computing a scalar product.
osg::Vec2f::ValueType | dot (const osg::Vec2f &_v1, const osg::Vec2f &_v2)
| Adapter for osg vector member computing a scalar product.
osg::Vec3f | cross (const osg::Vec3f &_v1, const osg::Vec3f &_v2)
| Adapter for osg vector member computing a scalar product.

## Variables
const float | flt_eps__ = (float)1e-05
const double | dbl_eps__ = 1e-09
return | os
return | is

## Detailed Description

Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels and mesh traits.

Martin, 26.12.2004: 1) replaced resize(size()-1) with pop_back(), since the later is more efficient 2) replaced interface_.set_heap_position(entry(0), -1); with reset_heap_position() 3) added const modifier to various functions TODO: in the moment the heap does not conform to the HeapInterface specification, i.e., copies are passed instead of references. This is especially important for set_heap_position(), where the reference argument is non-const. The specification should be changed to reflect that the heap actually (only?) works when the heap entry is nothing more but a handle. TODO: change the specification of HeapInterface to make less(), greater() and get_heap_position() const. Needs changing DecimaterT. Might break someone's code.

## Typedef Documentation

typedef VectorT< signed char, 1 > OpenMesh::Vec1c

1-byte signed vector

Definition at line 723 of file Vector11T.hh.

typedef VectorT< double, 1 > OpenMesh::Vec1d

1-double vector

Definition at line 737 of file Vector11T.hh.

typedef VectorT< float, 1 > OpenMesh::Vec1f

1-float vector

Definition at line 735 of file Vector11T.hh.

typedef VectorT< signed int, 1 > OpenMesh::Vec1i

1-int signed vector

Definition at line 731 of file Vector11T.hh.

typedef VectorT< signed short int, 1 > OpenMesh::Vec1s

1-short signed vector

Definition at line 727 of file Vector11T.hh.

typedef VectorT< unsigned char, 1 > OpenMesh::Vec1uc

1-byte unsigned vector

Definition at line 725 of file Vector11T.hh.

typedef VectorT< unsigned int, 1 > OpenMesh::Vec1ui

1-int unsigned vector

Definition at line 733 of file Vector11T.hh.

typedef VectorT< unsigned short int, 1 > OpenMesh::Vec1us

1-short unsigned vector

Definition at line 729 of file Vector11T.hh.

typedef VectorT< signed char, 2 > OpenMesh::Vec2c

2-byte signed vector

Definition at line 740 of file Vector11T.hh.

typedef VectorT< double, 2 > OpenMesh::Vec2d

2-double vector

Definition at line 754 of file Vector11T.hh.

typedef VectorT< float, 2 > OpenMesh::Vec2f

2-float vector

Definition at line 752 of file Vector11T.hh.

typedef VectorT< signed int, 2 > OpenMesh::Vec2i

2-int signed vector

Definition at line 748 of file Vector11T.hh.

typedef VectorT< signed short int, 2 > OpenMesh::Vec2s

2-short signed vector

Definition at line 744 of file Vector11T.hh.

typedef VectorT< unsigned char, 2 > OpenMesh::Vec2uc

2-byte unsigned vector

Definition at line 742 of file Vector11T.hh.

typedef VectorT< unsigned int, 2 > OpenMesh::Vec2ui

2-int unsigned vector

Definition at line 750 of file Vector11T.hh.

typedef VectorT< unsigned short int, 2 > OpenMesh::Vec2us

2-short unsigned vector

Definition at line 746 of file Vector11T.hh.

typedef VectorT< bool, 3 > OpenMesh::Vec3b

3-bool vector

Definition at line 773 of file Vector11T.hh.

typedef VectorT< signed char, 3 > OpenMesh::Vec3c

3-byte signed vector

Definition at line 757 of file Vector11T.hh.

typedef VectorT< double, 3 > OpenMesh::Vec3d

3-double vector

Definition at line 771 of file Vector11T.hh.

typedef VectorT< float, 3 > OpenMesh::Vec3f

3-float vector

Definition at line 769 of file Vector11T.hh.

typedef VectorT< signed int, 3 > OpenMesh::Vec3i

3-int signed vector

Definition at line 765 of file Vector11T.hh.

typedef VectorT< signed short int, 3 > OpenMesh::Vec3s

3-short signed vector

Definition at line 761 of file Vector11T.hh.

typedef VectorT< unsigned char, 3 > OpenMesh::Vec3uc

3-byte unsigned vector

Definition at line 759 of file Vector11T.hh.

typedef VectorT< unsigned int, 3 > OpenMesh::Vec3ui

3-int unsigned vector

Definition at line 767 of file Vector11T.hh.

typedef VectorT< unsigned short int, 3 > OpenMesh::Vec3us

3-short unsigned vector

Definition at line 763 of file Vector11T.hh.

typedef VectorT< signed char, 4 > OpenMesh::Vec4c

4-byte signed vector

Definition at line 776 of file Vector11T.hh.

typedef VectorT< double, 4 > OpenMesh::Vec4d

4-double vector

Definition at line 790 of file Vector11T.hh.

typedef VectorT< float, 4 > OpenMesh::Vec4f

4-float vector

Definition at line 788 of file Vector11T.hh.

typedef VectorT< signed int, 4 > OpenMesh::Vec4i

4-int signed vector

Definition at line 784 of file Vector11T.hh.

typedef VectorT< signed short int, 4 > OpenMesh::Vec4s

4-short signed vector

Definition at line 780 of file Vector11T.hh.

typedef VectorT< unsigned char, 4 > OpenMesh::Vec4uc

4-byte unsigned vector

Definition at line 778 of file Vector11T.hh.

typedef VectorT< unsigned int, 4 > OpenMesh::Vec4ui

4-int unsigned vector

Definition at line 786 of file Vector11T.hh.

typedef VectorT< unsigned short int, 4 > OpenMesh::Vec4us

4-short unsigned vector

Definition at line 782 of file Vector11T.hh.

typedef VectorT< signed char, 5 > OpenMesh::Vec5c

5-byte signed vector

Definition at line 793 of file Vector11T.hh.

typedef VectorT< double, 5 > OpenMesh::Vec5d

5-double vector

Definition at line 807 of file Vector11T.hh.

typedef VectorT< float, 5 > OpenMesh::Vec5f

5-float vector

Definition at line 805 of file Vector11T.hh.

typedef VectorT< signed int, 5 > OpenMesh::Vec5i

5-int signed vector

Definition at line 801 of file Vector11T.hh.

typedef VectorT< signed short int, 5 > OpenMesh::Vec5s

5-short signed vector

Definition at line 797 of file Vector11T.hh.

typedef VectorT< unsigned char, 5 > OpenMesh::Vec5uc

5-byte unsigned vector

Definition at line 795 of file Vector11T.hh.

typedef VectorT< unsigned int, 5 > OpenMesh::Vec5ui

5-int unsigned vector

Definition at line 803 of file Vector11T.hh.

typedef VectorT< unsigned short int, 5 > OpenMesh::Vec5us

5-short unsigned vector

Definition at line 799 of file Vector11T.hh.

typedef VectorT< signed char, 6 > OpenMesh::Vec6c

6-byte signed vector

Definition at line 810 of file Vector11T.hh.

typedef VectorT< double, 6 > OpenMesh::Vec6d

6-double vector

Definition at line 824 of file Vector11T.hh.

typedef VectorT< float, 6 > OpenMesh::Vec6f

6-float vector

Definition at line 822 of file Vector11T.hh.

typedef VectorT< signed int, 6 > OpenMesh::Vec6i

6-int signed vector

Definition at line 818 of file Vector11T.hh.

typedef VectorT< signed short int, 6 > OpenMesh::Vec6s

6-short signed vector

Definition at line 814 of file Vector11T.hh.

typedef VectorT< unsigned char, 6 > OpenMesh::Vec6uc

6-byte unsigned vector

Definition at line 812 of file Vector11T.hh.

typedef VectorT< unsigned int, 6 > OpenMesh::Vec6ui

6-int unsigned vector

Definition at line 820 of file Vector11T.hh.

typedef VectorT< unsigned short int, 6 > OpenMesh::Vec6us

6-short unsigned vector

Definition at line 816 of file Vector11T.hh.

## Function Documentation

template<class T >

T OpenMesh::angle | ( | T | _cos_angle,
|  | T | _sin_angle
| ) |  |

returns the angle determined by its cos and the sign of its sin result is positive if the angle is in [0:pi] and negative if it is in [pi:2pi]

Definition at line 145 of file MathDefs.hh.

template<class T , typename Real >

bool OpenMesh::is_zero | ( | const T & | _a,
|  | Real | _eps
| ) |  |
| inline

comparison operators with user-selected precision control

Definition at line 66 of file MathDefs.hh.

template<typename LHS , typename KERNEL >

LHS OpenMesh::mesh_cast | ( | PolyMeshT< KERNEL > & | rhs | ) |

Cast a mesh with different but identical traits into each other.

Example:

struct TriTraits1 : public OpenMesh::DefaultTraits {
typedef Vec3d Point;
};
struct TriTraits2 : public OpenMesh::DefaultTraits {
typedef Vec3d Point;
};
struct TriTraits3 : public OpenMesh::DefaultTraits {
typedef Vec3f Point;
};
TriMesh_ArrayKernelT<TriTraits1> a;
TriMesh_ArrayKernelT<TriTraits2> &b = mesh_cast<TriMesh_ArrayKernelT<TriTraits2>&>(a); // OK
TriMesh_ArrayKernelT<TriTraits3> &c = mesh_cast<TriMesh_ArrayKernelT<TriTraits3>&>(a); // ERROR

See also
  MeshCast

Parameters

  rhs |

Returns

Definition at line 592 of file PolyMeshT.hh.