v_scan3(3) additional 3d graphics and associated matrix and vector routines

Other Alias

v_print2, v_print3, m_print2, m_print3, v_scan2, v_inters2, v_dupl2, v_dupl3, m_dupl2, m_dupl3


#include <graphadd.h>
void v_print2(hvec2_t vec, const char *name)
void v_print3(hvec3_t vec, const char *name)
void m_print2(hmat2_t mat, const char *name)
void m_print3(hmat3_t mat, const char *name)
int v_scan2(hvec2_t &vec)
int v_scan3(hvec3_t &vec)
int v_inters2(
const hvec2_t &p1, const hvec2_t &p2, const hvec2_t &q1,
const hvec2_t &q2, hvec2_t *S1, hvec2_t *S2)
void v_dupl2(hvec2_t *, hvec2_t *)
void v_dupl3(hvec3_t *, hvec3_t *)
void m_dupl2(hmat2_t *, hmat2_t *)
void m_dupl3(hmat3_t *, hmat3_t *)


These routines ar an addition to grapmat(3). The *print routines print the approriate data to stderr. The *scan routines read from stdin. The *dupl routines copy data. v_inters2 returns the intersection point of p1,p2 and q1,q2 in S1 and S2. The return value is 0 if no intersection point is found, 1 if there is an intersection point, and two if the two lines do overlap. In that case, the two points are the extrema.


Naming conventions as in graphmat(3).


All the "functions" may have been implemented as macro's, so you can't take the address of a function. It is however guaranteed that arguments of each function/macro will be evaluated only once, except for the result argument, which can be evaluated multiple times.


Only available in C++ and ANSI C. v_inters2 only in C++. Library file is /usr/local/lib/libgraphmat.a and the C++ util files.


Herbert Hilhorst
Klamer Schutte