Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
node_distinct_coloring.h File Reference
#include <stdbool.h>
Include dependency graph for node_distinct_coloring.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Enumerations

enum  { COLOR_RGB , COLOR_GRAY , COLOR_LAB }
 
enum  { ERROR_BAD_COLOR_SCHEME = -9 }
 

Functions

int node_distinct_coloring (const char *color_scheme, int *lightness, bool weightedQ, SparseMatrix A, double accuracy, int seed, int *cdim, double **colors)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
COLOR_RGB 
COLOR_GRAY 
COLOR_LAB 

Definition at line 15 of file node_distinct_coloring.h.

◆ anonymous enum

anonymous enum
Enumerator
ERROR_BAD_COLOR_SCHEME 

Definition at line 16 of file node_distinct_coloring.h.

Function Documentation

◆ node_distinct_coloring()

int node_distinct_coloring ( const char *  color_scheme,
int *  lightness,
bool  weightedQ,
SparseMatrix  A,
double  accuracy,
int  seed,
int *  cdim,
double **  colors 
)

for a graph A, get a distinctive color of its nodes so that the color distance among all neighboring nodes are maximized

Here color distance on a node is defined as the minimum of color differences between a node and its neighbors (or the minimum of weighted color differences if weightedQ = true, where weights are stored as entries of A0. Accuracy is the threshold given so that when finding the coloring for each node, the optimal is with in "accuracy" of the true global optimal.

Parameters
color_schemergb, gray, lab, or one of the color palettes in color_palettes.h, or a list of hex rgb colors separated by comma like "#ff0000,#00ff00"
lightnessof the form 0,70, specifying the range of lightness of LAB color. Ignored if scheme is not COLOR_LAB.
Athe graph of n nodes
accuracyhow accurate to find the optimal
seedrandom_seed. If negative, consider -seed as the number of random start iterations
cdimdimension of the color space
colorOn input an array of size n*cdim, if NULL, will be allocated. On exit the final color assignment for node i is [cdim*i,cdim*(i+1)), in RGB (between 0 to 1)

Definition at line 179 of file node_distinct_coloring.c.

References A, B, color_blend_rgb2lab(), COLOR_GRAY, COLOR_LAB, color_palettes_get(), COLOR_RGB, ERROR_BAD_COLOR_SCHEME, free(), gv_calloc(), lab_gamut_quadtree(), node_distinct_coloring_internal(), NULL, QuadTree_delete(), QuadTree_new_from_point_list(), seed, SparseMatrix_delete(), SparseMatrix_get_submatrix(), SparseMatrix_symmetrize(), SparseMatrix_weakly_connected_components(), and Verbose.

Referenced by edge_distinct_coloring(), and map_palette_optimal_coloring().

Here is the call graph for this function:
Here is the caller graph for this function: