00001
00007 #include "stdlib.h"
00008 #include "geom.h"
00009 #include "bezier.h"
00010
00011
00015 struct bezier_3_poly_data
00016 {
00017 int n;
00018 struct bezier_3_data *b3_seg;
00019 double *t_star;
00020
00021 int closed;
00022
00023 };
00024
00025
00026
00027 int alloc_bezier_3_poly(struct bezier_3_poly_data *bp, int n);
00028 int free_bezier_3_poly(struct bezier_3_poly_data *bp );
00029
00030 int segment_bezier_3_poly(struct bezier_3_poly_data *bp,
00031 struct point_3D *loc0,
00032 struct point_3D *loc1,
00033 struct point_3D *loc2,
00034 struct point_3D *loc3,
00035 int i);
00036
00037 int normalize_bezier_3_poly(struct bezier_3_poly_data *bp);
00038
00039 int eval_bezier_3_poly(struct bezier_3_poly_data *bp,
00040 double t_star,
00041 struct point_3D *loc);
00042
00043 int bezier_3_spline(struct bezier_3_poly_data *bp,
00044 int m,
00045 struct point_3D p[] );
00046
00047 int coons_bezier_3(struct bezier_3_poly_data *c1,
00048 struct bezier_3_poly_data *c2,
00049 struct bezier_3_poly_data *c3,
00050 struct bezier_3_poly_data *c4,
00051 double r, double s,
00052 struct point_3D *d);
00053
00054