| OpenMesh

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

- Namespace List
- Namespace Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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.
| Python
| This namespace contains classes and functions that are used to expose OpenMesh to Python.
| 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 the basic 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< 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...
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

## 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<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)
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 &_src, dst_t &_dst, 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 &_src, dst_t &_dst, 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

## 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

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