Tulip 5.7.1
Large graphs analysis and drawing
Loading...
Searching...
No Matches
PropertyAlgorithm.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
20#ifndef PROPERTYALGORITHM_H
21#define PROPERTYALGORITHM_H
22
23#include <tulip/Algorithm.h>
24#include <tulip/TemplateAlgorithm.h>
25
26namespace tlp {
27class PluginContext;
28
29class BooleanProperty;
30static const std::string BOOLEAN_ALGORITHM_CATEGORY = "Selection";
31
32/**
33 * @ingroup Plugins
34 * @brief The Boolean algorithm takes a graph as input and output its results as a
35 * tlp::BooleanProperty
36 */
37class TLP_SCOPE BooleanAlgorithm : public TemplateAlgorithm<tlp::BooleanProperty> {
38protected:
39 BooleanAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
40
41public:
42 std::string category() const override {
43 return BOOLEAN_ALGORITHM_CATEGORY;
44 }
45};
46
47class ColorProperty;
48static const std::string COLOR_ALGORITHM_CATEGORY = "Coloring";
49
50/**
51 * @ingroup Plugins
52 * @brief The color algorithm takes a graph as input and output its results as a tlp::ColorProperty
53 */
54class TLP_SCOPE ColorAlgorithm : public TemplateAlgorithm<tlp::ColorProperty> {
55protected:
56 ColorAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
57
58public:
59 std::string category() const override {
60 return COLOR_ALGORITHM_CATEGORY;
61 }
62};
63
64class DoubleProperty;
65static const std::string DOUBLE_ALGORITHM_CATEGORY = "Measure";
66
67/**
68 * @ingroup Plugins
69 * @brief The double algorithm takes a graph as input and output its results as a
70 * tlp::DoubleProperty
71 */
72class TLP_SCOPE DoubleAlgorithm : public TemplateAlgorithm<tlp::DoubleProperty> {
73protected:
74 ///
75 DoubleAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
76
77public:
78 std::string category() const override {
79 return DOUBLE_ALGORITHM_CATEGORY;
80 }
81};
82
83class IntegerProperty;
84static const std::string INTEGER_ALGORITHM_CATEGORY = "Measure";
85
86/**
87 * @ingroup Plugins
88 * @brief The integer algorithm takes a graph as input and output its results as a
89 * tlp::IntegerProperty
90 */
91class TLP_SCOPE IntegerAlgorithm : public TemplateAlgorithm<tlp::IntegerProperty> {
92protected:
93 IntegerAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
94
95public:
96 std::string category() const override {
97 return INTEGER_ALGORITHM_CATEGORY;
98 }
99};
100
101class LayoutProperty;
102static const std::string LAYOUT_ALGORITHM_CATEGORY = "Layout";
103
104/**
105 * @ingroup Plugins
106 * @brief The layout algorithm takes a graph as input and output its results as a
107 * tlp::LayoutProperty
108 */
109class TLP_SCOPE LayoutAlgorithm : public TemplateAlgorithm<tlp::LayoutProperty> {
110protected:
111 ///
112 LayoutAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
113
114public:
115 std::string category() const override {
116 return LAYOUT_ALGORITHM_CATEGORY;
117 }
118};
119
120class SizeProperty;
121static const std::string SIZE_ALGORITHM_CATEGORY = "Resizing";
122
123/**
124 * @ingroup Plugins
125 * @brief The size algorithm takes a graph as input and output its results as a tlp::SizeProperty
126 */
127class TLP_SCOPE SizeAlgorithm : public TemplateAlgorithm<tlp::SizeProperty> {
128protected:
129 SizeAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
130
131public:
132 std::string category() const override {
133 return SIZE_ALGORITHM_CATEGORY;
134 }
135};
136
137class StringProperty;
138static const std::string STRING_ALGORITHM_CATEGORY = "Labeling";
139
140/**
141 * @ingroup Plugins
142 * @brief The string algorithm takes a graph as input and output its results as a
143 * tlp::StringProperty
144 */
145class TLP_SCOPE StringAlgorithm : public TemplateAlgorithm<tlp::StringProperty> {
146protected:
147 ///
148 StringAlgorithm(const tlp::PluginContext *, bool needInOutResult = false);
149
150public:
151 std::string category() const override {
152 return STRING_ALGORITHM_CATEGORY;
153 }
154};
155} // namespace tlp
156
157#endif // PROPERTYALGORITHM_H
The Boolean algorithm takes a graph as input and output its results as a tlp::BooleanProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
The color algorithm takes a graph as input and output its results as a tlp::ColorProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
The double algorithm takes a graph as input and output its results as a tlp::DoubleProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
The integer algorithm takes a graph as input and output its results as a tlp::IntegerProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
The layout algorithm takes a graph as input and output its results as a tlp::LayoutProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
Contains runtime parameters for a plugin.
Definition: PluginContext.h:42
The size algorithm takes a graph as input and output its results as a tlp::SizeProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
The string algorithm takes a graph as input and output its results as a tlp::StringProperty.
std::string category() const override
A string identifier for a plugin used for categorization purposes.
The TemplateAlgorithm class describes a plugin that can operate on a single graph's property.