solver.h revision e88f1eca443c9f97550088469932d9cea9ac0475
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen#ifndef _SOLVE_SBASIS_H
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen#define _SOLVE_SBASIS_H
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen#include "point.h"
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen#include "sbasis.h"
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen
981b809bc6ed10a21e89444d9447e5475801874fjohanengelennamespace Geom{
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen class Point;
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen
981b809bc6ed10a21e89444d9447e5475801874fjohanengelenunsigned
981b809bc6ed10a21e89444d9447e5475801874fjohanengelencrossing_count(Geom::Point const *V, /* Control pts of Bezier curve */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen unsigned degree); /* Degree of Bezier curve */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelenvoid
981b809bc6ed10a21e89444d9447e5475801874fjohanengelenfind_parametric_bezier_roots(
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen Geom::Point const *w, /* The control points */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen unsigned degree, /* The degree of the polynomial */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen std::vector<double> & solutions, /* RETURN candidate t-values */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen unsigned depth); /* The depth of the recursion */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen
981b809bc6ed10a21e89444d9447e5475801874fjohanengelenunsigned
981b809bc6ed10a21e89444d9447e5475801874fjohanengelencrossing_count(double const *V, /* Control pts of Bezier curve */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen unsigned degree, /* Degree of Bezier curve */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen double left_t, double right_t);
981b809bc6ed10a21e89444d9447e5475801874fjohanengelenvoid
981b809bc6ed10a21e89444d9447e5475801874fjohanengelenfind_bernstein_roots(
29684a16b6c92bee28a94fdc2607bcc143950fa8johanengelen double const *w, /* The control points */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen unsigned degree, /* The degree of the polynomial */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen std::vector<double> & solutions, /* RETURN candidate t-values */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen unsigned depth, /* The depth of the recursion */
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen double left_t=0, double right_t=1);
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen};
981b809bc6ed10a21e89444d9447e5475801874fjohanengelen#endif
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen/*
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen Local Variables:
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen mode:c++
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen c-file-style:"stroustrup"
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen indent-tabs-mode:nil
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen fill-column:99
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen End:
63267518b4ce196caab66ef8cbdcfc0921206b3djohanengelen*/
e88f1eca443c9f97550088469932d9cea9ac0475johanengelen// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :