static glCompPoint posT;
static glCompPoint posH;
static glCompPoint posN;
+ int defaultNodeShape;
float dist=999999999;
static GLfloat nd=0; /*node distance to point*/
static GLfloat ed=0; /*edge distance to point*/
nd=0; /*node distance to point*/
ed=0; /*edge distance to point*/
+ defaultNodeShape=getAttrBool(g,g,"defaultnodeshape",0);
+
if(!size_attr)
size_attr=agattr(g, AGNODE,"size",0);
if(!pos_attr)
pos_attr=agattr(g, AGNODE,"pos",0);
+ if(defaultNodeShape==0)
+ nodeSize=GetOGLDistance(view->nodeScale*view->Topview->fitin_zoom/view->zoom);
+
for (v = agfstnode(g); v; v = agnxtnode(g, v))
{
if(!((nodeRec*)(aggetrec(v,"nodeRec",0)))->visible)
continue;
posN=((nodeRec*)(aggetrec(v,"nodeRec",0)))->A;
- nodeSize=(GLfloat)l_float(v, size_attr,0);
- if (nodeSize > 0)
- nodeSize=nodeSize * view->Topview->init_node_size;
- else
- nodeSize=view->Topview->init_node_size;
+ if(defaultNodeShape==1)
+ {
+ nodeSize=((nodeRec*)(aggetrec(v,"nodeRec",0)))->size;
+ }
+
nd=distBetweenPts(posN,p,nodeSize);
if( nd < dist )
{
static glCompPoint pos;
+ static Agsym_t* l_color_attr=(Agsym_t*)0;
+ static glCompColor c;
+
+
+
+
+
static int defaultNodeShape=0;
static GLfloat nodeSize=0;
- if(!defaultNodeShape)
- defaultNodeShape=getAttrBool(g,g,"defaultnodeshape",0);
+ if(!l_color_attr)
+ l_color_attr=agattr(g, AGRAPH,"nodelabelcolor",0);
+ glCompColorxlate(&c,agxget(g,l_color_attr));
+
+
+ defaultNodeShape=getAttrBool(g,g,"defaultnodeshape",0);
if(defaultNodeShape==0)
glBegin(GL_POINTS);
drawCircle(pos.x,pos.y,nodeSize,pos.z+0.001);
if(((nodeRec*)(aggetrec(v,"nodeRec",0)))->printLabel==1)
- glprintfglut(view->glutfont,pos.x+nodeSize,pos.y+nodeSize,pos.z,agnameof(v));
+ {
+ glColor4f(c.R, c.G,c.B, c.A);
+ glprintfglut(view->glutfont,pos.x+nodeSize,pos.y+nodeSize,pos.z,agnameof(v));
+ }
}
if(defaultNodeShape==0)
((nodeRec*)(aggetrec(v,"nodeRec",0)))->A=pos;
if (nodeSize > 0)
- nodeSize=nodeSize*view->Topview->init_node_size;
+ nodeSize=nodeSize*view->nodeScale;
else
- nodeSize=view->Topview->init_node_size;
+ nodeSize=view->nodeScale;
if(defaultNodeShape==0)
nodeSize=1;
((nodeRec*)(aggetrec(v,"nodeRec",0)))->size=nodeSize;
pos=((nodeRec*)(aggetrec(v,"nodeRec",0)))->A;
nodeSize=((nodeRec*)(aggetrec(v,"nodeRec",0)))->size;
glColor4f(c.R,c.G,c.B,c.A);
- if (nodeSize > 0)
- nodeSize=nodeSize*view->Topview->init_node_size;
- else
- nodeSize=view->Topview->init_node_size;
if(!data_attr)
glprintfglut(view->glutfont,pos.x+nodeSize,pos.y+nodeSize,pos.z,agnameof(v));
else
set_boundaries(g,t);
t->avgedgelength = totalELength / t->Edgecount;
- t->init_node_size=init_node_size(g, t);
+// t->init_node_size=init_node_size(g, t);
view->Topview=t;
cacheNodes(g,t);
cacheEdges(g,t);
void renderSmGraph(Agraph_t * g,topview* t)
{
+
if(view->drawnodes)
{
+ glPointSize(view->nodeScale*t->fitin_zoom/view->zoom);
glCallList(t->cache.node_id);
glCallList(t->cache.selnode_id);
if(view->drawnodelabels)