71 #include <OpenMesh/Core/IO/MeshIO.hh>
73 #include <ACG/Scenegraph/SeparatorNode.hh>
74 #include <ACG/Scenegraph/EnvMapNode.hh>
75 #include <ACG/Scenegraph/ShaderNode.hh>
76 #include <ACG/Scenegraph/StatusNodesT.hh>
80 #include <ObjectTypes/MeshObject/StatusNodeMods.hh>
81 #include <ObjectTypes/MeshObject/StatusViewNodeT.hh>
85 #include <ACG/Geometry/bsp/TriangleBSPT.hh>
89 #include <ACG/Scenegraph/MeshNode2T.hh>
102 template <
class MeshT >
134 virtual void init( MeshT* _mesh = 0);
177 void updateSelection();
180 void updateModelingRegions();
183 void updateFeatures();
186 void updateGeometry();
192 void updateTopology();
195 void updateTexture();
214 void hideSelection(
bool _hide );
217 bool selectionVisible();
220 void hideFeatures(
bool _hide );
223 bool featuresVisible( );
226 void hideArea( StatusBits _bit,
bool _hide );
236 bool areaVisible( StatusBits _bit );
247 void setSelectionColor(
const ACG::Vec4f& _color);
257 void setFeatureColor(
const ACG::Vec4f& _color);
262 void setHandleColor(
const ACG::Vec4f& _color);
318 bool loadMesh(QString _filename);
339 bool picked( uint _node_idx );
362 OMTriangleBSP* requestTriangleBsp();
370 void invalidateTriangleBsp();
378 OMTriangleBSP* resetTriangleBsp();
400 #if defined(INCLUDE_TEMPLATES) && !defined(MESHOBJECT_C)
401 #define MESHOBJECT_TEMPLATES
402 #include "MeshObjectT.cc"
407 #endif // MESHOBJECT_HH defined
ACG::SceneGraph::StatusNodeT< MeshT, FeatureNodeMod< MeshT > > * featureNode()
Returns the feature selection node if available, nullptr otherwise.
ACG::SceneGraph::ShaderNode * shaderNode_
Scenegraph ShaderNode.
MeshT * mesh_
pointer to the mesh
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, AreaNodeMod< MeshT > > * areaNode()
Returns the area selection node if available, nullptr otherwise.
ACG::SceneGraph::MeshNodeT< MeshT > * meshNode_
Scenegraph Mesh Node.
virtual bool pickingEnabled()
virtual void update(UpdateType _type=UPDATE_ALL)
This function is called to update the object.
virtual BaseNode * primaryNode()
virtual void enablePicking(bool _enable)
virtual ACG::SceneGraph::ShaderNode * shaderNode()
ACG::SceneGraph::SelectionNodeT< MeshT > * statusNode()
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.
OpenMeshTriangleBSPT< MeshT > OMTriangleBSP
If requested a bsp is created for this object.
ACG::SceneGraph::SelectionNodeT< MeshT > * statusNode_
Status Node for a mesh, visualizing the selection state of a mesh.
ACG::SceneGraph::StatusNodeT< MeshT, HandleNodeMod< MeshT > > * handleNode_
Handle selection Vis.
OMTriangleBSP * triangle_bsp_
If requested a bsp is created for this object.
const UpdateType UPDATE_ALL(UpdateTypeSet(1))
Identifier for all updates.
virtual void setName(QString _name)
path to the file from which the object is loaded ( defaults to "." )
ACG::SceneGraph::StatusViewNodeT< MeshT > * statusView_
Scenegraph StatusNodeView.
ACG::SceneGraph::EnvMapNode * textureNode_
Scenegraph TextureNode.
ACG::SceneGraph::StatusNodeT< MeshT, FeatureNodeMod< MeshT > > * featureNode_
Feature selection Vis.