|
| | 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 , typename PROP_VALUE > |
| void | set_range (HandleTypeIterator begin, HandleTypeIterator end, const PROP_VALUE &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. |