Tulip 5.7.1
Large graphs analysis and drawing
Loading...
Searching...
No Matches
tulipgpu.h
1/*
2 *
3 * This file is part of Tulip (https://tulip.labri.fr)
4 *
5 * Authors: David Auber and the Tulip development Team
6 * from LaBRI, University of Bordeaux
7 *
8 * Tulip is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU Lesser General Public License
10 * as published by the Free Software Foundation, either version 3
11 * of the License, or (at your option) any later version.
12 *
13 * Tulip is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16 * See the GNU General Public License for more details.
17 *
18 */
19///@cond DOXYGEN_HIDDEN
20
21#ifndef TULIPGPU_H
22#define TULIPGPU_H
23
24#include <tulip/tulipconf.h>
25
26namespace tlp {
27
28// create a GpuGraph from a Tulip graph
29TLP_GL_SCOPE GpuGraph *genGpuGraph(const tlp::Graph &graph);
30
31// associate a Tulip Property to a gpu property variable
32// and compute the needed info
33// return nullptr if there is no texture image unit available
34// BooleanProperty
35TLP_GL_SCOPE GpuProperty *genGpuProperty(tlp::BooleanProperty &property, const tlp::Graph &graph,
36 GpuValueType type = NODE_VALUES, bool outputOnly = false);
37// ColorProperty
38TLP_GL_SCOPE GpuProperty *genGpuProperty(tlp::ColorProperty &property, const tlp::Graph &graph,
39 GpuValueType type = NODE_VALUES, bool outputOnly = false);
40// DoubleProperty
41TLP_GL_SCOPE GpuProperty *genGpuProperty(tlp::DoubleProperty &property, const tlp::Graph &graph,
42 GpuValueType type = NODE_VALUES, bool outputOnly = false);
43// IntegerProperty
44TLP_GL_SCOPE GpuProperty *genGpuProperty(tlp::IntegerProperty &property, const tlp::Graph &graph,
45 GpuValueType type = NODE_VALUES, bool outputOnly = false);
46// LayoutProperty (node values only)
47TLP_GL_SCOPE GpuProperty *genGpuProperty(tlp::LayoutProperty &property, const tlp::Graph &graph,
48 bool outputOnly = false);
49// SizeProperty
50TLP_GL_SCOPE GpuProperty *genGpuProperty(tlp::SizeProperty &property, const tlp::Graph &graph,
51 GpuValueType type = NODE_VALUES, bool outputOnly = false);
52
53// set a parameter of a GpuProgram with a Tulip specific object
54// Color
55TLP_GL_SCOPE bool setGpuParameter(const std::string &pName, const tlp::Color &val);
56// Coord
57TLP_GL_SCOPE bool setGpuParameter(const std::string &pName, const tlp::Coord &val);
58// Size
59TLP_GL_SCOPE bool setGpuParameter(const std::string &pName, const tlp::Size &val);
60
61// these are for the update of a Tulip property with the out property
62// BooleanProperty
63TLP_GL_SCOPE bool getGpuOutPropertyValues(tlp::BooleanProperty &prop, const tlp::Graph &);
64// ColorProperty
65TLP_GL_SCOPE bool getGpuOutPropertyValues(tlp::ColorProperty &prop, const tlp::Graph &);
66// DoubleProperty
67TLP_GL_SCOPE bool getGpuOutPropertyValues(tlp::DoubleProperty &prop, const tlp::Graph &);
68// IntegerProperty
69TLP_GL_SCOPE bool getGpuOutPropertyValues(tlp::IntegerProperty &prop, const tlp::Graph &);
70// LayoutProperty
71TLP_GL_SCOPE bool getGpuOutPropertyValues(tlp::LayoutProperty &prop, const tlp::Graph &);
72// SizeProperty
73TLP_GL_SCOPE bool getGpuOutPropertyValues(tlp::SizeProperty &prop, const tlp::Graph &);
74} // namespace tlp
75
76#endif
77///@endcond
A graph property that maps a Boolean value to graph elements.
A graph property that maps a tlp::Color value to graph elements.
Definition: ColorProperty.h:36
A graph property that maps a double value to graph elements.
A graph property that maps an integer value to graph elements.
A graph property that maps a tlp::Coord value to graph nodes and std::vector<tlp::Coord> for edges.
A graph property that maps a tlp::Size value to graph elements.
Definition: SizeProperty.h:39