|
Developer Documentation
|
#include <OpenFlipper/common/BaseObjectData.hh>
Public Member Functions | |
| BaseObjectData (const BaseObjectData &_object) | |
| copy constructor | |
| BaseObjectData () | |
| constructor | |
| virtual | ~BaseObjectData () |
| destructor | |
| virtual void | setName (QString _name) |
| path to the file from which the object is loaded ( defaults to "." ) | |
Data | |
| virtual void | cleanup () |
Picking | |
| virtual bool | picked (uint _node_idx) |
| detect if the node has been picked | |
| virtual void | enablePicking (bool _enable) |
| virtual bool | pickingEnabled () |
Content | |
| virtual void | update (UpdateType _type=UPDATE_ALL) |
| This function is called to update the object. | |
Public Member Functions inherited from BaseObject | |
| BaseObject (const BaseObject &_object) | |
| BaseObject (BaseObject *_parent=0) | |
| virtual QString | getObjectinfo () |
| Get all Info for the Object as a string. | |
| virtual void | printObjectInfo () |
| Print all information about the object. | |
| void | dumpTree () |
| Debugging function, writing the subtree to output. | |
| virtual BaseObject * | copy () |
| Returns a full copy of the object. | |
| int | row () const |
| get the row of this item from the parent | |
| BaseObject * | parent () |
| Get the parent item ( 0 if rootitem ) | |
| void | setParent (BaseObject *_parent) |
| Set the parent pointer. | |
| 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 ) | |
| int | group () |
| bool | isGroup () |
| Check if object is a group. | |
| bool | isInGroup (int _id) |
| bool | isInGroup (QString _name) |
| std::vector< int > | getGroupIds () |
| QStringList | getGroupNames () |
| 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 ) | |
| int | id () |
| int | persistentId () |
| void | persistentId (int _id) |
| bool | dataType (DataType _type) |
| DataType | dataType () |
| void | setDataType (DataType _type) |
| bool | target () |
| void | target (bool _target) |
| bool | source () |
| void | source (bool _source) |
| bool | flag (QString _flag) |
| void | setFlag (QString _flag, bool _set) |
| QStringList | flags () |
| BaseObject * | last () |
| BaseObject * | next () |
| int | level () |
| void | setFromFileName (const QString &_filename) |
| QString | path () |
| return the path to the object ( defaults to "." if unset ) | |
| void | setPath (const QString &_path) |
| set the path to the object. | |
| QString | name () |
| return the name of the object. The name defaults to NONAME if unset. | |
| QString | filename () |
| return the filename of the object | |
| void | setFileName (const QString &_filename) |
| set the filename for this object | |
| QMap< QString, PerObjectData * > & | getPerObjectDataMap () |
| get reference to map of all perObject Datas | |
Private Member Functions | |
| void | initializeScenegraphNodes () |
Object visualization | |
| bool | manipPlaced_ |
| rootNode of global Scenegraph structure | |
| SeparatorNode * | rootNode_ |
| rootNode of global Scenegraph structure | |
| SeparatorNode * | separatorNode_ |
| Separator at top of Scenegraph structure used for this Object. | |
| QtTranslationManipulatorNode * | manipulatorNode_ |
| Manipulator used for this Object. | |
| MaterialNode * | materialNode_ |
| Scenegraph Material Node for the object. | |
| BoundingBoxNode * | boundingBoxNode_ |
| Bounding box node for the object. | |
| StencilRefNode * | stencilRefNode_ |
| Stencil reference node for the object. | |
| virtual void | show () |
| Sets the whole Scenegraph subtree of this node to visible. | |
| virtual void | hide () |
| Sets the whole Scenegraph subtree of this node to invisible. | |
| virtual bool | visible () |
| return visiblity | |
| virtual void | visible (bool _visible) |
| Sets visiblity of the whole Scenegraph subtree of this node. | |
| SeparatorNode * | baseNode () |
| virtual bool | hasNode (BaseNode *_node) |
| Check if the given node is owned by this object. | |
| virtual BaseNode * | primaryNode () |
| QtTranslationManipulatorNode * | manipulatorNode () |
| virtual ACG::SceneGraph::ShaderNode * | shaderNode () |
| MaterialNode * | materialNode () |
| get a pointer to the materialnode | |
| BoundingBoxNode * | boundingBoxNode () |
| get a pointer to the bounding box node | |
| StencilRefNode * | stencilRefNode () |
| get a pointer to the stencil reference node | |
| bool | manipPlaced () |
| Check if the manipulator has been placed. | |
| void | manipPlaced (bool _placed) |
| set the manipulator place status | |
| void | getBoundingBox (ACG::Vec3d &bbmin, ACG::Vec3d &bbmax) |
| get the bounding box of the object | |
| void | setObjectDrawMode (const ACG::SceneGraph::DrawModes::DrawMode _mode, bool _force=false) |
| Set the draw mode for the object. | |
Additional nodes | |
Functions to attach additional Nodes to objects Manage additional scenegraph nodes that belong to an object. | |
| std::vector< std::pair < BaseNode *, QString > > | additionalNodes_ |
| template<typename NodeT > | |
| bool | addAdditionalNode (NodeT *_node, QString _pluginName, QString _nodeName, int _id=0) |
| add an additional node to the object | |
| bool | hasAdditionalNode (QString _pluginName, QString _nodeName, int _id=0) |
| check if an object has the additional node | |
| template<typename NodeT > | |
| bool | getAdditionalNode (NodeT *&_node, QString _pluginName, QString _nodeName, int _id=0) |
| get an addition node from the object | |
| template<typename NodeT > | |
| bool | removeAdditionalNode (NodeT *&_node, QString _pluginName, QString _nodeName, int _id=0) |
| remove an additional node from the object | |
Additional Inherited Members | |
Signals inherited from BaseObject | |
| void | objectSelectionChanged (int _objectId) |
| void | visibilityChanged (int _objectId) |
| void | objectPropertiesChanged (int _objectId) |
Protected Attributes inherited from BaseObject | |
| bool | visible_ |
This is the basic Data class providing the functions common to all objects which show Objects in the SceneGraph
Definition at line 98 of file BaseObjectData.hh.
| BaseObjectData::BaseObjectData | ( | const BaseObjectData & | _object | ) |
copy constructor
Create new basic scenegraph nodes for this object
We have to create our own visualization nodes as we are a new object
Definition at line 67 of file BaseObjectData.cc.
| bool BaseObjectData::addAdditionalNode | ( | NodeT * | _node, |
| QString | _pluginName, | ||
| QString | _nodeName, | ||
| int | _id = 0 |
||
| ) |
add an additional node to the object
This function can be used to store an additional Scenegraph node. If you add nodes there, you do not need to keep track of deleted, added objects, as this will be done in the main application. You have to create the node yourself as this function does not know the type. You should add the new node below the manipulatorNode ( BaseObjectData::manipulatorNode() ) if you want that it moves with the rest of the data. Otherwise add it below the baseNode ( BaseObjectData::baseNode() of the object.
| _node | Node to add |
| _pluginName | Name of the current plugin |
| _nodeName | Name of the New Node |
| _id | extra index, if there will be multiple nodes with this name( defaults to 0) |
Definition at line 67 of file BaseObjectDataT.cc.
| SeparatorNode * BaseObjectData::baseNode | ( | ) |
get the base node of this object (Use this node to add custom Nodes to the Object which should not be transformed with the manipulator of the Object)
Definition at line 222 of file BaseObjectData.cc.
|
virtual |
Clean all data structures of the object
Reimplemented from BaseObject.
Reimplemented in MeshObject< MeshT >, BSplineSurfaceObject, SplatCloudObject, BSplineCurveObject, CoordsysObject, PlaneObject, SphereObject, LightObject, SkeletonObject, VolumeMeshObject< MeshT >, PolyLineObject, and CameraObject.
Definition at line 101 of file BaseObjectData.cc.
|
virtual |
Enable or disable picking for this Node The basic function defined here does nothing. It has to be reimplemented in the derived class
Reimplemented in MeshObject< MeshT >, VolumeMeshObject< MeshT >, SplatCloudObject, BSplineSurfaceObject, LightObject, BSplineCurveObject, PlaneObject, SkeletonObject, CoordsysObject, SphereObject, PolyLineObject, and CameraObject.
Definition at line 308 of file BaseObjectData.cc.
| bool BaseObjectData::getAdditionalNode | ( | NodeT *& | _node, |
| QString | _pluginName, | ||
| QString | _nodeName, | ||
| int | _id = 0 |
||
| ) |
get an addition node from the object
If you store additional Scenegraph node with the objects you can get these nodes with this function.
| _node | Returns the node |
| _pluginName | Name of the current plugin |
| _nodeName | Name of the Node |
| _id | extra index, if there are multiple nodes with this name ( defaults to 0) |
Definition at line 84 of file BaseObjectDataT.cc.
| bool BaseObjectData::hasAdditionalNode | ( | QString | _pluginName, |
| QString | _nodeName, | ||
| int | _id = 0 |
||
| ) |
check if an object has the additional node
If you store additional Scenegraph nodes with the objects you can check if they exist with this function.
| _pluginName | Name of the current plugin |
| _nodeName | Name of the Node |
| _id | extra index, if there are multiple nodes with this name( defaults to 0) |
Definition at line 327 of file BaseObjectData.cc.
|
virtual |
Check if the given node is owned by this object.
You can overload this function and return true, if your object generated the given node. Don't forget to call this baseclass function on overload!
Reimplemented in LightObject.
Definition at line 226 of file BaseObjectData.cc.
|
private |
This function creates the basic scenegraph nodes
Definition at line 120 of file BaseObjectData.cc.
| QtTranslationManipulatorNode * BaseObjectData::manipulatorNode | ( | ) |
get the ManipulatorNode node of this object (Use this node to add custom Nodes to the Object which should be transformed with the manipulator of the Object)
Definition at line 252 of file BaseObjectData.cc.
|
virtual |
Check if picking is enabled for this Node This function will return true unless the derived class overwrites this function.
Reimplemented in MeshObject< MeshT >, VolumeMeshObject< MeshT >, SplatCloudObject, BSplineSurfaceObject, LightObject, BSplineCurveObject, PlaneObject, SkeletonObject, CoordsysObject, SphereObject, PolyLineObject, and CameraObject.
Definition at line 311 of file BaseObjectData.cc.
|
virtual |
get the primary node of this object (Use this node to change drawModes)
Reimplemented in MeshObject< MeshT >, and VolumeMeshObject< MeshT >.
Definition at line 248 of file BaseObjectData.cc.
| bool BaseObjectData::removeAdditionalNode | ( | NodeT *& | _node, |
| QString | _pluginName, | ||
| QString | _nodeName, | ||
| int | _id = 0 |
||
| ) |
remove an additional node from the object
If additional nodes are stored for this object, such a node can be removed using this function. If this node has children, they will be removed from the scenegraph as well (and their memory is freed).
| _node | Needed for type specification |
| _pluginName | Name of the current plugin |
| _nodeName | Name of the Node |
| _id | extra index, if there are multiple nodes with this name ( defaults to 0) |
Definition at line 99 of file BaseObjectDataT.cc.
| void BaseObjectData::setObjectDrawMode | ( | const ACG::SceneGraph::DrawModes::DrawMode | _mode, |
| bool | _force = false |
||
| ) |
Set the draw mode for the object.
| _mode | The draw mode that should be active for this object |
| _force | If true, the mode is set ignoring if its supported by the node and its subnodes |
Definition at line 291 of file BaseObjectData.cc.
|
virtual |
Return pointer to the shader node If you want to support shaders, you have to add a shader node into your scenegraph structure above your object to be rendered. If you do not have a shader, just ignore this function and it will return a 0 pointer.
Reimplemented in MeshObject< MeshT >, SplatCloudObject, and BSplineSurfaceObject.
Definition at line 256 of file BaseObjectData.cc.
|
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.
Reimplemented from BaseObject.
Reimplemented in MeshObject< MeshT >, BSplineSurfaceObject, SplatCloudObject, BSplineCurveObject, LightObject, and VolumeMeshObject< MeshT >.
Definition at line 318 of file BaseObjectData.cc.
|
private |
This pointer may be used to store additional Nodes belonging to this Object The String should be used by the plugin to identify its Nodes
Definition at line 345 of file BaseObjectData.hh.