Developer Documentation

Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
OVMPropertyModel< MeshT > Class Template Reference
Inheritance diagram for OVMPropertyModel< MeshT >:

## Public Member Functions
| OVMPropertyModel (MeshT *mesh, int objectID, QObject *parent=0)
virtual void | updateWidget (const QModelIndexList &selectedIndices)
| Updates the widget.
void | resetPicking ()
| Disables picking.
virtual void | pickProperty ()
| Toggle picking on and off. More...
virtual void | pickModeChanged (const std::string &_mode)
| Handles changing of pick mode.
virtual void | mouseEvent (QMouseEvent *_event)
| Handles mouse events for picking. More...
virtual bool | parseHeader (QString header, PropertyVisualizer *&propVis, unsigned int &n)
| Parses the property file header. More...
Public Member Functions inherited from OVMPropertyModelSubclass
| OVMPropertyModelSubclass (QObject *parent=0)
Public Member Functions inherited from SingleObjectPropertyModel
| SingleObjectPropertyModel (QObject *parent=0)
virtual int | rowCount (const QModelIndex &parent=QModelIndex()) const override
virtual QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const override
virtual QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override
virtual void | objectUpdated () override
| Revisualizes visualized properties.
virtual void | visualize (QModelIndexList selectedIndices, QWidgetList widgets=QWidgetList()) override
| Visualizes the selected properties. More...
virtual void | removeProperty (QModelIndexList selectedIndices) override
| Removes the selected properties.
virtual void | duplicateProperty (QModelIndexList selectedIndices) override
| Duplicates the selected properties.
virtual void | clear (QModelIndexList selectedIndices) override
| Clears the selected property visualization.
void | hideWidget () override
| Hides the widget.
QWidget * | getWidget () override
| Returns the widget.
void | connectLogs (PropertyVisualizer *propViz) override
| Connects the PropertyVisualizer log signals with the log slot.
virtual PropertyInfo | getPropertyInfo (const QModelIndex index) const override
| Returns the property info for the property with the given index.
virtual QScriptValue | getScriptObject (const QModelIndex index, QScriptContext *ctx)
| Returns a qscript object that can be used to access visualisation parameters.
Public Member Functions inherited from PropertyModel
| PropertyModel (QObject *parent=0)
QModelIndex | indexFromFancyPropName (const QString &propName) const
| Returns the index of the property with the given name.
QModelIndex | indexFromPlainPropName (const QString &propName) const
| Returns the index of the property with the given name.

## Static Public Member Functions
static bool | isBoolType (const PropertyInfo &propInfo)
static bool | isBoolType (const TypeInfoWrapper &typeInfo)
static bool | isIntType (const PropertyInfo &propInfo)
static bool | isIntType (const TypeInfoWrapper &typeInfo)
static bool | isDoubleType (const PropertyInfo &propInfo)
static bool | isDoubleType (const TypeInfoWrapper &typeInfo)
static bool | isUnsignedIntType (const PropertyInfo &propInfo)
static bool | isUnsignedIntType (const TypeInfoWrapper &typeInfo)
static bool | isVec3dType (const PropertyInfo &propInfo)
static bool | isVec3dType (const TypeInfoWrapper &typeInfo)
static bool | isVec3fType (const PropertyInfo &propInfo)
static bool | isVec3fType (const TypeInfoWrapper &typeInfo)
static bool | isVectorType (const PropertyInfo &propInfo)
static bool | isVectorType (const TypeInfoWrapper &typeInfo)
static bool | isMatrix3x3Type (const PropertyInfo &propInfo)
static bool | isMatrix3x3Type (const TypeInfoWrapper &typeInfo)

## Protected Member Functions
virtual QString | getLoadFilenameFilter ()
| Returns the filename filter for loading.
virtual QString | getSaveFilenameFilter (unsigned int propId)
| Returns the filename filter for saving.
Protected Member Functions inherited from SingleObjectPropertyModel
PropertyVisualizer * | getPropertyVisualizer (QString propName, PropertyInfo::ENTITY_FILTER filter, TypeInfoWrapper typeInfo)
| Returns a PropertyVisualizer.
bool | isPropertyFree (QString propName, PropertyInfo::ENTITY_FILTER filter, TypeInfoWrapper typeInfo)
| Checks if the property name is still available.
QString | getLoadFilename ()
| Asks the user for a file to load.
QString | getSaveFilename (unsigned int propId)
| Asks the user for a file to load.
virtual QString | getDefaultSaveFilename (unsigned int propId)
| Returns the default file name.
void | saveProperty (unsigned int propId)
| Saves property.
void | loadProperty ()
| Loads property.
virtual void | setPropertyFromFile (QTextStream &file_stream, unsigned int n, PropertyVisualizer *propVis)
| Sets the property values from a given file.

## Private Types
typedef std::set< TypeInfoWrapper > | TypeInfoWrapperSet

## Private Member Functions
virtual void | combine ()
| Combines two properties. More...
bool | combinable (PropertyVisualizer *propertyVisualizer1, PropertyVisualizer *propertyVisualizer2) const
| Checks if two properties are combinable. More...
virtual void | saveProperty ()
| Saves the currently slected properties.
void | gatherProperties (MeshT *mesh, typename MeshT::Properties::const_iterator props_first, typename MeshT::Properties::const_iterator props_last, PropertyInfo::ENTITY_FILTER filter)
| Searches for properties with a specific entity type and creates visualizers.
void | gatherProperties ()
| Searches for all properties and creates the visualizers.
bool | isSupported (OpenVolumeMesh::BaseProperty *const baseProp) const
| Checks if visualizing this property is supported. More...
bool | isSupported (QString friendlyName) const
| Checks if visualizing this type of property is supported. More...
bool | isNew (OpenVolumeMesh::BaseProperty *const baseProp, PropertyInfo::ENTITY_FILTER filter) const
| Checks if we already created a PropertyVisualizer for this property. More...
bool | isPropertyFree (QString propName, PropertyInfo::ENTITY_FILTER filter, TypeInfoWrapper typeInfo)
| Checks if a property name is still available for an entity type and a property type. More...
TypeInfoWrapper | getSupportedTypeInfoWrapper (OpenVolumeMesh::BaseProperty *const baseProp) const
| Returns the TypeInfoWrapper for the property if it is supported. More...
TypeInfoWrapper | getSupportedTypeInfoWrapper (QString friendlyName, PropertyInfo::ENTITY_FILTER filter) const
| Returns the TypeInfoWrapper for the type of property if it is supported. More...
bool | isEntityType (const TypeInfoWrapper &typeInfo, PropertyInfo::ENTITY_FILTER entity_type) const
void | addPropertyVisualizer (OpenVolumeMesh::BaseProperty *const baseProp, MeshT *mesh, PropertyInfo::ENTITY_FILTER filter)
| Adds a new PropertyVisualizer. More...
void | addProperty (QString propName, QString friendlyTypeName, PropertyInfo::ENTITY_FILTER filter)
| Adds a new property to the mesh. More...
void | initializeSupportedPropertyTypes ()

## Private Attributes
MeshT * | mesh_
int | objectID_
QPushButton | bCombine
const PropertyInfo * | mCombineProperty1
const PropertyInfo * | mCombineProperty2
LoadSaveWidget | mLoadSaveWidget
PickWidget | mPickWidget
bool | pickModeActive
std::string | lastPickMode
Viewer::ActionMode | lastActionMode
TypeInfoWrapperSet | supportedPropertyTypes

## Additional Inherited Members
Public Slots inherited from OVMPropertyModelSubclass
virtual void | slotCombine ()
virtual void | slotSaveProperty ()
virtual void | slotLoadProperty ()
virtual void | slotPickProperty ()
Signals inherited from SingleObjectPropertyModel
void | log (Logtype _type, QString _message)
void | log (QString _message)
Protected Attributes inherited from SingleObjectPropertyModel
std::vector< PropertyVisualizer * > | propertyVisualizers
QWidget * | widgets
QModelIndexList | currentlySelectedIndices
std::vector< unsigned int > | currentlyVisualizedIndices

## Detailed Description

### template<typename MeshT>
class OVMPropertyModel< MeshT >

Definition at line 72 of file OVMPropertyModelT.hh.

## Member Function Documentation

## ◆ addProperty()

template<typename MeshT >

void OVMPropertyModel< MeshT >::addProperty | ( | QString | propName,
|  | QString | friendlyTypeName,
|  | PropertyInfo::ENTITY_FILTER | filter
| ) |  |
| private

Adds a new property to the mesh.

Parameters

  propName | The name of the property that should be added.
  friendlyTypeName | The type of the property.
  filter | The entity type of the property.

This method adds a new property to the mesh. The types "Vec3d", "Vec3d", "double", "unsigned int", "int" and "bool" can be added for every entity type.

Definition at line 768 of file OVMPropertyModelT_impl.hh.

## ◆ addPropertyVisualizer()

template<typename MeshT >

void OVMPropertyModel< MeshT >::addPropertyVisualizer | ( | OpenVolumeMesh::BaseProperty *const | baseProp,
|  | MeshT * | mesh,
|  | PropertyInfo::ENTITY_FILTER | filter
| ) |  |
| private

Adds a new PropertyVisualizer.

Parameters

  baseProp | A pointer to the property that should be visualized.
  mesh | A pointer to the mesh whose properties should be visualized.
  filter | The entity type that should be visualized.

This method creates a new PropertyVisualizer depending on the provieded parameters and adds it to the list of PropertyVisualizers.

Definition at line 739 of file OVMPropertyModelT_impl.hh.

## ◆ combinable()

template<typename MeshT >

bool OVMPropertyModel< MeshT >::combinable | ( | PropertyVisualizer * | propertyVisualizer1,
|  | PropertyVisualizer * | propertyVisualizer2
| ) |  | const
| private

Checks if two properties are combinable.

Parameters

  propertyVisualizer1 | First PropertyVisualizer for combination.
  propertyVisualizer2 | Second PropertyVisualizer for combination.

Returns
  True if the two properties are combinable, false if not.

If the user selects two properties which are both of a vector type (Vec3f or Vec3d) they can be combined. This method will check if the two provided PropertyVisualizers can be comined. Currently PropertyVisualizers can only be combined if both visualize a property with a vector type and the same entity type.

Definition at line 393 of file OVMPropertyModelT_impl.hh.

## ◆ combine()

template<typename MeshT >

void OVMPropertyModel< MeshT >::combine | ( |  | ) |
| private virtual

Combines two properties.

If the user selects two properties which are both of a vector type (Vec3f or Vec3d) they can be combined. This method will create a new PropertyVisualizer (an OVMPropertyVisualizerVectorFieldDifference<MeshT> to be exact) but not an additional property.

Reimplemented from OVMPropertyModelSubclass.

Definition at line 363 of file OVMPropertyModelT_impl.hh.

## ◆ getSupportedTypeInfoWrapper() [1/2]

template<typename MeshT >

TypeInfoWrapper OVMPropertyModel< MeshT >::getSupportedTypeInfoWrapper | ( | OpenVolumeMesh::BaseProperty *const | baseProp | ) | const
| private

Returns the TypeInfoWrapper for the property if it is supported.

Parameters

  baseProp | A pointer to the property.

Returns
  A TypeInfoWrapper containing all the type information for the provided property.

Definition at line 500 of file OVMPropertyModelT_impl.hh.

## ◆ getSupportedTypeInfoWrapper() [2/2]

template<typename MeshT >

TypeInfoWrapper OVMPropertyModel< MeshT >::getSupportedTypeInfoWrapper | ( | QString | friendlyName,
|  | PropertyInfo::ENTITY_FILTER | filter
| ) |  | const
| private

Returns the TypeInfoWrapper for the type of property if it is supported.

Returns the TypeInfoWrapper for the type of property and entity if it is supported.

Parameters

  friendlyName | The type we want to visualize in text form.
  filter | The type of the entity

Returns
  A TypeInfoWrapper containing all the type information for the property type.

Definition at line 522 of file OVMPropertyModelT_impl.hh.

## ◆ isNew()

template<typename MeshT >

bool OVMPropertyModel< MeshT >::isNew | ( | OpenVolumeMesh::BaseProperty *const | baseProp,
|  | PropertyInfo::ENTITY_FILTER | filter
| ) |  | const
| private

Checks if we already created a PropertyVisualizer for this property.

Parameters

  baseProp | A pointer to the property.
  filter | The entity type.

Returns
  True if we do not have PropertyVisualizer yet for that property, False if we do.

Definition at line 480 of file OVMPropertyModelT_impl.hh.

## ◆ isPropertyFree()

template<typename MeshT >

bool OVMPropertyModel< MeshT >::isPropertyFree | ( | QString | propName,
|  | PropertyInfo::ENTITY_FILTER | filter,
|  | TypeInfoWrapper | typeInfo
| ) |  |
| private

Checks if a property name is still available for an entity type and a property type.

Parameters

  propName | The name of the property.
  filter | The entity type of the property.
  typeInfo | The type of the property.

Returns
  True if the name is still available, False if already in use.

Definition at line 349 of file OVMPropertyModelT_impl.hh.

## ◆ isSupported() [1/2]

template<typename MeshT >

bool OVMPropertyModel< MeshT >::isSupported | ( | OpenVolumeMesh::BaseProperty *const | baseProp | ) | const
| private

Checks if visualizing this property is supported.

Parameters

  baseProp | A pointer to the property that we want to visualize.

Returns
  True if the property can be visualized, False if not.

Definition at line 441 of file OVMPropertyModelT_impl.hh.

## ◆ isSupported() [2/2]

template<typename MeshT >

bool OVMPropertyModel< MeshT >::isSupported | ( | QString | friendlyName | ) | const
| private

Checks if visualizing this type of property is supported.

Checks if visualizing this property is supported.

Parameters

  friendlyName | The type we want to visualize in text form.

Returns
  True if the property type can be visualized, False if not.

Currently supported are the types "bool", "int", "unsigned int", "double", "Vec3d" and "Vec3f"

Definition at line 459 of file OVMPropertyModelT_impl.hh.

## ◆ mouseEvent()

template<typename MeshT >

void OVMPropertyModel< MeshT >::mouseEvent | ( | QMouseEvent * | _event | ) |
| virtual

Handles mouse events for picking.

If picking mode is active this method will find the picked entity and display its handle and value in the PickWidget.

Reimplemented from SingleObjectPropertyModel.

Definition at line 167 of file OVMPropertyModelT_impl.hh.

## ◆ parseHeader()

template<typename MeshT >

bool OVMPropertyModel< MeshT >::parseHeader | ( | QString | header,
|  | PropertyVisualizer *& | propVis,
|  | unsigned int & | n
| ) |  |
| virtual

Parses the property file header.

Parameters

  | header | The header.
  [out] | propVis | The PropertyVisualizer that will visualize the new property.
  [out] | n | The number of values stored in the file

Returns
  True if parsing was successfull, False if not.

When loading a property from a file this method parses the header placed in the file's first line. If parsing was successfull a new property and a PropertyVisualizer will be created.

Reimplemented from SingleObjectPropertyModel.

Definition at line 213 of file OVMPropertyModelT_impl.hh.

## ◆ pickProperty()

template<typename MeshT >

void OVMPropertyModel< MeshT >::pickProperty | ( |  | ) |
| virtual

Toggle picking on and off.

This method will start and stop the picking.

Reimplemented from OVMPropertyModelSubclass.

Definition at line 132 of file OVMPropertyModelT_impl.hh.

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

- Plugin-PropertyVis/OpenVolumeMesh/OVMPropertyModelT.hh
- Plugin-PropertyVis/OpenVolumeMesh/OVMPropertyModelT_impl.hh