18 return late_int(obj, attr, def, INT_MIN);
27 if (!p || p[0] ==
'\0')
41 return l_int(obj,attr,def);
58 (void)sscanf(
str,
"%f,%f,%f", &p.
x, &p.
y, &p.
z);
64 int npol=selPoly->
cnt;
67 for (i = 0, j = npol-1; i < npol; j = i++)
69 if ((((selPoly->
pts[i].
y <= p.
y) && (p.
y < selPoly->
pts[j].
y)) ||
70 ((selPoly->
pts[j].
y <= p.
y) && (p.
y < selPoly->
pts[i].
y))) &&
71 (p.
x < (selPoly->
pts[j].
x - selPoly->
pts[i].
x) * (p.
y - selPoly->
pts[i].
y) / (selPoly->
pts[j].
y - selPoly->
pts[i].
y) + selPoly->
pts[i].
x))
char * late_string(void *obj, attrsym_t *attr, char *defaultValue)
int late_int(void *obj, attrsym_t *attr, int defaultValue, int minimum)
bool late_bool(void *obj, attrsym_t *attr, bool defaultValue)
Agsym_t * agattr(Agraph_t *g, int kind, char *name, const char *value)
creates or looks up attributes of a graph
char * agxget(void *obj, Agsym_t *sym)
#define AGTYPE(obj)
returns AGRAPH, AGNODE, or AGEDGE depending on the type of the object
float getAttrFloat(Agraph_t *g, void *obj, char *attr_name, float def)
int point_in_polygon(glCompPoly *selPoly, glCompPoint p)
int getAttrInt(Agraph_t *g, void *obj, char *attr_name, int def)
int getAttrBool(Agraph_t *g, void *obj, char *attr_name, int def)
glCompPoint getPointFromStr(const char *str)
char * getAttrStr(Agraph_t *g, void *obj, char *attr_name, char *def)
int l_int(void *obj, Agsym_t *attr, int def)
float l_float(void *obj, Agsym_t *attr, float def)
graphs, nodes and edges info: Agraphinfo_t, Agnodeinfo_t and Agedgeinfo_t