Developer Documentation
|
Public Member Functions | |
OMPropertyModel (MeshT *mesh, int objectID, QObject *parent=0) | |
virtual void | updateWidget (const QModelIndexList &selectedIndices) |
Updates the widget. | |
Public Member Functions inherited from OMPropertyModelSubclass | |
OMPropertyModelSubclass (QObject *parent=0) | |
Public Member Functions inherited from SingleObjectPropertyModel | |
SingleObjectPropertyModel (QObject *parent=0) | |
virtual int | rowCount (const QModelIndex &parent=QModelIndex()) const |
virtual QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const |
virtual QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const |
virtual void | objectUpdated () |
Revisualizes visualized properties. | |
virtual void | visualize (QModelIndexList selectedIndices, QWidgetList widgets=QWidgetList()) |
Visualizes the selected properties. More... | |
virtual void | removeProperty (QModelIndexList selectedIndices) |
Removes the selected properties. | |
virtual void | duplicateProperty (QModelIndexList selectedIndices) |
Duplicates the selected properties. | |
virtual void | clear (QModelIndexList selectedIndices) |
Clears the selected property visualization. | |
void | hideWidget () |
Hides the widget. | |
QWidget * | getWidget () |
Returns the widget. | |
void | connectLogs (PropertyVisualizer *propViz) |
Connects the PropertyVisualizer log signals with the log slot. | |
virtual PropertyInfo | getPropertyInfo (const QModelIndex index) const |
Returns the property info for the property with the given index. | |
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 Attributes | |
static const TypeInfoWrapper | proptype_bool = TypeInfoWrapper(typeid(OpenMesh::PropertyT<bool>), "bool") |
static const TypeInfoWrapper | proptype_int = TypeInfoWrapper(typeid(OpenMesh::PropertyT<int>), "int") |
static const TypeInfoWrapper | proptype_uint = TypeInfoWrapper(typeid(OpenMesh::PropertyT<unsigned int>), "unsigned int") |
static const TypeInfoWrapper | proptype_uint8_t = TypeInfoWrapper(typeid(OpenMesh::PropertyT<uint8_t>), "uint8_t") |
static const TypeInfoWrapper | proptype_double = TypeInfoWrapper(typeid(OpenMesh::PropertyT<double>), "double") |
static const TypeInfoWrapper | proptype_Vec3d = TypeInfoWrapper(typeid(OpenMesh::PropertyT<ACG::Vec3d>), "Vec3d") |
static const TypeInfoWrapper | proptype_Vec3f = TypeInfoWrapper(typeid(OpenMesh::PropertyT<ACG::Vec3f>), "Vec3f") |
static const TypeInfoWrapper | proptype_Vec2d = TypeInfoWrapper(typeid(OpenMesh::PropertyT<ACG::Vec2d>), "Vec2d") |
static const TypeInfoWrapper | proptype_Vec2f = TypeInfoWrapper(typeid(OpenMesh::PropertyT<ACG::Vec2f>), "Vec2f") |
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 | openFile (QString _filename, QFile &file_, QTextStream *&file_stream_) |
Opens a file. | |
void | closeFile (QFile &file_, QTextStream *&file_stream_) |
Closes a file. | |
QString | readLine (QTextStream *file_stream_) |
Read line from a file. | |
void | writeLine (QString _s, QTextStream *&file_stream_) |
Writes a line to a file. | |
void | saveProperty (unsigned int propId) |
Saves property. | |
void | loadProperty () |
Loads property. | |
Private Types | |
typedef std::set< TypeInfoWrapper > | TypeInfoWrapperSet |
Private Member Functions | |
virtual void | combine () |
Combines two properties. More... | |
bool | combinable (PropertyVisualizer *propertyVisualizer1, PropertyVisualizer *propertyVisualizer2) |
Checks if two properties are combinable. More... | |
virtual void | saveProperty () |
Saves the currently slected properties. | |
virtual bool | parseHeader (QString header, PropertyVisualizer *&propVis, unsigned int &n) |
Parses the property file header. More... | |
virtual void | setPropertyFromFile (QTextStream *&file_stream_, unsigned int n, PropertyVisualizer *propVis) |
Sets the property values from a given file. | |
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... | |
bool | isVectorType (const TypeInfoWrapper &typeInfo) const |
void | gatherProperties (MeshT *mesh, typename MeshT::prop_iterator props_first, typename MeshT::prop_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 (OpenMesh::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 (OpenMesh::BaseProperty *const baseProp, PropertyInfo::ENTITY_FILTER filter) |
Checks if we already created a PropertyVisualizer for this property. More... | |
TypeInfoWrapper | getSupportedTypeInfoWrapper (OpenMesh::BaseProperty *const baseProp) |
Returns the TypeInfoWrapper for the property if it is supported. More... | |
TypeInfoWrapper | getSupportedTypeInfoWrapper (QString friendlyName) |
Returns the TypeInfoWrapper for the type of property if it is supported. More... | |
void | addPropertyVisualizer (OpenMesh::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 OMPropertyModelSubclass | |
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 |
Definition at line 95 of file OMPropertyModel.hh.
|
private |
Adds a new property to the mesh.
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. "SkinWeights" can only be added for vertices.
Definition at line 578 of file OMPropertyModelT.cc.
|
private |
Adds a new PropertyVisualizer.
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 541 of file OMPropertyModelT.cc.
|
private |
Checks if two properties are combinable.
propertyVisualizer1 | First PropertyVisualizer for combination. |
propertyVisualizer2 | Second PropertyVisualizer for combination. |
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 204 of file OMPropertyModelT.cc.
|
privatevirtual |
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 OMPropertyVisualizerVectorFieldDifference<MeshT> to be exact) but not an additional property.
Reimplemented from OMPropertyModelSubclass.
Definition at line 182 of file OMPropertyModelT.cc.
|
private |
Returns the TypeInfoWrapper for the property if it is supported.
baseProp | A pointer to the property. |
Definition at line 502 of file OMPropertyModelT.cc.
|
private |
Returns the TypeInfoWrapper for the type of property if it is supported.
friendlyName | The type we want to visualize in text form. |
Definition at line 517 of file OMPropertyModelT.cc.
|
private |
Checks if we already created a PropertyVisualizer for this property.
baseProp | A pointer to the property. |
filter | The entity type. |
Definition at line 483 of file OMPropertyModelT.cc.
|
private |
Checks if visualizing this property is supported.
baseProp | A pointer to the property that we want to visualize. |
Definition at line 444 of file OMPropertyModelT.cc.
|
private |
Checks if visualizing this type of property is supported.
Checks if visualizing this property is supported.
friendlyName | The type we want to visualize in text form. |
Currently supported are the types "bool", "int", "unsigned int", "double", "Vec3d", "Vec3f" and "SkinWeights"
Definition at line 462 of file OMPropertyModelT.cc.
|
privatevirtual |
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 379 of file OMPropertyModelT.cc.
|
privatevirtual |
Parses the property file header.
header | The header. | |
[out] | propVis | The PropertyVisualizer that will visualize the new property. |
[out] | n | The number of values stored in the file |
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 224 of file OMPropertyModelT.cc.
|
privatevirtual |
Toggle picking on and off.
This method will start and stop the picking.
Reimplemented from OMPropertyModelSubclass.
Definition at line 343 of file OMPropertyModelT.cc.