Tulip  5.7.0
Large graphs analysis and drawing
tlp::GlGraphRenderer Class Referenceabstract

#include <GlGraphRenderer.h>

Public Member Functions

 GlGraphRenderer (const GlGraphInputData *inputData)
virtual ~GlGraphRenderer ()
virtual void draw (float lod, Camera *camera)=0
virtual void selectEntities (Camera *camera, RenderingEntitiesFlag type, int x, int y, int w, int h, std::vector< SelectedEntity > &selectedEntities)=0
void setGraphModified (bool graphModified)
virtual void visitGraph (GlSceneVisitor *visitor, bool visitHiddenEntities=false)

Protected Member Functions

void visitEdges (Graph *graph, GlSceneVisitor *visitor)
void visitNodes (Graph *graph, GlSceneVisitor *visitor)

Protected Attributes

bool graphModified
const GlGraphInputData * inputData
unsigned int * selectionCurrentId
bool selectionDrawActivate
std::unordered_map< unsigned int, SelectedEntity > * selectionIdMap
RenderingEntitiesFlag selectionType

Detailed Description

Class used by GlGraphComposite to render the graph in OpenGL.

To create a graph renderer, you have to implement two functions : draw() and selectEntities()

See also

Definition at line 41 of file GlGraphRenderer.h.

Constructor & Destructor Documentation

◆ GlGraphRenderer()

tlp::GlGraphRenderer::GlGraphRenderer ( const GlGraphInputData *  inputData)


inputData: GlGraphInputData used by renderer to display the graph (in input data you have pointers on properties used to render nodes/edges
parameters: GlGraphRenderingParameters used by renderer to display the graph

◆ ~GlGraphRenderer()

virtual tlp::GlGraphRenderer::~GlGraphRenderer ( )


Definition at line 55 of file GlGraphRenderer.h.

Member Function Documentation

◆ draw()

virtual void tlp::GlGraphRenderer::draw ( float  lod,
Camera camera 
pure virtual

This function is call by GlGraphComposite to draw the graph.

If you reimplement this function you have to render nodes/edges. It's the most important function of GlGraphRenderer

lod: lod used to this Rendering
camera: camera used to this rendering

◆ selectEntities()

virtual void tlp::GlGraphRenderer::selectEntities ( Camera camera,
RenderingEntitiesFlag  type,
int  x,
int  y,
int  w,
int  h,
std::vector< SelectedEntity > &  selectedEntities 
pure virtual

This function is call by GlGraphComposite to selected entities into the graph.

type: type of selected entities
x: x of the selected zone
y: y of the selected zone
w: width of the selected zone
h: height of the selected zone
selectedEntities: you have to put selected entities into this vector

◆ setGraphModified()

void tlp::GlGraphRenderer::setGraphModified ( bool  graphModified)

This function set if the content of the graph is modified.

Definition at line 88 of file GlGraphRenderer.h.

◆ visitGraph()

virtual void tlp::GlGraphRenderer::visitGraph ( GlSceneVisitor *  visitor,
bool  visitHiddenEntities = false 

You can use this function if you want to inject a visitor on the graph.