44#ifndef POLYLINE_COLLECTION_NODE_T_HH
45#define POLYLINE_COLLECTION_NODE_T_HH
50#include <ACG/Scenegraph/BaseNode.hh>
51#include <ACG/Scenegraph/DrawModes.hh>
52#include <ACG/GL/VertexDeclaration.hh>
53#include <ACG/GL/IRenderer.hh>
54#include <ACG/GL/GLPrimitives.hh>
55#include <ACG/GL/globjects.hh>
56#include <ObjectTypes/PolyLine/PolyLineNodeT.hh>
75template <
class PolyLineCollection>
81 typedef typename PolyLineCollection::PolyLine::Point Point;
140 void pick_vertices(
GLState& _state);
141 void pick_edges(
GLState& _state,
unsigned int _offset = 0);
163 std::vector< PolyLineNodeT<typename PolyLineCollection::PolyLine>* > polylineNodes_;
165 size_t total_vertex_count_;
166 size_t total_segment_count_;
174#if defined(INCLUDE_TEMPLATES) && !defined(ACG_POLYLINECOLLECTIONNODET_C)
175#define ACG_POLYLINECOLLECTIONNODET_TEMPLATES
176#include "PolyLineCollectionNodeT_impl.hh"
DrawModes::DrawMode availableDrawModes() const override
return available draw modes
std::vector< std::pair< size_t, size_t > > offsets_
(Offset in vbo, Vertex count in vbo) for each poly line
GLSphere * sphere_
Sphere for VertexSphere DrawMode.
IndexBuffer ibo_
IBO used to render the poly line.
PolyLineCollection & polyline_collection_
The associated poly line collection.
void updateVBO()
Trigger an update of the vbo.
ACG::VertexDeclaration vertexDecl_
Buffer organization.
PolyLineCollectionNodeT & operator=(const PolyLineCollectionNodeT &_rhs)
Assignment operator (not used)
void pick(GLState &_state, PickTarget _target) override
picking
void boundingBox(Vec3d &_bbMin, Vec3d &_bbMax) override
update bounding box
ACG_CLASSNAME(PolyLineCollectionNodeT)
static name of this class
void update()
Trigger an update of the vbo.
PolyLineCollectionNodeT(PolyLineCollection &_pl, BaseNode *_parent=0, std::string _name="<PolyLineCollectionNode>")
Constructor.
GeometryBuffer vbo_
VBO used to render the poly line.
bool updateVBO_
Flag to trigger update of vbo.
PolyLineCollectionNodeT(const PolyLineCollectionNodeT &_rhs)
Copy constructor (not used)
void getRenderObjects(ACG::IRenderer *_renderer, ACG::GLState &_state, const ACG::SceneGraph::DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat) override
Add the objects to the given renderer.
virtual ~PolyLineCollectionNodeT()
Destructor.
void draw(GLState &, const DrawModes::DrawMode &_drawMode) override
draw lines and normals
Class to define the vertex input layout.
PickTarget
What target to use for picking.
Namespace providing different geometric functions concerning angles.