Classes | Public Types | Static Public Member Functions
vcg::tri::Append< MeshLeft, ConstMeshRight > Class Template Reference

Class to safely duplicate and append (portion of) meshes. More...

#include <append.h>

List of all members.

Classes

struct  Remap

Public Types

typedef MeshLeft::CoordType CoordLeft
typedef ConstMeshRight::CoordType CoordRight
typedef MeshLeft::EdgeIterator EdgeIteratorLeft
typedef
ConstMeshRight::EdgeIterator 
EdgeIteratorRight
typedef MeshLeft::EdgeType EdgeLeft
typedef ConstMeshRight::EdgeType EdgeRight
typedef MeshLeft::FaceIterator FaceIteratorLeft
typedef
ConstMeshRight::FaceIterator 
FaceIteratorRight
typedef MeshLeft::FaceType FaceLeft
typedef ConstMeshRight::FacePointer FacePointerRight
typedef ConstMeshRight::FaceType FaceRight
typedef MeshLeft::HEdgeIterator HEdgeIteratorLeft
typedef
ConstMeshRight::HEdgeIterator 
HEdgeIteratorRight
typedef MeshLeft::HEdgeType HEdgeLeft
typedef ConstMeshRight::HEdgeType HEdgeRight
typedef MeshLeft::ScalarType ScalarLeft
typedef ConstMeshRight::ScalarType ScalarRight
typedef MeshLeft::VertexIterator VertexIteratorLeft
typedef
ConstMeshRight::VertexIterator 
VertexIteratorRight
typedef MeshLeft::VertexType VertexLeft
typedef MeshLeft::VertexPointer VertexPointerLeft
typedef
ConstMeshRight::VertexPointer 
VertexPointerRight
typedef ConstMeshRight::VertexType VertexRight

Static Public Member Functions

static void ImportEdgeAdj (MeshLeft &ml, ConstMeshRight &mr, EdgeLeft &el, const EdgeRight &er, Remap &remap)
static void ImportFaceAdj (MeshLeft &ml, ConstMeshRight &mr, FaceLeft &fl, const FaceRight &fr, Remap &remap)
static void ImportHEdgeAdj (MeshLeft &ml, ConstMeshRight &mr, HEdgeLeft &hl, const HEdgeRight &hr, Remap &remap, bool)
static void ImportVertexAdj (MeshLeft &ml, ConstMeshRight &mr, VertexLeft &vl, VertexRight &vr, Remap &remap)
static void Mesh (MeshLeft &ml, ConstMeshRight &mr, const bool selected=false, const bool adjFlag=false)
 Append the second mesh to the first one.
static void MeshCopy (MeshLeft &ml, ConstMeshRight &mr, bool selected=false, const bool adjFlag=false)
 Copy the second mesh over the first one. The first mesh is destroyed. If requested only the selected elements are copied.
static void Selected (MeshLeft &ml, ConstMeshRight &mr)
 Append only the selected elements of second mesh to the first one.

Detailed Description

template<class MeshLeft, class ConstMeshRight>
class vcg::tri::Append< MeshLeft, ConstMeshRight >

Class to safely duplicate and append (portion of) meshes.

Adding elements to a mesh, like faces and vertices can involve the reallocation of the vectors of the involved elements. This class provide the only safe methods to add elements of a mesh to another one.

See also:
allocation

Definition at line 40 of file append.h.


Member Typedef Documentation

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::CoordType vcg::tri::Append< MeshLeft, ConstMeshRight >::CoordLeft

Definition at line 44 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::CoordType vcg::tri::Append< MeshLeft, ConstMeshRight >::CoordRight

Definition at line 57 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::EdgeIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::EdgeIteratorLeft

Definition at line 51 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::EdgeIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::EdgeIteratorRight

Definition at line 64 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::EdgeType vcg::tri::Append< MeshLeft, ConstMeshRight >::EdgeLeft

Definition at line 46 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::EdgeType vcg::tri::Append< MeshLeft, ConstMeshRight >::EdgeRight

Definition at line 59 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::FaceIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::FaceIteratorLeft

Definition at line 53 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::FaceIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::FaceIteratorRight

Definition at line 66 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::FaceType vcg::tri::Append< MeshLeft, ConstMeshRight >::FaceLeft

Definition at line 47 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::FacePointer vcg::tri::Append< MeshLeft, ConstMeshRight >::FacePointerRight

Definition at line 67 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::FaceType vcg::tri::Append< MeshLeft, ConstMeshRight >::FaceRight

Definition at line 61 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::HEdgeIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::HEdgeIteratorLeft

Definition at line 52 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::HEdgeIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::HEdgeIteratorRight

Definition at line 65 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::HEdgeType vcg::tri::Append< MeshLeft, ConstMeshRight >::HEdgeLeft

Definition at line 48 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::HEdgeType vcg::tri::Append< MeshLeft, ConstMeshRight >::HEdgeRight

Definition at line 60 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::ScalarType vcg::tri::Append< MeshLeft, ConstMeshRight >::ScalarLeft

Definition at line 43 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::ScalarType vcg::tri::Append< MeshLeft, ConstMeshRight >::ScalarRight

Definition at line 56 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::VertexIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::VertexIteratorLeft

Definition at line 50 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::VertexIterator vcg::tri::Append< MeshLeft, ConstMeshRight >::VertexIteratorRight

Definition at line 63 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::VertexType vcg::tri::Append< MeshLeft, ConstMeshRight >::VertexLeft

Definition at line 45 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef MeshLeft::VertexPointer vcg::tri::Append< MeshLeft, ConstMeshRight >::VertexPointerLeft

Definition at line 49 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::VertexPointer vcg::tri::Append< MeshLeft, ConstMeshRight >::VertexPointerRight

Definition at line 62 of file append.h.

template<class MeshLeft , class ConstMeshRight >
typedef ConstMeshRight::VertexType vcg::tri::Append< MeshLeft, ConstMeshRight >::VertexRight

Definition at line 58 of file append.h.


Member Function Documentation

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::ImportEdgeAdj ( MeshLeft &  ml,
ConstMeshRight &  mr,
EdgeLeft el,
const EdgeRight er,
Remap remap 
) [inline, static]

Definition at line 96 of file append.h.

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::ImportFaceAdj ( MeshLeft &  ml,
ConstMeshRight &  mr,
FaceLeft fl,
const FaceRight fr,
Remap remap 
) [inline, static]

Definition at line 120 of file append.h.

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::ImportHEdgeAdj ( MeshLeft &  ml,
ConstMeshRight &  mr,
HEdgeLeft hl,
const HEdgeRight hr,
Remap remap,
bool   
) [inline, static]

Definition at line 149 of file append.h.

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::ImportVertexAdj ( MeshLeft &  ml,
ConstMeshRight &  mr,
VertexLeft vl,
VertexRight vr,
Remap remap 
) [inline, static]

Definition at line 74 of file append.h.

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::Mesh ( MeshLeft &  ml,
ConstMeshRight &  mr,
const bool  selected = false,
const bool  adjFlag = false 
) [inline, static]

Append the second mesh to the first one.

The first mesh is not destroyed and no attempt of avoid duplication of already present elements is done. If requested only the selected elements are appended to the first one. The second mesh is not changed at all (it could be constant) with the exception of the selection (see below note).

Note:
If the the selection of the vertexes is not consistent with the face selection the append could build faces referencing non existent vertices so it is mandatory that the selection of the vertices reflects the loose selection from edges and faces (e.g. if a face is selected then all its vertices must be selected).
Attributes. This function will copy only those attributes that are present in both meshes. Two attributes in different meshes are considered the same iff they have the same name and the same type. This may be deceiving because they could in fact have different semantic, but this is up to the developer. If the left mesh has attributes that are not in the right mesh, their values for the elements of the right mesh will be uninitialized

Definition at line 203 of file append.h.

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::MeshCopy ( MeshLeft &  ml,
ConstMeshRight &  mr,
bool  selected = false,
const bool  adjFlag = false 
) [inline, static]

Copy the second mesh over the first one. The first mesh is destroyed. If requested only the selected elements are copied.

Definition at line 398 of file append.h.

template<class MeshLeft , class ConstMeshRight >
static void vcg::tri::Append< MeshLeft, ConstMeshRight >::Selected ( MeshLeft &  ml,
ConstMeshRight &  mr 
) [inline, static]

Append only the selected elements of second mesh to the first one.

It is just a wrap of the main Append::Mesh()

Definition at line 408 of file append.h.


The documentation for this class was generated from the following file:


shape_reconstruction
Author(s): Roberto Martín-Martín
autogenerated on Sat Jun 8 2019 18:41:56