lpe-powerstroke-interpolators.h revision 8cdcff92f16934fca7a867cbaf07fa543ef41471
/** @file
* Interpolators for lists of points.
*/
/* Authors:
* Johan Engelen <j.b.c.engelen@alumnus.utwente.nl>
*
* Copyright (C) 2010-2011 Authors
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#include "live_effects/bezctx.h"
#include "live_effects/bezctx_intf.h"
#include "live_effects/spiro.h"
/// @TODO Move this to 2geom?
enum InterpolatorType {
};
Interpolator() {};
virtual ~Interpolator() {};
Interpolator(const Interpolator&);
};
Linear() {};
}
return path;
};
};
// this class is terrible
CubicBezierFit() {};
virtual ~CubicBezierFit() {};
// worst case gives us 2 segment per point
for (unsigned i = 0; i < n_points; ++i) {
}
double tolerance_sq = 0; // this value is just a random guess
if ( n_segs > 0)
{
for (int c = 0; c < n_segs; c++) {
}
}
g_free(b);
return fit;
};
CubicBezierFit(const CubicBezierFit&);
};
/// @todo invent name for this class
};
virtual ~CubicBezierJohan() {};
}
return fit;
};
}
double _beta;
CubicBezierJohan(const CubicBezierJohan&);
};
SpiroInterpolator() {};
virtual ~SpiroInterpolator() {};
for (unsigned int i = 0; i < len; ++i) {
controlpoints[i].x = points[i][X];
}
free(s);
return fit;
};
typedef struct {
int is_open;
} bezctx_ink;
{
}
else {
g_message("spiro moveto not finite");
}
#endif
}
{
}
else {
g_message("spiro lineto not finite");
}
#endif
}
{
}
else {
g_message("spiro quadto not finite");
}
#endif
}
{
}
else {
g_message("spiro curveto not finite");
}
#endif
}
bezctx *
}
SpiroInterpolator(const SpiroInterpolator&);
};
switch (type) {
case INTERP_LINEAR:
case INTERP_CUBICBEZIER:
case INTERP_CUBICBEZIER_JOHAN:
case INTERP_SPIRO:
default:
}
}
} //namespace Interpolate
} //namespace Geom
#endif
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :