KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I think I am starting to understand how to link functions written in C/C++ to Mathematica . The problem I'm facing is that I don't know how to send error messages from my C wrapper to Mathematica. After searching in google I found this MathLink Tutorial . Section 1.7 gave me an insight as to how to send error messages but I am getting weird results. Here is the code I am working with. //File cppFunctions.h #ifndef CPPFUNCTIONS_H #define CPPFUNCTIONS_H class Point { public: double x, y; Point(){ x=y=0.0;} Point(double a, double b): x(a), y(b) {} }; class Line { public: Point p1, p2; Line(void) {} Line(const Point &P, const Point &Q): p1(P), p2(Q) {} double distanceTo(const Line &M, const double &EPS = 0.000001){ double x21 = p2.x - p1.x; double y21 = p2.y - p1.y; double x43 = M.p2.x - M.p1.x; double y43 = M.p2.y - M.p1.y; double x13 = p1.x - M.p1.x; double y13 = p1.y - M.p1.y; double den = y43*x21 - x43*y21; if (den*den < EPS) return -INFINITY; double numL = (x43*y13 - y43*x13)/den; double numM = (x21*y13 - y21*x13)/den; if (numM < 0 || numM > 1) return -INFINITY; return numL; } }; #endif The file cppFunctions.h declares the classes Point and Line . I have stripped this class to the bare minium except for the function that I want to use in Mathematica . I want to find the distance from one line to another. This function is the C version of lineInt in wireframes in Mathematica . To use this function in Mathematica we need a wrapper function that obtains the input from Mathematica and sends the output back to Mathematica
Tags (comma-separated)
Save Edits
Cancel