|
| PropertyManager (MeshT &mesh, const char *propname, bool existing=false) |
| Constructor. More...
|
|
void | swap (PropertyManager &rhs) |
|
bool | isValid () const |
|
| operator bool () const |
|
const PROPTYPE & | getRawProperty () const |
|
const std::string & | getName () const |
|
MeshT & | getMesh () const |
|
| operator Proxy () |
|
Proxy | move () |
|
| PropertyManager (Proxy p) |
|
PropertyManager & | operator= (Proxy p) |
|
Proxy | duplicate (const char *clone_name) |
|
void | retain (bool doRetain=true) |
| Disable lifecycle management for this property. More...
|
|
PROPTYPE & | operator* () |
| Access the encapsulated property.
|
|
const PROPTYPE & | operator* () const |
| Access the encapsulated property.
|
|
template<typename HandleType > |
PROPTYPE::reference | operator[] (const HandleType &handle) |
| Enables convenient access to the encapsulated property. More...
|
|
template<typename HandleType > |
PROPTYPE::const_reference | operator[] (const HandleType &handle) const |
| Enables convenient access to the encapsulated property. More...
|
|
template<typename HandleTypeIterator > |
void | set_range (HandleTypeIterator begin, HandleTypeIterator end, typename PROPTYPE::const_reference value) |
| Conveniently set the property for an entire range of values. More...
|
|
template<typename HandleTypeIterator , typename PROPTYPE_2 , typename MeshT_2 , typename HandleTypeIterator_2 > |
void | copy_to (HandleTypeIterator begin, HandleTypeIterator end, PropertyManager< PROPTYPE_2, MeshT_2 > &dst_propmanager, HandleTypeIterator_2 dst_begin, HandleTypeIterator_2 dst_end) const |
| Conveniently transfer the values managed by one property manager onto the values managed by a different property manager. More...
|
|
template<typename RangeType , typename PROPTYPE_2 , typename MeshT_2 , typename RangeType_2 > |
void | copy_to (const RangeType &range, PropertyManager< PROPTYPE_2, MeshT_2 > &dst_propmanager, const RangeType_2 &dst_range) const |
|
|
static bool | propertyExists (MeshT &mesh, const char *propname) |
|
static Proxy | createIfNotExists (MeshT &mesh, const char *propname) |
| Create a property manager for the supplied property and mesh. More...
|
|
template<typename RangeType , typename MeshT_2 , typename RangeType_2 > |
static void | copy (const char *prop_name, MeshT &src_mesh, const RangeType &src_range, MeshT_2 &dst_mesh, const RangeType_2 &dst_range) |
| Copy the values of a property from a source range to a target range. More...
|
|
template<typename PROPTYPE, typename MeshT>
class OpenMesh::PropertyManager< PROPTYPE, MeshT >
This class is intended to manage the lifecycle of properties.
It also defines convenience operators to access the encapsulated property's value.
Usage example:
TriMesh mesh;
PropertyManager<VPropHandleT<bool>, TriMesh> visited(mesh, "visited.plugin-example.i8.informatik.rwth-aachen.de");
for (TriMesh::VertexIter vh_it = mesh.begin(); ... ; ...) {
if (!visited[*vh_it]) {
visitComponent(mesh, *vh_it, visited);
}
}
template<typename PROPTYPE, typename MeshT>
template<typename RangeType , typename MeshT_2 , typename RangeType_2 >
static void OpenMesh::PropertyManager< PROPTYPE, MeshT >::copy |
( |
const char * |
prop_name, |
|
|
MeshT & |
src_mesh, |
|
|
const RangeType & |
src_range, |
|
|
MeshT_2 & |
dst_mesh, |
|
|
const RangeType_2 & |
dst_range |
|
) |
| |
|
inlinestatic |
Copy the values of a property from a source range to a target range.
The source range must not be smaller than the target range.
- Parameters
-
prop_name | Name of the property to copy. Must exist on the source mesh. Will be created on the target mesh if it doesn't exist. |
src_mesh | Source mesh from which to copy. |
src_range | Source range which to copy. Must not be smaller than dst_range. |
dst_mesh | Destination mesh on which to copy. |
dst_range | Destination range. |
template<typename PROPTYPE, typename MeshT>
template<typename HandleTypeIterator , typename PROPTYPE_2 , typename MeshT_2 , typename HandleTypeIterator_2 >
void OpenMesh::PropertyManager< PROPTYPE, MeshT >::copy_to |
( |
HandleTypeIterator |
begin, |
|
|
HandleTypeIterator |
end, |
|
|
PropertyManager< PROPTYPE_2, MeshT_2 > & |
dst_propmanager, |
|
|
HandleTypeIterator_2 |
dst_begin, |
|
|
HandleTypeIterator_2 |
dst_end |
|
) |
| const |
|
inline |
Conveniently transfer the values managed by one property manager onto the values managed by a different property manager.
- Parameters
-
begin | Start iterator. Needs to dereference to HandleType. Will be used with this property manager. |
end | End iterator. (Exclusive.) Will be used with this property manager. |
dst_propmanager | The destination property manager. |
dst_begin | Start iterator. Needs to dereference to the HandleType of dst_propmanager. Will be used with dst_propmanager. |
dst_end | End iterator. (Exclusive.) Will be used with dst_propmanager. Used to double check the bounds. |