Developer Documentation

Public Member Functions | Static Public Attributes | Friends | List of all members
BaseObject Class Reference

`#include <OpenFlipper/common/BaseObject.hh>`

Inheritance diagram for BaseObject:

## Public Member Functions
| BaseObject (const BaseObject &_object)
| BaseObject (BaseObject *_parent=0)
Data
virtual void | cleanup ()
Object Information
virtual QString | getObjectinfo ()
| Get all Info for the Object as a string.
virtual void | printObjectInfo ()
| Print all information about the object.
Content
void | dumpTree ()
| Debugging function, writing the subtree to output.
virtual BaseObject * | copy ()
| Returns a full copy of the object.
Tree : Parent nodes
int | row () const
| get the row of this item from the parent
BaseObject * | parent ()
| Get the parent item ( 0 if rootitem )
const BaseObject * | parent () const
| get the row of this item from the parent
void | setParent (BaseObject *_parent)
| Set the parent pointer.
Tree : Children
BaseObject * | childExists (int _objectId)
| Check if the element exists in the subtree of this element.
BaseObject * | childExists (QString _name)
| Check if the element exists in the subtree of this element.
void | appendChild (BaseObject *child)
| add a child to this node
BaseObject * | child (int row)
| return a child
int | childCount () const
| get the number of children
void | removeChild (BaseObject *_item)
| Remove a child from this object.
QList< BaseObject *> | getLeafs ()
| get all leafes of the tree below this object ( These will be all visible objects )
void | deleteSubtree ()
| delete the whole subtree below this item ( The item itself is not touched )
Grouping
int | group () const
bool | isGroup () const
| Check if object is a group.
bool | isInGroup (int _id) const
bool | isInGroup (QString _name) const
std::vector< int > | getGroupIds ()
QStringList | getGroupNames ()
Object Payload
void | setObjectData (QString _dataName, PerObjectData *_data)
void | clearObjectData (QString _dataName)
| Clear the object data pointer ( this will not delete the object!! )
bool | hasObjectData (QString _dataName)
| Checks if object data with given name is available.
PerObjectData * | objectData (QString _dataName)
| Returns the object data pointer.
void | deleteData ()
| Delete all data attached to this object ( calls delete on each object )

## Static Public Attributes
static int | NOOBJECT = -1

## Protected Member Functions
Update handling
virtual void | update (UpdateType _type=UPDATE_ALL)
| This function is called to update the object. More...

## Friends
class | BaseObjectData
class | Core

## Object Identification
int | id_
| Unique ID for this Object. More...
int | persistentId_
| Persistent ID for this Object. More...
int | id () const
int | persistentId () const
void | persistentId (int _id)

## Data Type Handling
DataType | objectType_
bool | dataType (DataType _type) const
DataType | dataType () const
void | setDataType (DataType _type)

## Flag handling (source, target, ...)
QStringList | flags_
bool | target ()
void | target (bool _target)
bool | source ()
void | source (bool _source)
bool | flag (QString _flag)
void | setFlag (QString _flag, bool _set)
QStringList | flags ()
void | objectSelectionChanged (int _objectId)

## Object visualization
bool | visible_
virtual bool | visible ()
| return if object is visible
virtual void | visible (bool _visible)
| Sets visiblity.
void | visibilityChanged (int _objectId)

## Tree Structure
BaseObject * | parentItem_
| Parent item or 0 if rootnode.
QList< BaseObject * > | childItems_
| Children of this node.
BaseObject * | last ()
BaseObject * | next ()
int | level ()

## Name and Path handling
QString | path_
| path to the file from which the object is loaded ( defaults to "." )
QString | filename_
| path to the file from which the object is loaded ( defaults to "." )
QString | name_
| Object/FileName ( defaults to NONAME )
void | setFromFileName (const QString &_filename)
QString | path () const
| return the path to the object ( defaults to "." if unset )
void | setPath (const QString &_path)
| set the path to the object.
QString | name () const
| return the name of the object. The name defaults to NONAME if unset.
virtual void | setName (QString _name)
| path to the file from which the object is loaded ( defaults to "." )
QString | filename () const
| return the filename of the object
void | setFileName (const QString &_filename)
| set the filename for this object
void | objectPropertiesChanged (int _objectId)

## Object Payload functions for internal use only!
QMap< QString, PerObjectData *> | dataMap_
| get reference to map of all perObject Datas More...
QMap< QString, PerObjectData * > & | getPerObjectDataMap ()
| get reference to map of all perObject Datas More...

## Object Comment
QMap< QString, QString > | commentsByKey_
| Get comment for the specified key. More...
QString & | getCommentByKey (const QString &key)
| Get comment for the specified key. More...
const QString | getCommentByKey (const QString &key) const
| Get comment for the specified key. More...
bool | hasCommentForKey (const QString &key) const
bool | hasComments () const
void | clearComment (const QString &key)
| Get comment for the specified key. More...
void | clearAllComments ()
| Get comment for the specified key. More...
const QMap< QString, QString > & | getAllComments () const
const QString | getAllCommentsFlat () const

## Detailed Description

This is the basic Data class providing the functions common to all objects. If the Datacontrol Plugin is available, a Tree structure will be generated allowing groups of objects.

Definition at line 82 of file BaseObject.hh.

## Constructor & Destructor Documentation

## ◆ BaseObject() [1/2]

BaseObject::BaseObject | ( | const BaseObject & | _object | ) |

Creates a copy of this Object. Currently it will not have any per Object data attached. Its automatically attached to the objectRoot.

Definition at line 77 of file BaseObject.cc.

## ◆ BaseObject() [2/2]

BaseObject::BaseObject | ( | BaseObject * | _parent = `0` | ) |
| explicit

Creates a new object. If the parent is 0 and the objectroot does not exist, it will have no parent. If the objectroot exists and parent is 0, it will be appended to the objectroot. If a parent is given, it is appended to this object.

Definition at line 136 of file BaseObject.cc.

## Member Function Documentation

## ◆ cleanup()

void BaseObject::cleanup | ( |  | ) |
| virtual

Clean all data structures of the object

Reimplemented in BaseObjectData, MeshObject< MeshT >, MeshObject< PolyMesh >, MeshObject< TriMesh >, CameraObject, PolyLineObject, BSplineSurfaceObject, SplatCloudObject, PlaneObject, BSplineCurveObject, PolyLineCollectionObject, QtWidgetObject, CoordsysObject, LightObject, SphereObject, VolumeMeshObject< MeshT >, and SkeletonObject.

Definition at line 207 of file BaseObject.cc.

## ◆ clearAllComments()

void BaseObject::clearAllComments | ( |  | ) |

Get comment for the specified key.

If no comment with the specified exists, an empty one is created.

Definition at line 847 of file BaseObject.cc.

## ◆ clearComment()

void BaseObject::clearComment | ( | const QString & | key | ) |

Get comment for the specified key.

If no comment with the specified exists, an empty one is created.

Definition at line 843 of file BaseObject.cc.

## ◆ dataType() [1/2]

bool BaseObject::dataType | ( | DataType | _type | ) | const

Check the if the object is of the given type

Parameters

  _type | checks, if the object is of the given type

Definition at line 221 of file BaseObject.cc.

## ◆ dataType() [2/2]

DataType BaseObject::dataType | ( |  | ) | const

return the dataType of the object

Definition at line 229 of file BaseObject.cc.

## ◆ flag()

bool BaseObject::flag | ( | QString | _flag | ) |

Get a custom flag of this item

Definition at line 299 of file BaseObject.cc.

## ◆ flags()

QStringList BaseObject::flags | ( |  | ) |

Get all flags of this item

Definition at line 330 of file BaseObject.cc.

## ◆ getAllComments()

const QMap< QString, QString > & BaseObject::getAllComments | ( |  | ) | const

Returns a reference to all comments.

Definition at line 852 of file BaseObject.cc.

## ◆ getAllCommentsFlat()

const QString BaseObject::getAllCommentsFlat | ( |  | ) | const

Returns a flat, human readable representation of all comments.

Definition at line 856 of file BaseObject.cc.

## ◆ getCommentByKey() [1/2]

QString & BaseObject::getCommentByKey | ( | const QString & | key | ) |

Get comment for the specified key.

If no comment with the specified exists, an empty one is created.

Definition at line 824 of file BaseObject.cc.

## ◆ getCommentByKey() [2/2]

const QString BaseObject::getCommentByKey | ( | const QString & | key | ) | const

Get comment for the specified key.

If no comment with the specified exists, an empty comment is returned (but not inserted into the map).

Definition at line 829 of file BaseObject.cc.

## ◆ getGroupIds()

std::vector< int > BaseObject::getGroupIds | ( |  | ) |

Get a vector of all Group ids this object belongs to ( this function omits the root object )

Definition at line 660 of file BaseObject.cc.

## ◆ getGroupNames()

QStringList BaseObject::getGroupNames | ( |  | ) |

Get a vector of all group names this object belongs to ( this function omits the root object )

Definition at line 681 of file BaseObject.cc.

## ◆ getPerObjectDataMap()

QMap< QString, PerObjectData * > & BaseObject::getPerObjectDataMap | ( |  | ) |

get reference to map of all perObject Datas

Don't use this function! It's only for the backup Plugin to store and restore perObjectDatas!

Definition at line 886 of file BaseObject.cc.

## ◆ group()

int BaseObject::group | ( |  | ) | const

Return the primary group of this object or -1 if ungrouped. As this is a tree structure this returns the first group of this object. Groups of groups are only suppurted via the other functions.

Returns
  Primary group of this object or -1

Definition at line 601 of file BaseObject.cc.

## ◆ hasCommentForKey()

bool BaseObject::hasCommentForKey | ( | const QString & | key | ) | const

Returns true if a comment for the specified key exists, false otherwise.

Definition at line 834 of file BaseObject.cc.

## ◆ hasComments()

bool BaseObject::hasComments | ( |  | ) | const

Indicates whether any comment has been supplied for this object.

Definition at line 839 of file BaseObject.cc.

## ◆ id()

int BaseObject::id | ( |  | ) | const

return the unique id of the object. These ids will be generated every time an object is created. It will stay valid during the runtime of the application.

Definition at line 190 of file BaseObject.cc.

## ◆ isInGroup() [1/2]

bool BaseObject::isInGroup | ( | int | _id | ) | const

Check if this item belongs to a group with this id

Parameters

  _id | id of the group

Definition at line 625 of file BaseObject.cc.

## ◆ isInGroup() [2/2]

bool BaseObject::isInGroup | ( | QString | _name | ) | const

Check if this item belongs to a group with this name

Parameters

  _name | Name of the group

Definition at line 642 of file BaseObject.cc.

## ◆ last()

BaseObject * BaseObject::last | ( |  | ) |

Get the last item of the tree (Preorder traversal of the tree)

Definition at line 364 of file BaseObject.cc.

## ◆ level()

int BaseObject::level | ( |  | ) |

level of the current object ( root node has level 0)

Definition at line 441 of file BaseObject.cc.

## ◆ next()

BaseObject * BaseObject::next | ( |  | ) |

Get the next item of the tree (Preorder traversal of the tree)

Definition at line 404 of file BaseObject.cc.

## ◆ objectPropertiesChanged

void BaseObject::objectPropertiesChanged | ( | int | _objectId | ) |
| signal

This signal is emitted when properties of the object have been changed like its name or the parent changed

## ◆ objectSelectionChanged

void BaseObject::objectSelectionChanged | ( | int | _objectId | ) |
| signal

Stores all item flags as strings. Source and target flags are represented as "source" and "target" strings.

## ◆ persistentId() [1/2]

int BaseObject::persistentId | ( |  | ) | const

return the persistent id of an object ( This id can be managed by a database ). It should be persistent across program starts. It will be -1 if the object has not been registered by a database. This id will only be set if a database plugin manages it.

Definition at line 194 of file BaseObject.cc.

## ◆ persistentId() [2/2]

void BaseObject::persistentId | ( | int | _id | ) |

set the persistent id of the object

Definition at line 198 of file BaseObject.cc.

## ◆ setDataType()

void BaseObject::setDataType | ( | DataType | _type | ) |

set the object type

Parameters

  _type | the type of the object (if it has a type defined, it will output a warning)

Definition at line 233 of file BaseObject.cc.

## ◆ setFlag()

void BaseObject::setFlag | ( | QString | _flag,
|  | bool | _set
| ) |  |

Set a custom flag on this item

Definition at line 304 of file BaseObject.cc.

## ◆ setFromFileName()

void BaseObject::setFromFileName | ( | const QString & | _filename | ) |

Set the object path and filename from the given parameter.

Parameters

  _filename | path to the file.

Definition at line 716 of file BaseObject.cc.

## ◆ setObjectData()

void BaseObject::setObjectData | ( | QString | _dataName,
|  | PerObjectData * | _data
| ) |  |

Set a pointer to your object data Your data class has to be derived from PerObjectData and should implement a destructor. use dynamic_casts to cast between your object and the Baseclass.

Parameters

  _dataName | Define a name for your data
  _data | a pointer to your object data

Definition at line 781 of file BaseObject.cc.

## ◆ source() [1/2]

bool BaseObject::source | ( |  | ) |

Is this item selected as a source item? Some algorithms use source meshes to define their input.

Definition at line 291 of file BaseObject.cc.

## ◆ source() [2/2]

void BaseObject::source | ( | bool | _source | ) |

Set this item as a source

Definition at line 295 of file BaseObject.cc.

## ◆ target() [1/2]

bool BaseObject::target | ( |  | ) |

Is this item selected as a target item? Most algorithms operate on target meshes. These meshes are also considered as active. Blending for inactive meshes is handled by DataControlPlugin so emit objectSelectionChanged if you changed this value.

Definition at line 273 of file BaseObject.cc.

## ◆ target() [2/2]

void BaseObject::target | ( | bool | _target | ) |

Set this item as a target

Definition at line 277 of file BaseObject.cc.

## ◆ update()

void BaseObject::update | ( | UpdateType | _type = `UPDATE_ALL` | ) |
| protected virtual

This function is called to update the object.

If the object changes, the core will call this function. Normally this will update the corresponding scenegraph nodes or trigger other data handling which has to be done when the object changes.

Note
  Do not call this function yourself to avoid unnecessary overhead(the core will call it when it is required)

Reimplemented in BaseObjectData, QtWidgetObject, CameraObject, SkeletonObject, MeshObject< MeshT >, MeshObject< PolyMesh >, MeshObject< TriMesh >, SphereObject, CoordsysObject, VolumeMeshObject< MeshT >, PolyLineObject, LightObject, PlaneObject, BSplineCurveObject, BSplineSurfaceObject, SplatCloudObject, and PolyLineCollectionObject.

Definition at line 745 of file BaseObject.cc.

## ◆ visibilityChanged

void BaseObject::visibilityChanged | ( | int | _objectId | ) |
| signal

This slot is emitted when the visibility of the object gets changed.

The signal is normally handled by the core to tell the plugins that an object changed its visibility

## Member Data Documentation

## ◆ commentsByKey_

QMap<QString, QString> BaseObject::commentsByKey_
| private

Get comment for the specified key.

If no comment with the specified exists, an empty one is created.

Definition at line 570 of file BaseObject.hh.

## ◆ dataMap_

QMap<QString, PerObjectData* > BaseObject::dataMap_
| private

get reference to map of all perObject Datas

Don't use this function! It's only for the backup Plugin to store and restore perObjectDatas!

Definition at line 529 of file BaseObject.hh.

## ◆ flags_

QStringList BaseObject::flags_
| private

Stores all item flags as strings. Source and target flags are represented as "source" and "target" strings.

Definition at line 243 of file BaseObject.hh.

## ◆ id_

int BaseObject::id_
| private

Unique ID for this Object.

If you need to identify an Object in your plugin then use this id to find it. It does not change during the Objects lifetime. In PluginFunctions.hh are some Functions which help with finding objects using this id.

Definition at line 134 of file BaseObject.hh.

## ◆ NOOBJECT

int BaseObject::NOOBJECT = -1
| static

predefined handle which is returned when objects are not found or not initialized.

Static member for no object initialization

Definition at line 106 of file BaseObject.hh.

## ◆ objectType_

DataType BaseObject::objectType_
| private

This Field describes the Data Types available in the object.
You should check this Field, if your plugin can handle the data in the object.

Definition at line 167 of file BaseObject.hh.

## ◆ persistentId_

int BaseObject::persistentId_
| private

Persistent ID for this Object.

If you need to identify an Object acroos program starts in your plugin then use this id to find it. It will not change across program restarts. This id will only be set if a database plugin manages it.

Definition at line 141 of file BaseObject.hh.

## ◆ visible_

bool BaseObject::visible_
| protected

Show/hide/ Object
Visibility is handled by DataControlPlugin so emit updated_objects if you changed this value defaults to visible

Definition at line 274 of file BaseObject.hh.

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

- OpenFlipper/common/BaseObject.hh
- OpenFlipper/common/BaseObject.cc