/usr/include/tulip/NumericProperty.h is in libtulip-dev 4.8.0dfsg-2build2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 | /*
*
* This file is part of Tulip (www.tulip-software.org)
*
* Authors: David Auber and the Tulip development Team
* from LaBRI, University of Bordeaux
*
* Tulip is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* Tulip is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
*/
#ifndef NUMERICPROPERTY_H
#define NUMERICPROPERTY_H
#include <tulip/PropertyInterface.h>
namespace tlp {
/**
* @brief Interface all numerical properties.
* Property values are always returned as double
**/
class TLP_SCOPE NumericProperty : public PropertyInterface {
public:
/**
* @brief Returns the value associated with the node n in this property.
* @param n The node for which we want to get the value of the property.
**/
virtual double getNodeDoubleValue(const node n) const=0;
/**
* @brief Gets the default node value of the property.
* @return The default value of nodes.
*/
virtual double getNodeDoubleDefaultValue() const=0;
/**
* @brief Gets the minimum value on the nodes.
* @param graph The graph on which to compute.
* @return The minimal value on this graph for this property.
**/
virtual double getNodeDoubleMin(Graph* graph = NULL)=0;
/**
* @brief Gets the maximum value on the nodes.
* @param graph The graph on which to compute.
* @return The maximal value on this graph for this property.
**/
virtual double getNodeDoubleMax(Graph* graph = NULL)=0;
/**
* @brief Returns the value associated with the edge e in this property.
* @param e The edge for which we want to get the value of the property.
**/
virtual double getEdgeDoubleValue(const edge e) const=0;
/**
* @brief Gets the default edge value of the property.
* @return The default value of edges.
*/
virtual double getEdgeDoubleDefaultValue() const=0;
/**
* @brief Gets the minimum value on the edges.
* @param graph The graph on which to compute.
* @return The minimal value on this graph for this property.
**/
virtual double getEdgeDoubleMin(Graph* graph = NULL)=0;
/**
* @brief Gets the maximum value on the edges.
* @param graph The graph on which to compute.
* @return The maximal value on this graph for this property.
**/
virtual double getEdgeDoubleMax(Graph* graph = NULL)=0;
/**
* @brief computes a uniform quantification for the nodes
* associated values
*/
virtual void nodesUniformQuantification(unsigned int)=0;
/**
* @brief computes a uniform quantification for the edges
* associated values
*/
virtual void edgesUniformQuantification(unsigned int)=0;
/**
* @brief computes a uniform quantification for the nodes/edges
* associated values
*/
void uniformQuantification(unsigned int k) {
nodesUniformQuantification(k);
edgesUniformQuantification(k);
}
/**
* @brief Creates a property of the same type (e.g. tlp::DoubleProperty)
* The new property will be a copy of this property's values for all
* the elements of the graph.
* @param graph The Graph in which to create the new property.
* @return The newly created property.
*/
virtual NumericProperty* copyProperty(Graph *graph) = 0;
/**
* @brief Gets an iterator sorting nodes according to their values in that numeric property.
* @since Tulip 4.8
* @param sg If provided, returns an iterator on the subset of nodes defined by that subgraph.
* @return An iterator over graph nodes.
**/
virtual Iterator<node>* getSortedNodes(Graph *sg = NULL, bool ascendingOrder = true);
/**
* @brief Gets an iterator sorting edges according to their values in that numeric property.
* @since Tulip 4.8
* @param sg If provided, returns an iterator on the subset of edges defined by that subgraph.
* @param ascendingOrder defines the sort ordering (ascending or descending).
* @return An iterator over graph edges.
**/
virtual Iterator<edge>* getSortedEdges(Graph *sg = NULL, bool ascendingOrder = true);
/**
* @brief Gets an iterator sorting edges according to the values of their source nodes in that numeric property.
* @since Tulip 4.8
* @param sg If provided, returns an iterator on the subset of edges defined by that subgraph.
* @param ascendingOrder defines the sort ordering (ascending or descending).
* @return An iterator over graph edges.
**/
virtual Iterator<edge>* getSortedEdgesBySourceValue(Graph *sg = NULL, bool ascendingOrder = true);
/**
* @brief Gets an iterator sorting edges according to the values of their target nodes in that numeric property.
* @since Tulip 4.8
* @param sg If provided, returns an iterator on the subset of edges defined by that subgraph.
* @param ascendingOrder defines the sort ordering (ascending or descending).
* @return An iterator over graph edges.
**/
virtual Iterator<edge>* getSortedEdgesByTargetValue(Graph *sg = NULL, bool ascendingOrder = true);
/**
* @brief Gets an iterator sorting edges according to the values of their extremities in that numeric property.
* Vectors of two numbers (first element being the source node value, second one the target node value) are compared in that case.
* @since Tulip 4.8
* @param sg If provided, returns an iterator on the subset of edges defined by that subgraph.
* @param ascendingOrder defines the sort ordering (ascending or descending).
* @return An iterator over graph edges.
**/
virtual Iterator<edge>* getSortedEdgesByExtremitiesValues(Graph *sg = NULL, bool ascendingOrder = true);
};
}
#endif //NUMERICPROPERTY_H
|