OpenMesh: OpenMesh Namespace Reference

| OpenMesh

Namespaces | Classes | Typedefs | Functions | Variables
OpenMesh Namespace Reference

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

## Namespaces
| Attributes
| This namespace holds per item attributes like normal/color.
| Concepts
| Descriptions of the concepts used in OpenMesh.
| Decimater
| Software related to mesh decimation.
| GenProg
| Utilities for generative programming.
| IO
| This namespace contains functions for reading and writing polygonal meshes and a list of supported file formats.
| Iterators
| Contains all mesh iterators and circulators.
| Kernel_OSG
| In this namespace resides the OpenSG integration of OpenMesh.
| Utils
| Collection of little utility classes and helpers.
| VDPM
| Software related to view dependent progressive meshes.

## Classes
class | ArrayKernel
| Mesh kernel using arrays for mesh item storage. More...
class | AttribKernelT
| The attribute kernel adds all standard properties to the kernel. More...
class | AutoPropertyHandleT
class | BaseHandle
| Base class for all handle types. More...
class | BaseKernel
| This class provides low-level property management like adding/removing properties and access to properties. More...
class | BaseMesh
| Base class for all meshes. More...
class | BaseProperty
| Abstract class defining the basic interface of a dynamic property. More...
struct | BasePropHandleT
| Base property handle. More...
struct | color_caster< osg::Color3f, osg::Color3ub >
| Helper struct. More...
struct | color_caster< osg::Color3ub, osg::Color3f >
| Helper struct. More...
class | DefaultTraits
| Base class for all traits. More...
struct | EdgeHandle
| Handle for a edge entity. More...
class | Endian
| Determine byte order of host system. More...
struct | EPropHandleT
| Handle representing an edge property. More...
struct | FaceHandle
| Handle for a face entity. More...
struct | FinalMeshItemsT
| Definition of the mesh entities (items). More...
struct | FPropHandleT
| Handle representing a face property. More...
struct | HalfedgeHandle
| Handle for a halfedge entity. More...
struct | HPropHandleT
| Handle representing a halfedge property. More...
class | LoopSchemeMaskT
| implements cache for the weights of the original Loop scheme supported: More...
struct | MergeTraits
| Helper class to merge two mesh traits. More...
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
| Handle representing a mesh property. More...
class | NormalConeT
| /class NormalCone NormalCone.hh <ACG/Geometry/Types/NormalCone.hh> More...
class | PolyConnectivity
| Connectivity Class for polygonal meshes. More...
struct | PolyMesh_ArrayKernel_GeneratorT
| Helper class to build a PolyMesh-type. More...
class | PolyMesh_ArrayKernelT
| Polygonal mesh based on the ArrayKernel. More...
class | PolyMeshT
| Base type for a polygonal mesh. More...
class | PropertyContainer
| A a container for properties. More...
class | PropertyManager
| This class is intended to manage the lifecycle of properties. More...
class | PropertyT
| Default property class for any type T. More...
class | PropertyT< bool >
| Property specialization for bool type. More...
class | PropertyT< std::string >
| Property specialization for std::string type. More...
class | RandomNumberGenerator
| Generate a random number between 0.0 and 1.0 with a guaranteed resolution ( Number of possible values ) More...
class | SingletonT
| A simple singleton template. More...
class | StripifierT
| This class decomposes a triangle mesh into several triangle strips. More...
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
| Triangle mesh based on the ArrayKernel. More...
class | TriMeshT
| Base type for a triangle mesh. More...
class | VDPMSynthesizerViewerWidget
struct | vector_caster< osg::Vec3d, osg::Pnt3d >
| convert Pnt3d to Vec3d More...
struct | vector_caster< osg::Vec3f, osg::Pnt3f >
| convert Pnt3f to Vec3f More...
struct | vector_caster< osg::Vec4d, osg::Pnt4d >
| convert Pnt4d to Vec4d More...
struct | vector_caster< osg::Vec4f, osg::Pnt4f >
| convert Pnt4f to Vec4f More...
struct | vector_traits
| Helper class providing information about a vector type. More...
struct | vector_traits< Custom::Vec< DIM > >
struct | vector_traits< osg::Color3f >
| Vector traits for OpenSG color type. More...
struct | vector_traits< osg::Color3ub >
| Vector traits for OpenSG color type. More...
struct | vector_traits< osg::Color4f >
| Vector traits for OpenSG color type. More...
struct | vector_traits< osg::Color4ub >
| Vector traits for OpenSG color type. More...
struct | vector_traits< osg::Pnt2d >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Pnt2f >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Pnt3d >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Pnt3f >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Pnt4d >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Pnt4f >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Vec2f >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Vec3d >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Vec3f >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Vec4d >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Vec4f >
| Vector traits for OpenSG vector type. More...
struct | vector_traits< osg::Vec4ub >
| Vector traits for OpenSG vector type. More...
class | VectorT
struct | VertexHandle
| Handle for a vertex entity. More...
struct | VPropHandleT
| Handle representing a vertex property. More...

## 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
| 1-byte signed vector
typedef VectorT< unsigned char, 1 > | Vec1uc
| 1-byte unsigned vector
typedef VectorT< signed short int, 1 > | Vec1s
| 1-short signed vector
typedef VectorT< unsigned short int, 1 > | Vec1us
| 1-short unsigned vector
typedef VectorT< signed int, 1 > | Vec1i
| 1-int signed vector
typedef VectorT< unsigned int, 1 > | Vec1ui
| 1-int unsigned vector
typedef VectorT< float, 1 > | Vec1f
| 1-float vector
typedef VectorT< double, 1 > | Vec1d
| 1-double vector
typedef VectorT< signed char, 2 > | Vec2c
| 2-byte signed vector
typedef VectorT< unsigned char, 2 > | Vec2uc
| 2-byte unsigned vector
typedef VectorT< signed short int, 2 > | Vec2s
| 2-short signed vector
typedef VectorT< unsigned short int, 2 > | Vec2us
| 2-short unsigned vector
typedef VectorT< signed int, 2 > | Vec2i
| 2-int signed vector
typedef VectorT< unsigned int, 2 > | Vec2ui
| 2-int unsigned vector
typedef VectorT< float, 2 > | Vec2f
| 2-float vector
typedef VectorT< double, 2 > | Vec2d
| 2-double vector
typedef VectorT< signed char, 3 > | Vec3c
| 3-byte signed vector
typedef VectorT< unsigned char, 3 > | Vec3uc
| 3-byte unsigned vector
typedef VectorT< signed short int, 3 > | Vec3s
| 3-short signed vector
typedef VectorT< unsigned short int, 3 > | Vec3us
| 3-short unsigned vector
typedef VectorT< signed int, 3 > | Vec3i
| 3-int signed vector
typedef VectorT< unsigned int, 3 > | Vec3ui
| 3-int unsigned vector
typedef VectorT< float, 3 > | Vec3f
| 3-float vector
typedef VectorT< double, 3 > | Vec3d
| 3-double vector
typedef VectorT< bool, 3 > | Vec3b
| 3-bool vector
typedef VectorT< signed char, 4 > | Vec4c
| 4-byte signed vector
typedef VectorT< unsigned char, 4 > | Vec4uc
| 4-byte unsigned vector
typedef VectorT< signed short int, 4 > | Vec4s
| 4-short signed vector
typedef VectorT< unsigned short int, 4 > | Vec4us
| 4-short unsigned vector
typedef VectorT< signed int, 4 > | Vec4i
| 4-int signed vector
typedef VectorT< unsigned int, 4 > | Vec4ui
| 4-int unsigned vector
typedef VectorT< float, 4 > | Vec4f
| 4-float vector
typedef VectorT< double, 4 > | Vec4d
| 4-double vector
typedef VectorT< signed char, 5 > | Vec5c
| 5-byte signed vector
typedef VectorT< unsigned char, 5 > | Vec5uc
| 5-byte unsigned vector
typedef VectorT< signed short int, 5 > | Vec5s
| 5-short signed vector
typedef VectorT< unsigned short int, 5 > | Vec5us
| 5-short unsigned vector
typedef VectorT< signed int, 5 > | Vec5i
| 5-int signed vector
typedef VectorT< unsigned int, 5 > | Vec5ui
| 5-int unsigned vector
typedef VectorT< float, 5 > | Vec5f
| 5-float vector
typedef VectorT< double, 5 > | Vec5d
| 5-double vector
typedef VectorT< signed char, 6 > | Vec6c
| 6-byte signed vector
typedef VectorT< unsigned char, 6 > | Vec6uc
| 6-byte unsigned vector
typedef VectorT< signed short int, 6 > | Vec6s
| 6-short signed vector
typedef VectorT< unsigned short int, 6 > | Vec6us
| 6-short unsigned vector
typedef VectorT< signed int, 6 > | Vec6i
| 6-int signed vector
typedef VectorT< unsigned int, 6 > | Vec6ui
| 6-int unsigned vector
typedef VectorT< float, 6 > | Vec6f
| 6-float vector
typedef VectorT< double, 6 > | Vec6d
| 6-double vector

## Functions
template<class T , typename Real >
bool | is_zero (const T &_a, Real _eps)
| comparison operators with user-selected precision control
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)
| 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]
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)
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.

## Function Documentation

## ◆ mesh_cast()

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