65#include <OpenMesh/Core/IO/MeshIO.hh>
67#include <ACG/Scenegraph/SeparatorNode.hh>
68#include <ACG/Scenegraph/EnvMapNode.hh>
69#include <ACG/Scenegraph/ShaderNode.hh>
70#include <ACG/Scenegraph/StatusNodesT.hh>
74#include <ObjectTypes/MeshObject/StatusNodeMods.hh>
75#include <ObjectTypes/MeshObject/StatusViewNodeT.hh>
79#include <ACG/Geometry/bsp/TriangleBSPT.hh>
83#include <ACG/Scenegraph/MeshNode2T.hh>
96template <
class MeshT >
128 virtual void init(
MeshT* _mesh = 0);
151 const MeshT* mesh()
const;
174 void updateSelection();
177 void updateModelingRegions();
180 void updateFeatures();
183 void updateGeometry();
189 void updateTopology();
192 void updateTexture();
211 void hideSelection(
bool _hide );
214 bool selectionVisible();
217 void hideFeatures(
bool _hide );
220 bool featuresVisible( );
223 void hideArea( StatusBits _bit,
bool _hide );
233 bool areaVisible( StatusBits _bit );
244 void setSelectionColor(
const ACG::Vec4f& _color);
254 void setFeatureColor(
const ACG::Vec4f& _color);
259 void setHandleColor(
const ACG::Vec4f& _color);
315 bool loadMesh(QString _filename);
336 bool picked( uint _node_idx );
367 void invalidateTriangleBsp();
397#if defined(INCLUDE_TEMPLATES) && !defined(MESHOBJECT_C)
398#define MESHOBJECT_TEMPLATES
399#include "MeshObjectT_impl.hh"
virtual void enablePicking(bool _enable)
virtual bool pickingEnabled()
virtual void setName(QString _name) override
path to the file from which the object is loaded ( defaults to "." )
virtual void update(UpdateType _type=UPDATE_ALL) override
This function is called to update the object.
virtual void cleanup() override
virtual ACG::SceneGraph::ShaderNode * shaderNode()
virtual BaseNode * primaryNode()
virtual bool picked(uint _node_idx)
detect if the node has been picked
virtual QString getObjectinfo()
Get all Info for the Object as a string.
ACG::SceneGraph::StatusNodeT< MeshT, FeatureNodeMod< MeshT > > * featureNode()
Returns the feature selection node if available, nullptr otherwise.
ACG::SceneGraph::MeshNodeT< MeshT > * meshNode_
Scenegraph Mesh Node.
MeshT * mesh_
pointer to the mesh
ACG::SceneGraph::StatusNodeT< MeshT, FeatureNodeMod< MeshT > > * featureNode_
Feature selection Vis.
ACG::SceneGraph::StatusNodeT< MeshT, HandleNodeMod< MeshT > > * handleNode_
Handle selection Vis.
ACG::SceneGraph::SelectionNodeT< MeshT > * statusNode()
OpenMeshTriangleBSPT< MeshT > OMTriangleBSP
If requested a bsp is created for this object.
ACG::SceneGraph::StatusViewNodeT< MeshT > * statusView_
Scenegraph StatusNodeView.
ACG::SceneGraph::ShaderNode * shaderNode_
Scenegraph ShaderNode.
ACG::SceneGraph::StatusNodeT< MeshT, HandleNodeMod< MeshT > > * handleNode()
Returns the handle selection node if available, nullptr otherwise.
ACG::SceneGraph::StatusNodeT< MeshT, AreaNodeMod< MeshT > > * areaNode_
Area selection Vis.
ACG::SceneGraph::SelectionNodeT< MeshT > * statusNode_
Status Node for a mesh, visualizing the selection state of a mesh.
ACG::SceneGraph::EnvMapNode * textureNode_
Scenegraph TextureNode.
ACG::SceneGraph::StatusNodeT< MeshT, AreaNodeMod< MeshT > > * areaNode()
Returns the area selection node if available, nullptr otherwise.
OMTriangleBSP * triangle_bsp_
If requested a bsp is created for this object.
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.