Tulip  4.6.0
Better Visualization Through Research
library/tulip-core/include/tulip/PropertyAlgorithm.h
00001 /*
00002  *
00003  * This file is part of Tulip (www.tulip-software.org)
00004  *
00005  * Authors: David Auber and the Tulip development Team
00006  * from LaBRI, University of Bordeaux
00007  *
00008  * Tulip is free software; you can redistribute it and/or modify
00009  * it under the terms of the GNU Lesser General Public License
00010  * as published by the Free Software Foundation, either version 3
00011  * of the License, or (at your option) any later version.
00012  *
00013  * Tulip is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00016  * See the GNU General Public License for more details.
00017  *
00018  */
00019 
00020 #ifndef PROPERTYALGORITHM_H
00021 #define PROPERTYALGORITHM_H
00022 
00023 #include <tulip/Algorithm.h>
00024 #include <tulip/TemplateAlgorithm.h>
00025 
00026 namespace tlp {
00027 class PluginContext;
00028 
00029 class BooleanProperty;
00030 static const std::string BOOLEAN_ALGORITHM_CATEGORY = "Selection";
00031 
00032 /**
00033  * @ingroup Plugins
00034  * @brief The boolean algorithm takes a graph as input and output its results as a tlp::BooleanProperty
00035  */
00036 class TLP_SCOPE BooleanAlgorithm : public TemplateAlgorithm<tlp::BooleanProperty> {
00037 protected:
00038   BooleanAlgorithm (const tlp::PluginContext*);
00039 
00040 public:
00041   virtual std::string category() const {
00042     return BOOLEAN_ALGORITHM_CATEGORY;
00043   }
00044 };
00045 
00046 class ColorProperty;
00047 static const std::string COLOR_ALGORITHM_CATEGORY = "Coloring";
00048 
00049 /**
00050  * @ingroup Plugins
00051  * @brief The color algorithm takes a graph as input and output its results as a tlp::ColorProperty
00052  */
00053 class TLP_SCOPE ColorAlgorithm : public TemplateAlgorithm<tlp::ColorProperty> {
00054 protected:
00055   ColorAlgorithm (const tlp::PluginContext*);
00056 public:
00057   virtual std::string category() const {
00058     return COLOR_ALGORITHM_CATEGORY;
00059   }
00060 };
00061 
00062 class DoubleProperty;
00063 static const std::string DOUBLE_ALGORITHM_CATEGORY = "Measure";
00064 
00065 /**
00066  * @ingroup Plugins
00067  * @brief The double algorithm takes a graph as input and output its results as a tlp::DoubleProperty
00068  */
00069 class TLP_SCOPE DoubleAlgorithm : public TemplateAlgorithm<tlp::DoubleProperty> {
00070 protected:
00071   ///
00072   DoubleAlgorithm (const tlp::PluginContext*);
00073 public:
00074   virtual std::string category() const {
00075     return DOUBLE_ALGORITHM_CATEGORY;
00076   }
00077 };
00078 
00079 class IntegerProperty;
00080 static const std::string INTEGER_ALGORITHM_CATEGORY = "Measure";
00081 
00082 /**
00083  * @ingroup Plugins
00084  * @brief The integer algorithm takes a graph as input and output its results as a tlp::IntegerProperty
00085  */
00086 class TLP_SCOPE IntegerAlgorithm : public TemplateAlgorithm<tlp::IntegerProperty> {
00087 protected:
00088   IntegerAlgorithm (const tlp::PluginContext*);
00089 public:
00090   virtual std::string category() const {
00091     return INTEGER_ALGORITHM_CATEGORY;
00092   }
00093 };
00094 
00095 class LayoutProperty;
00096 static const std::string LAYOUT_ALGORITHM_CATEGORY = "Layout";
00097 
00098 /**
00099  * @ingroup Plugins
00100  * @brief The layout algorithm takes a graph as input and output its results as a tlp::LayoutProperty
00101  */
00102 class TLP_SCOPE LayoutAlgorithm : public TemplateAlgorithm<tlp::LayoutProperty> {
00103 protected:
00104   ///
00105   LayoutAlgorithm (const tlp::PluginContext*);
00106 public:
00107   virtual std::string category() const {
00108     return LAYOUT_ALGORITHM_CATEGORY;
00109   }
00110 };
00111 
00112 class SizeProperty;
00113 static const std::string SIZE_ALGORITHM_CATEGORY = "Resizing";
00114 
00115 /**
00116  * @ingroup Plugins
00117  * @brief The size algorithm takes a graph as input and output its results as a tlp::SizeProperty
00118  */
00119 class TLP_SCOPE SizeAlgorithm : public TemplateAlgorithm<tlp::SizeProperty> {
00120 protected:
00121   SizeAlgorithm (const tlp::PluginContext*);
00122 public:
00123   virtual std::string category() const {
00124     return SIZE_ALGORITHM_CATEGORY;
00125   }
00126 };
00127 
00128 class StringProperty;
00129 static const std::string STRING_ALGORITHM_CATEGORY = "Labeling";
00130 
00131 /**
00132  * @ingroup Plugins
00133  * @brief The string algorithm takes a graph as input and output its results as a tlp::StringProperty
00134  */
00135 class TLP_SCOPE StringAlgorithm : public TemplateAlgorithm<tlp::StringProperty> {
00136 protected:
00137   ///
00138   StringAlgorithm (const tlp::PluginContext*);
00139 public:
00140   virtual std::string category() const {
00141     return STRING_ALGORITHM_CATEGORY;
00142   }
00143 };
00144 }
00145 
00146 #endif // PROPERTYALGORITHM_H
 All Classes Files Functions Variables Enumerations Enumerator Properties